TinyMCE na Joggerze

TinyMCE na Joggerze

Domyślny edytor treści notki na joggerze jest – jaki jest. Z jednej strony pozwala na dużo, bo mamy do dyspozycji pełen HTML, z drugiej strony klepanie tych samych tagów jest denerwujące i wybija z rytmu. 

Fajnie by było mieć tutaj jakiś graficzny edytor, od biedy tinymce lub jakiś inny zamiennik. Google niestety nie chce  podpowiedzieć żadnej skryptozakładki więc trzeba samemu takie coś napisać.

Gotowy efekt z guzikiem znajduje się tutaj: http://rashell.pl/tiny_mce/ Wystarczy otworzyć stronę, a link który się pokaże przeciągnąć na pasek zakładek. 

Działa z Chrome, innych przeglądarek nie testowałem 😉

Edytorek jest świadomy protokołu http/s, można go stosować w dowolnym CMSie, który nie jest zaopatrzony w graficzny edytor treści. 

Do ideału trochę brakuje, ze względu na cross-origin, nie można na joggerze uruchomić okienek do wstawiania grafik czy edytowania linków, a aby podejrzeć HTML trzeba się pozbyć tiny’ego ale to zawsze jakiś start 🙂

Jak sobie zrobić własnego tiny’ego? Proste!

Wgrać na serwer www pliki od tiny’ego i dodać index.html mniej więcej taki:

<html><head>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
var link=$("<a>TinyMce!</a>");
link.attr('href','javascript: var scriptT = document.createElement("script");'+
      'scriptT.src = "//rashell.pl/tiny_mce/tiny_mce.js";'+
      'scriptT.type = "text/javascript";'+
      'scriptT.onload = function(){'+
           'tinyMCE.init({'+
               'mode : "textareas",'+
               'theme_advanced_resizing : true,'+
               'entity_encoding : "raw",'+
               'apply_source_formatting : true,'+
               'document_base_url : document.location.protocol+"//rashell.pl/tiny_mce/",'+
               'plugins:"style,layer,table,contextmenu,paste,inlinepopups,lists,xhtmlxtras,fullscreen,advimage,advlink,advlist",'+
                'theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",'+
                                'theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime|,forecolor,backcolor",'+
                                'theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",'+
                                'theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,visualblocks",'+
               'height:400,'+
               'theme : "advanced" });'+
        '};'+
      'document.body.appendChild(scriptT);')
      $("#tu").append(link);
})
</script>
</head><body>
<div id="tu"></div>
<textarea>demo</textarea>
</body></html>

A potem tylko go odpalić i przeciągnąć wyświetloną skryptozakładkę. Oczywiście trzeba zamienić adres mojego serwera na swój. Może się komuś przyda.

Edit: Zapomniałem o tym napisać. Podpinając tiny’ego do strony za SSLem istnieje ryzyko, że przeglądarka nie akceptuje certyfikatu serwera. By to obejść wystarczy otworzyć skryptozakładkę z https’a i potwierdzić certyfikat. Tak jest w przypadku mojej skryptozakładki – certyfikat nie jest przypisany do domeny więc przeglądarka się buntuje. Po jednokrotnym poinstruowaniu jej, że ma kontynuować – będzie grzecznie się słuchać.