wax_theme 0.1.0.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/_includes/wax/collection/gallery.html +33 -0
- data/_includes/wax/collection/interactive_metadata.html +53 -0
- data/_includes/wax/footer.html +35 -0
- data/_includes/wax/head.html +16 -0
- data/_includes/wax/header.html +35 -0
- data/_includes/wax/image_viewer/leaflet.html +11 -0
- data/_includes/wax/image_viewer/mirador.html +8 -0
- data/_includes/wax/image_viewer/simple.html +5 -0
- data/_includes/wax/inline_image.html +12 -0
- data/_includes/wax/item/metadata.html +23 -0
- data/_includes/wax/item/pagination.html +23 -0
- data/_includes/wax/mirador_compare.html +11 -0
- data/_includes/wax/parallax.html +23 -0
- data/_includes/wax/search.html +12 -0
- data/_layouts/wax/collection_item.html +41 -0
- data/_layouts/wax/default.html +20 -0
- data/_layouts/wax/exhibit.html +15 -0
- data/_layouts/wax/page.html +13 -0
- data/_layouts/wax/reuse_page.html +7 -0
- data/_sass/_bootstrap.scss +9030 -0
- data/_sass/_syntax.scss +129 -0
- data/_sass/_wax.scss +482 -0
- data/assets/css/datatables.css +24 -0
- data/assets/css/leaflet.css +636 -0
- data/assets/js/bootstrap.min.js +7 -0
- data/assets/js/datatables.min.js +325 -0
- data/assets/js/elasticlunr.min.js +10 -0
- data/assets/js/jquery-3.2.1.min.js +4 -0
- data/assets/js/leaflet-iiif.min.js +8 -0
- data/assets/js/leaflet.js +5 -0
- data/assets/js/popper.min.js +5 -0
- data/assets/js/wax.js +91 -0
- data/assets/logo.png +0 -0
- data/assets/mirador/css/mirador-combined.css +4107 -0
- data/assets/mirador/fonts/FontAwesome.otf +0 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.eot +0 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.ijmap +1 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.svg +2373 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.ttf +0 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.woff +0 -0
- data/assets/mirador/fonts/MaterialIcons-Regular.woff2 +0 -0
- data/assets/mirador/fonts/fontawesome-webfont.eot +0 -0
- data/assets/mirador/fonts/fontawesome-webfont.svg +2671 -0
- data/assets/mirador/fonts/fontawesome-webfont.ttf +0 -0
- data/assets/mirador/fonts/fontawesome-webfont.woff +0 -0
- data/assets/mirador/fonts/fontawesome-webfont.woff2 +0 -0
- data/assets/mirador/images/border_type_1.png +0 -0
- data/assets/mirador/images/border_type_2.png +0 -0
- data/assets/mirador/images/border_type_3.png +0 -0
- data/assets/mirador/images/border_type_4.png +0 -0
- data/assets/mirador/images/border_type_5.png +0 -0
- data/assets/mirador/images/debut_dark.png +0 -0
- data/assets/mirador/locales/ar/translation.json +42 -0
- data/assets/mirador/locales/de/translation.json +103 -0
- data/assets/mirador/locales/en/translation.json +106 -0
- data/assets/mirador/locales/es/translation.json +86 -0
- data/assets/mirador/locales/fr/translation.json +103 -0
- data/assets/mirador/locales/ga/translation.json +97 -0
- data/assets/mirador/locales/ja/translation.json +82 -0
- data/assets/mirador/locales/ko/translation.json +83 -0
- data/assets/mirador/locales/nl/translation.json +39 -0
- data/assets/mirador/locales/zh-CN/translation.json +76 -0
- data/assets/mirador/locales/zh-TW/translation.json +76 -0
- data/assets/mirador/locales/zh/translation.json +74 -0
- data/assets/mirador/mirador.js +49145 -0
- data/assets/mirador/plugins/advlist/index.js +7 -0
- data/assets/mirador/plugins/advlist/plugin.js +160 -0
- data/assets/mirador/plugins/advlist/plugin.min.js +1 -0
- data/assets/mirador/plugins/anchor/index.js +7 -0
- data/assets/mirador/plugins/anchor/plugin.js +118 -0
- data/assets/mirador/plugins/anchor/plugin.min.js +1 -0
- data/assets/mirador/plugins/autolink/index.js +7 -0
- data/assets/mirador/plugins/autolink/plugin.js +180 -0
- data/assets/mirador/plugins/autolink/plugin.min.js +1 -0
- data/assets/mirador/plugins/autoresize/index.js +7 -0
- data/assets/mirador/plugins/autoresize/plugin.js +169 -0
- data/assets/mirador/plugins/autoresize/plugin.min.js +1 -0
- data/assets/mirador/plugins/autosave/index.js +7 -0
- data/assets/mirador/plugins/autosave/plugin.js +226 -0
- data/assets/mirador/plugins/autosave/plugin.min.js +1 -0
- data/assets/mirador/plugins/bbcode/index.js +7 -0
- data/assets/mirador/plugins/bbcode/plugin.js +101 -0
- data/assets/mirador/plugins/bbcode/plugin.min.js +1 -0
- data/assets/mirador/plugins/charmap/index.js +7 -0
- data/assets/mirador/plugins/charmap/plugin.js +1275 -0
- data/assets/mirador/plugins/charmap/plugin.min.js +1 -0
- data/assets/mirador/plugins/code/index.js +7 -0
- data/assets/mirador/plugins/code/plugin.js +94 -0
- data/assets/mirador/plugins/code/plugin.min.js +1 -0
- data/assets/mirador/plugins/codesample/css/prism.css +138 -0
- data/assets/mirador/plugins/codesample/index.js +7 -0
- data/assets/mirador/plugins/codesample/plugin.js +967 -0
- data/assets/mirador/plugins/codesample/plugin.min.js +1 -0
- data/assets/mirador/plugins/colorpicker/index.js +7 -0
- data/assets/mirador/plugins/colorpicker/plugin.js +126 -0
- data/assets/mirador/plugins/colorpicker/plugin.min.js +1 -0
- data/assets/mirador/plugins/contextmenu/index.js +7 -0
- data/assets/mirador/plugins/contextmenu/plugin.js +168 -0
- data/assets/mirador/plugins/contextmenu/plugin.min.js +1 -0
- data/assets/mirador/plugins/directionality/index.js +7 -0
- data/assets/mirador/plugins/directionality/plugin.js +66 -0
- data/assets/mirador/plugins/directionality/plugin.min.js +1 -0
- data/assets/mirador/plugins/emoticons/img/smiley-cool.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-cry.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-embarassed.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-frown.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-innocent.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-kiss.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-laughing.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-sealed.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-smile.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-surprised.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-undecided.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-wink.gif +0 -0
- data/assets/mirador/plugins/emoticons/img/smiley-yell.gif +0 -0
- data/assets/mirador/plugins/emoticons/index.js +7 -0
- data/assets/mirador/plugins/emoticons/plugin.js +87 -0
- data/assets/mirador/plugins/emoticons/plugin.min.js +1 -0
- data/assets/mirador/plugins/fullpage/index.js +7 -0
- data/assets/mirador/plugins/fullpage/plugin.js +519 -0
- data/assets/mirador/plugins/fullpage/plugin.min.js +1 -0
- data/assets/mirador/plugins/fullscreen/index.js +7 -0
- data/assets/mirador/plugins/fullscreen/plugin.js +177 -0
- data/assets/mirador/plugins/fullscreen/plugin.min.js +1 -0
- data/assets/mirador/plugins/help/img/logo.png +0 -0
- data/assets/mirador/plugins/help/index.js +7 -0
- data/assets/mirador/plugins/help/plugin.js +727 -0
- data/assets/mirador/plugins/help/plugin.min.js +1 -0
- data/assets/mirador/plugins/hr/index.js +7 -0
- data/assets/mirador/plugins/hr/plugin.js +39 -0
- data/assets/mirador/plugins/hr/plugin.min.js +1 -0
- data/assets/mirador/plugins/image/index.js +7 -0
- data/assets/mirador/plugins/image/plugin.js +1211 -0
- data/assets/mirador/plugins/image/plugin.min.js +1 -0
- data/assets/mirador/plugins/imagetools/index.js +7 -0
- data/assets/mirador/plugins/imagetools/plugin.js +3684 -0
- data/assets/mirador/plugins/imagetools/plugin.min.js +1 -0
- data/assets/mirador/plugins/importcss/index.js +7 -0
- data/assets/mirador/plugins/importcss/plugin.js +264 -0
- data/assets/mirador/plugins/importcss/plugin.min.js +1 -0
- data/assets/mirador/plugins/insertdatetime/index.js +7 -0
- data/assets/mirador/plugins/insertdatetime/plugin.js +173 -0
- data/assets/mirador/plugins/insertdatetime/plugin.min.js +1 -0
- data/assets/mirador/plugins/legacyoutput/index.js +7 -0
- data/assets/mirador/plugins/legacyoutput/plugin.js +220 -0
- data/assets/mirador/plugins/legacyoutput/plugin.min.js +1 -0
- data/assets/mirador/plugins/link/index.js +7 -0
- data/assets/mirador/plugins/link/plugin.js +713 -0
- data/assets/mirador/plugins/link/plugin.min.js +1 -0
- data/assets/mirador/plugins/lists/index.js +7 -0
- data/assets/mirador/plugins/lists/plugin.js +1115 -0
- data/assets/mirador/plugins/lists/plugin.min.js +1 -0
- data/assets/mirador/plugins/media/index.js +7 -0
- data/assets/mirador/plugins/media/plugin.js +1166 -0
- data/assets/mirador/plugins/media/plugin.min.js +1 -0
- data/assets/mirador/plugins/nonbreaking/index.js +7 -0
- data/assets/mirador/plugins/nonbreaking/plugin.js +85 -0
- data/assets/mirador/plugins/nonbreaking/plugin.min.js +1 -0
- data/assets/mirador/plugins/noneditable/index.js +7 -0
- data/assets/mirador/plugins/noneditable/plugin.js +118 -0
- data/assets/mirador/plugins/noneditable/plugin.min.js +1 -0
- data/assets/mirador/plugins/pagebreak/index.js +7 -0
- data/assets/mirador/plugins/pagebreak/plugin.js +109 -0
- data/assets/mirador/plugins/pagebreak/plugin.min.js +1 -0
- data/assets/mirador/plugins/paste/index.js +7 -0
- data/assets/mirador/plugins/paste/plugin.js +1497 -0
- data/assets/mirador/plugins/paste/plugin.min.js +1 -0
- data/assets/mirador/plugins/preview/index.js +7 -0
- data/assets/mirador/plugins/preview/plugin.js +123 -0
- data/assets/mirador/plugins/preview/plugin.min.js +1 -0
- data/assets/mirador/plugins/print/index.js +7 -0
- data/assets/mirador/plugins/print/plugin.js +38 -0
- data/assets/mirador/plugins/print/plugin.min.js +1 -0
- data/assets/mirador/plugins/save/index.js +7 -0
- data/assets/mirador/plugins/save/plugin.js +120 -0
- data/assets/mirador/plugins/save/plugin.min.js +1 -0
- data/assets/mirador/plugins/searchreplace/index.js +7 -0
- data/assets/mirador/plugins/searchreplace/plugin.js +603 -0
- data/assets/mirador/plugins/searchreplace/plugin.min.js +1 -0
- data/assets/mirador/plugins/spellchecker/index.js +7 -0
- data/assets/mirador/plugins/spellchecker/plugin.js +757 -0
- data/assets/mirador/plugins/spellchecker/plugin.min.js +1 -0
- data/assets/mirador/plugins/tabfocus/index.js +7 -0
- data/assets/mirador/plugins/tabfocus/plugin.js +124 -0
- data/assets/mirador/plugins/tabfocus/plugin.min.js +1 -0
- data/assets/mirador/plugins/table/index.js +7 -0
- data/assets/mirador/plugins/table/plugin.js +10144 -0
- data/assets/mirador/plugins/table/plugin.min.js +1 -0
- data/assets/mirador/plugins/template/index.js +7 -0
- data/assets/mirador/plugins/template/plugin.js +345 -0
- data/assets/mirador/plugins/template/plugin.min.js +1 -0
- data/assets/mirador/plugins/textcolor/index.js +7 -0
- data/assets/mirador/plugins/textcolor/plugin.js +346 -0
- data/assets/mirador/plugins/textcolor/plugin.min.js +1 -0
- data/assets/mirador/plugins/textpattern/index.js +7 -0
- data/assets/mirador/plugins/textpattern/plugin.js +370 -0
- data/assets/mirador/plugins/textpattern/plugin.min.js +1 -0
- data/assets/mirador/plugins/toc/index.js +7 -0
- data/assets/mirador/plugins/toc/plugin.js +228 -0
- data/assets/mirador/plugins/toc/plugin.min.js +1 -0
- data/assets/mirador/plugins/visualblocks/css/visualblocks.css +154 -0
- data/assets/mirador/plugins/visualblocks/index.js +7 -0
- data/assets/mirador/plugins/visualblocks/plugin.js +135 -0
- data/assets/mirador/plugins/visualblocks/plugin.min.js +1 -0
- data/assets/mirador/plugins/visualchars/index.js +7 -0
- data/assets/mirador/plugins/visualchars/plugin.js +505 -0
- data/assets/mirador/plugins/visualchars/plugin.min.js +1 -0
- data/assets/mirador/plugins/wordcount/index.js +7 -0
- data/assets/mirador/plugins/wordcount/plugin.js +343 -0
- data/assets/mirador/plugins/wordcount/plugin.min.js +1 -0
- data/assets/mirador/skins/lightgray/content.inline.min.css +1 -0
- data/assets/mirador/skins/lightgray/content.min.css +1 -0
- data/assets/mirador/skins/lightgray/content.mobile.min.css +1 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce-mobile.woff +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce-small.eot +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce-small.svg +63 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce-small.ttf +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce-small.woff +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce.eot +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce.svg +131 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce.ttf +0 -0
- data/assets/mirador/skins/lightgray/fonts/tinymce.woff +0 -0
- data/assets/mirador/skins/lightgray/img/anchor.gif +0 -0
- data/assets/mirador/skins/lightgray/img/loader.gif +0 -0
- data/assets/mirador/skins/lightgray/img/object.gif +0 -0
- data/assets/mirador/skins/lightgray/img/trans.gif +0 -0
- data/assets/mirador/skins/lightgray/skin.min.css +1 -0
- data/assets/mirador/skins/lightgray/skin.mobile.min.css +2 -0
- data/assets/mirador/themes/inlite/index.js +7 -0
- data/assets/mirador/themes/inlite/theme.js +10235 -0
- data/assets/mirador/themes/inlite/theme.min.js +1 -0
- data/assets/mirador/themes/mobile/index.js +7 -0
- data/assets/mirador/themes/mobile/theme.js +13546 -0
- data/assets/mirador/themes/mobile/theme.min.js +1 -0
- data/assets/mirador/themes/modern/index.js +7 -0
- data/assets/mirador/themes/modern/theme.js +10041 -0
- data/assets/mirador/themes/modern/theme.min.js +1 -0
- data/assets/styles.scss +51 -0
- metadata +343 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){return e.fire("insertCustomChar",{chr:t})},l=function(e,t){var a=i(e,t).chr;e.execCommand("mceInsertContent",!1,a)},a=tinymce.util.Tools.resolve("tinymce.util.Tools"),r=function(e){return e.settings.charmap},n=function(e){return e.settings.charmap_append},o=a.isArray,c=function(e){return o(e)?[].concat((t=e,a.grep(t,function(e){return o(e)&&2===e.length}))):"function"==typeof e?e():[];var t},s=function(e){return function(e,t){var a=r(e);a&&(t=c(a));var i=n(e);return i?[].concat(t).concat(c(i)):t}(e,[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]])},t=function(t){return{getCharMap:function(){return s(t)},insertChar:function(e){l(t,e)}}},u=function(e){var t,a,i,r=Math.min(e.length,25),n=Math.ceil(e.length/r);for(t='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>',i=0;i<n;i++){for(t+="<tr>",a=0;a<r;a++){var o=i*r+a;if(o<e.length){var l=e[o],c=parseInt(l[0],10),s=l?String.fromCharCode(c):" ";t+='<td title="'+l[1]+'"><div tabindex="-1" title="'+l[1]+'" role="button" data-chr="'+c+'">'+s+"</div></td>"}else t+="<td />"}t+="</tr>"}return t+="</tbody></table>"},d=function(e){for(;e;){if("TD"===e.nodeName)return e;e=e.parentNode}},m=function(n){var o,e={type:"container",html:u(s(n)),onclick:function(e){var t=e.target;if(/^(TD|DIV)$/.test(t.nodeName)){var a=d(t).firstChild;if(a&&a.hasAttribute("data-chr")){var i=a.getAttribute("data-chr"),r=parseInt(i,10);isNaN(r)||l(n,String.fromCharCode(r)),e.ctrlKey||o.close()}}},onmouseover:function(e){var t=d(e.target);t&&t.firstChild?(o.find("#preview").text(t.firstChild.firstChild.data),o.find("#previewTitle").text(t.title)):(o.find("#preview").text(" "),o.find("#previewTitle").text(" "))}};o=n.windowManager.open({title:"Special character",spacing:10,padding:10,items:[e,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){o.close()}}]})},g=function(e){e.addCommand("mceShowCharmap",function(){m(e)})},p=function(e){e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"})};e.add("charmap",function(e){return g(e),p(e),t(e)})}();
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
var code = (function () {
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
6
|
+
|
|
7
|
+
var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
|
|
8
|
+
|
|
9
|
+
var getMinWidth = function (editor) {
|
|
10
|
+
return editor.getParam('code_dialog_width', 600);
|
|
11
|
+
};
|
|
12
|
+
var getMinHeight = function (editor) {
|
|
13
|
+
return editor.getParam('code_dialog_height', Math.min(global$1.DOM.getViewPort().h - 200, 500));
|
|
14
|
+
};
|
|
15
|
+
var $_e90paoa1jm0ofy6v = {
|
|
16
|
+
getMinWidth: getMinWidth,
|
|
17
|
+
getMinHeight: getMinHeight
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var setContent = function (editor, html) {
|
|
21
|
+
editor.focus();
|
|
22
|
+
editor.undoManager.transact(function () {
|
|
23
|
+
editor.setContent(html);
|
|
24
|
+
});
|
|
25
|
+
editor.selection.setCursorLocation();
|
|
26
|
+
editor.nodeChanged();
|
|
27
|
+
};
|
|
28
|
+
var getContent = function (editor) {
|
|
29
|
+
return editor.getContent({ source_view: true });
|
|
30
|
+
};
|
|
31
|
+
var $_6f8nd4a3jm0ofy6w = {
|
|
32
|
+
setContent: setContent,
|
|
33
|
+
getContent: getContent
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var open = function (editor) {
|
|
37
|
+
var minWidth = $_e90paoa1jm0ofy6v.getMinWidth(editor);
|
|
38
|
+
var minHeight = $_e90paoa1jm0ofy6v.getMinHeight(editor);
|
|
39
|
+
var win = editor.windowManager.open({
|
|
40
|
+
title: 'Source code',
|
|
41
|
+
body: {
|
|
42
|
+
type: 'textbox',
|
|
43
|
+
name: 'code',
|
|
44
|
+
multiline: true,
|
|
45
|
+
minWidth: minWidth,
|
|
46
|
+
minHeight: minHeight,
|
|
47
|
+
spellcheck: false,
|
|
48
|
+
style: 'direction: ltr; text-align: left'
|
|
49
|
+
},
|
|
50
|
+
onSubmit: function (e) {
|
|
51
|
+
$_6f8nd4a3jm0ofy6w.setContent(editor, e.data.code);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
win.find('#code').value($_6f8nd4a3jm0ofy6w.getContent(editor));
|
|
55
|
+
};
|
|
56
|
+
var $_6ohe8ba0jm0ofy6t = { open: open };
|
|
57
|
+
|
|
58
|
+
var register = function (editor) {
|
|
59
|
+
editor.addCommand('mceCodeEditor', function () {
|
|
60
|
+
$_6ohe8ba0jm0ofy6t.open(editor);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
var $_fvwfr9zjm0ofy6s = { register: register };
|
|
64
|
+
|
|
65
|
+
var register$1 = function (editor) {
|
|
66
|
+
editor.addButton('code', {
|
|
67
|
+
icon: 'code',
|
|
68
|
+
tooltip: 'Source code',
|
|
69
|
+
onclick: function () {
|
|
70
|
+
$_6ohe8ba0jm0ofy6t.open(editor);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
editor.addMenuItem('code', {
|
|
74
|
+
icon: 'code',
|
|
75
|
+
text: 'Source code',
|
|
76
|
+
onclick: function () {
|
|
77
|
+
$_6ohe8ba0jm0ofy6t.open(editor);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
var $_h5j0na4jm0ofy6x = { register: register$1 };
|
|
82
|
+
|
|
83
|
+
global.add('code', function (editor) {
|
|
84
|
+
$_fvwfr9zjm0ofy6s.register(editor);
|
|
85
|
+
$_h5j0na4jm0ofy6x.register(editor);
|
|
86
|
+
return {};
|
|
87
|
+
});
|
|
88
|
+
function Plugin () {
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return Plugin;
|
|
92
|
+
|
|
93
|
+
}());
|
|
94
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(t){return t.getParam("code_dialog_width",600)},i=function(t){return t.getParam("code_dialog_height",Math.min(n.DOM.getViewPort().h-200,500))},c=function(t,n){t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged()},d=function(t){return t.getContent({source_view:!0})},e=function(n){var t=o(n),e=i(n);n.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:t,minHeight:e,spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(t){c(n,t.data.code)}}).find("#code").value(d(n))},u=function(t){t.addCommand("mceCodeEditor",function(){e(t)})},a=function(t){t.addButton("code",{icon:"code",tooltip:"Source code",onclick:function(){e(t)}}),t.addMenuItem("code",{icon:"code",text:"Source code",onclick:function(){e(t)}})};t.add("code",function(t){return u(t),a(t),{}})}();
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */
|
|
2
|
+
/**
|
|
3
|
+
* prism.js default theme for JavaScript, CSS and HTML
|
|
4
|
+
* Based on dabblet (http://dabblet.com)
|
|
5
|
+
* @author Lea Verou
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
code[class*="language-"],
|
|
9
|
+
pre[class*="language-"] {
|
|
10
|
+
color: black;
|
|
11
|
+
text-shadow: 0 1px white;
|
|
12
|
+
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
13
|
+
direction: ltr;
|
|
14
|
+
text-align: left;
|
|
15
|
+
white-space: pre;
|
|
16
|
+
word-spacing: normal;
|
|
17
|
+
word-break: normal;
|
|
18
|
+
word-wrap: normal;
|
|
19
|
+
line-height: 1.5;
|
|
20
|
+
|
|
21
|
+
-moz-tab-size: 4;
|
|
22
|
+
-o-tab-size: 4;
|
|
23
|
+
tab-size: 4;
|
|
24
|
+
|
|
25
|
+
-webkit-hyphens: none;
|
|
26
|
+
-moz-hyphens: none;
|
|
27
|
+
-ms-hyphens: none;
|
|
28
|
+
hyphens: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
|
32
|
+
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
|
33
|
+
text-shadow: none;
|
|
34
|
+
background: #b3d4fc;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
|
38
|
+
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
|
39
|
+
text-shadow: none;
|
|
40
|
+
background: #b3d4fc;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media print {
|
|
44
|
+
code[class*="language-"],
|
|
45
|
+
pre[class*="language-"] {
|
|
46
|
+
text-shadow: none;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Code blocks */
|
|
51
|
+
pre[class*="language-"] {
|
|
52
|
+
padding: 1em;
|
|
53
|
+
margin: .5em 0;
|
|
54
|
+
overflow: auto;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:not(pre) > code[class*="language-"],
|
|
58
|
+
pre[class*="language-"] {
|
|
59
|
+
background: #f5f2f0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Inline code */
|
|
63
|
+
:not(pre) > code[class*="language-"] {
|
|
64
|
+
padding: .1em;
|
|
65
|
+
border-radius: .3em;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.token.comment,
|
|
69
|
+
.token.prolog,
|
|
70
|
+
.token.doctype,
|
|
71
|
+
.token.cdata {
|
|
72
|
+
color: slategray;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.token.punctuation {
|
|
76
|
+
color: #999;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.namespace {
|
|
80
|
+
opacity: .7;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.token.property,
|
|
84
|
+
.token.tag,
|
|
85
|
+
.token.boolean,
|
|
86
|
+
.token.number,
|
|
87
|
+
.token.constant,
|
|
88
|
+
.token.symbol,
|
|
89
|
+
.token.deleted {
|
|
90
|
+
color: #905;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.token.selector,
|
|
94
|
+
.token.attr-name,
|
|
95
|
+
.token.string,
|
|
96
|
+
.token.char,
|
|
97
|
+
.token.builtin,
|
|
98
|
+
.token.inserted {
|
|
99
|
+
color: #690;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.token.operator,
|
|
103
|
+
.token.entity,
|
|
104
|
+
.token.url,
|
|
105
|
+
.language-css .token.string,
|
|
106
|
+
.style .token.string {
|
|
107
|
+
color: #a67f59;
|
|
108
|
+
background: hsla(0, 0%, 100%, .5);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.token.atrule,
|
|
112
|
+
.token.attr-value,
|
|
113
|
+
.token.keyword {
|
|
114
|
+
color: #07a;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.token.function {
|
|
118
|
+
color: #DD4A68;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.token.regex,
|
|
122
|
+
.token.important,
|
|
123
|
+
.token.variable {
|
|
124
|
+
color: #e90;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.token.important,
|
|
128
|
+
.token.bold {
|
|
129
|
+
font-weight: bold;
|
|
130
|
+
}
|
|
131
|
+
.token.italic {
|
|
132
|
+
font-style: italic;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.token.entity {
|
|
136
|
+
cursor: help;
|
|
137
|
+
}
|
|
138
|
+
|
|
@@ -0,0 +1,967 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
var codesample = (function () {
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var Cell = function (initial) {
|
|
6
|
+
var value = initial;
|
|
7
|
+
var get = function () {
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
var set = function (v) {
|
|
11
|
+
value = v;
|
|
12
|
+
};
|
|
13
|
+
var clone = function () {
|
|
14
|
+
return Cell(get());
|
|
15
|
+
};
|
|
16
|
+
return {
|
|
17
|
+
get: get,
|
|
18
|
+
set: set,
|
|
19
|
+
clone: clone
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
24
|
+
|
|
25
|
+
var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
|
|
26
|
+
|
|
27
|
+
var getContentCss = function (editor) {
|
|
28
|
+
return editor.settings.codesample_content_css;
|
|
29
|
+
};
|
|
30
|
+
var getLanguages = function (editor) {
|
|
31
|
+
return editor.settings.codesample_languages;
|
|
32
|
+
};
|
|
33
|
+
var getDialogMinWidth = function (editor) {
|
|
34
|
+
return Math.min(global$1.DOM.getViewPort().w, editor.getParam('codesample_dialog_width', 800));
|
|
35
|
+
};
|
|
36
|
+
var getDialogMinHeight = function (editor) {
|
|
37
|
+
return Math.min(global$1.DOM.getViewPort().w, editor.getParam('codesample_dialog_height', 650));
|
|
38
|
+
};
|
|
39
|
+
var $_6tgxjgaajm0ofy7e = {
|
|
40
|
+
getContentCss: getContentCss,
|
|
41
|
+
getLanguages: getLanguages,
|
|
42
|
+
getDialogMinWidth: getDialogMinWidth,
|
|
43
|
+
getDialogMinHeight: getDialogMinHeight
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var window$$1 = {};
|
|
47
|
+
var global$2 = window$$1;
|
|
48
|
+
var _self = typeof window$$1 !== 'undefined' ? window$$1 : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self : {};
|
|
49
|
+
var Prism = function () {
|
|
50
|
+
var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
|
|
51
|
+
var _ = _self.Prism = {
|
|
52
|
+
util: {
|
|
53
|
+
encode: function (tokens) {
|
|
54
|
+
if (tokens instanceof Token) {
|
|
55
|
+
return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
|
|
56
|
+
} else if (_.util.type(tokens) === 'Array') {
|
|
57
|
+
return tokens.map(_.util.encode);
|
|
58
|
+
} else {
|
|
59
|
+
return tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\u00a0/g, ' ');
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
type: function (o) {
|
|
63
|
+
return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
|
|
64
|
+
},
|
|
65
|
+
clone: function (o) {
|
|
66
|
+
var type = _.util.type(o);
|
|
67
|
+
switch (type) {
|
|
68
|
+
case 'Object':
|
|
69
|
+
var clone = {};
|
|
70
|
+
for (var key in o) {
|
|
71
|
+
if (o.hasOwnProperty(key)) {
|
|
72
|
+
clone[key] = _.util.clone(o[key]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return clone;
|
|
76
|
+
case 'Array':
|
|
77
|
+
return o.map && o.map(function (v) {
|
|
78
|
+
return _.util.clone(v);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return o;
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
languages: {
|
|
85
|
+
extend: function (id, redef) {
|
|
86
|
+
var lang = _.util.clone(_.languages[id]);
|
|
87
|
+
for (var key in redef) {
|
|
88
|
+
lang[key] = redef[key];
|
|
89
|
+
}
|
|
90
|
+
return lang;
|
|
91
|
+
},
|
|
92
|
+
insertBefore: function (inside, before, insert, root) {
|
|
93
|
+
root = root || _.languages;
|
|
94
|
+
var grammar = root[inside];
|
|
95
|
+
if (arguments.length === 2) {
|
|
96
|
+
insert = arguments[1];
|
|
97
|
+
for (var newToken in insert) {
|
|
98
|
+
if (insert.hasOwnProperty(newToken)) {
|
|
99
|
+
grammar[newToken] = insert[newToken];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return grammar;
|
|
103
|
+
}
|
|
104
|
+
var ret = {};
|
|
105
|
+
for (var token in grammar) {
|
|
106
|
+
if (grammar.hasOwnProperty(token)) {
|
|
107
|
+
if (token === before) {
|
|
108
|
+
for (var newToken in insert) {
|
|
109
|
+
if (insert.hasOwnProperty(newToken)) {
|
|
110
|
+
ret[newToken] = insert[newToken];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
ret[token] = grammar[token];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
_.languages.DFS(_.languages, function (key, value) {
|
|
118
|
+
if (value === root[inside] && key !== inside) {
|
|
119
|
+
this[key] = ret;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return root[inside] = ret;
|
|
123
|
+
},
|
|
124
|
+
DFS: function (o, callback, type) {
|
|
125
|
+
for (var i in o) {
|
|
126
|
+
if (o.hasOwnProperty(i)) {
|
|
127
|
+
callback.call(o, i, o[i], type || i);
|
|
128
|
+
if (_.util.type(o[i]) === 'Object') {
|
|
129
|
+
_.languages.DFS(o[i], callback);
|
|
130
|
+
} else if (_.util.type(o[i]) === 'Array') {
|
|
131
|
+
_.languages.DFS(o[i], callback, i);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
plugins: {},
|
|
138
|
+
highlightAll: function (async, callback) {
|
|
139
|
+
var elements = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');
|
|
140
|
+
for (var i = 0, element = void 0; element = elements[i++];) {
|
|
141
|
+
_.highlightElement(element, async === true, callback);
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
highlightElement: function (element, async, callback) {
|
|
145
|
+
var language, grammar, parent$$1 = element;
|
|
146
|
+
while (parent$$1 && !lang.test(parent$$1.className)) {
|
|
147
|
+
parent$$1 = parent$$1.parentNode;
|
|
148
|
+
}
|
|
149
|
+
if (parent$$1) {
|
|
150
|
+
language = (parent$$1.className.match(lang) || [
|
|
151
|
+
,
|
|
152
|
+
''
|
|
153
|
+
])[1];
|
|
154
|
+
grammar = _.languages[language];
|
|
155
|
+
}
|
|
156
|
+
element.className = element.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
|
|
157
|
+
parent$$1 = element.parentNode;
|
|
158
|
+
if (/pre/i.test(parent$$1.nodeName)) {
|
|
159
|
+
parent$$1.className = parent$$1.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
|
|
160
|
+
}
|
|
161
|
+
var code = element.textContent;
|
|
162
|
+
var env = {
|
|
163
|
+
element: element,
|
|
164
|
+
language: language,
|
|
165
|
+
grammar: grammar,
|
|
166
|
+
code: code
|
|
167
|
+
};
|
|
168
|
+
if (!code || !grammar) {
|
|
169
|
+
_.hooks.run('complete', env);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
_.hooks.run('before-highlight', env);
|
|
173
|
+
if (async && _self.Worker) {
|
|
174
|
+
var worker = new Worker(_.filename);
|
|
175
|
+
worker.onmessage = function (evt) {
|
|
176
|
+
env.highlightedCode = evt.data;
|
|
177
|
+
_.hooks.run('before-insert', env);
|
|
178
|
+
env.element.innerHTML = env.highlightedCode;
|
|
179
|
+
if (callback) {
|
|
180
|
+
callback.call(env.element);
|
|
181
|
+
}
|
|
182
|
+
_.hooks.run('after-highlight', env);
|
|
183
|
+
_.hooks.run('complete', env);
|
|
184
|
+
};
|
|
185
|
+
worker.postMessage(JSON.stringify({
|
|
186
|
+
language: env.language,
|
|
187
|
+
code: env.code,
|
|
188
|
+
immediateClose: true
|
|
189
|
+
}));
|
|
190
|
+
} else {
|
|
191
|
+
env.highlightedCode = _.highlight(env.code, env.grammar, env.language);
|
|
192
|
+
_.hooks.run('before-insert', env);
|
|
193
|
+
env.element.innerHTML = env.highlightedCode;
|
|
194
|
+
if (callback) {
|
|
195
|
+
callback.call(element);
|
|
196
|
+
}
|
|
197
|
+
_.hooks.run('after-highlight', env);
|
|
198
|
+
_.hooks.run('complete', env);
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
highlight: function (text, grammar, language) {
|
|
202
|
+
var tokens = _.tokenize(text, grammar);
|
|
203
|
+
return Token.stringify(_.util.encode(tokens), language);
|
|
204
|
+
},
|
|
205
|
+
tokenize: function (text, grammar, language) {
|
|
206
|
+
var Token = _.Token;
|
|
207
|
+
var strarr = [text];
|
|
208
|
+
var rest = grammar.rest;
|
|
209
|
+
if (rest) {
|
|
210
|
+
for (var token in rest) {
|
|
211
|
+
grammar[token] = rest[token];
|
|
212
|
+
}
|
|
213
|
+
delete grammar.rest;
|
|
214
|
+
}
|
|
215
|
+
tokenloop:
|
|
216
|
+
for (var token in grammar) {
|
|
217
|
+
if (!grammar.hasOwnProperty(token) || !grammar[token]) {
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
var patterns = grammar[token];
|
|
221
|
+
patterns = _.util.type(patterns) === 'Array' ? patterns : [patterns];
|
|
222
|
+
for (var j = 0; j < patterns.length; ++j) {
|
|
223
|
+
var pattern = patterns[j];
|
|
224
|
+
var inside = pattern.inside;
|
|
225
|
+
var lookbehind = !!pattern.lookbehind;
|
|
226
|
+
var lookbehindLength = 0;
|
|
227
|
+
var alias = pattern.alias;
|
|
228
|
+
pattern = pattern.pattern || pattern;
|
|
229
|
+
for (var i = 0; i < strarr.length; i++) {
|
|
230
|
+
var str = strarr[i];
|
|
231
|
+
if (strarr.length > text.length) {
|
|
232
|
+
break tokenloop;
|
|
233
|
+
}
|
|
234
|
+
if (str instanceof Token) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
pattern.lastIndex = 0;
|
|
238
|
+
var match = pattern.exec(str);
|
|
239
|
+
if (match) {
|
|
240
|
+
if (lookbehind) {
|
|
241
|
+
lookbehindLength = match[1].length;
|
|
242
|
+
}
|
|
243
|
+
var from = match.index - 1 + lookbehindLength;
|
|
244
|
+
match = match[0].slice(lookbehindLength);
|
|
245
|
+
var len = match.length, to = from + len, before = str.slice(0, from + 1), after = str.slice(to + 1);
|
|
246
|
+
var args = [
|
|
247
|
+
i,
|
|
248
|
+
1
|
|
249
|
+
];
|
|
250
|
+
if (before) {
|
|
251
|
+
args.push(before);
|
|
252
|
+
}
|
|
253
|
+
var wrapped = new Token(token, inside ? _.tokenize(match, inside) : match, alias);
|
|
254
|
+
args.push(wrapped);
|
|
255
|
+
if (after) {
|
|
256
|
+
args.push(after);
|
|
257
|
+
}
|
|
258
|
+
Array.prototype.splice.apply(strarr, args);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return strarr;
|
|
264
|
+
},
|
|
265
|
+
hooks: {
|
|
266
|
+
all: {},
|
|
267
|
+
add: function (name$$1, callback) {
|
|
268
|
+
var hooks = _.hooks.all;
|
|
269
|
+
hooks[name$$1] = hooks[name$$1] || [];
|
|
270
|
+
hooks[name$$1].push(callback);
|
|
271
|
+
},
|
|
272
|
+
run: function (name$$1, env) {
|
|
273
|
+
var callbacks = _.hooks.all[name$$1];
|
|
274
|
+
if (!callbacks || !callbacks.length) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
for (var i = 0, callback = void 0; callback = callbacks[i++];) {
|
|
278
|
+
callback(env);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
var Token = _.Token = function (type, content, alias) {
|
|
284
|
+
this.type = type;
|
|
285
|
+
this.content = content;
|
|
286
|
+
this.alias = alias;
|
|
287
|
+
};
|
|
288
|
+
Token.stringify = function (o, language, parent$$1) {
|
|
289
|
+
if (typeof o === 'string') {
|
|
290
|
+
return o;
|
|
291
|
+
}
|
|
292
|
+
if (_.util.type(o) === 'Array') {
|
|
293
|
+
return o.map(function (element) {
|
|
294
|
+
return Token.stringify(element, language, o);
|
|
295
|
+
}).join('');
|
|
296
|
+
}
|
|
297
|
+
var env = {
|
|
298
|
+
type: o.type,
|
|
299
|
+
content: Token.stringify(o.content, language, parent$$1),
|
|
300
|
+
tag: 'span',
|
|
301
|
+
classes: [
|
|
302
|
+
'token',
|
|
303
|
+
o.type
|
|
304
|
+
],
|
|
305
|
+
attributes: {},
|
|
306
|
+
language: language,
|
|
307
|
+
parent: parent$$1
|
|
308
|
+
};
|
|
309
|
+
if (env.type === 'comment') {
|
|
310
|
+
env.attributes.spellcheck = 'true';
|
|
311
|
+
}
|
|
312
|
+
if (o.alias) {
|
|
313
|
+
var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];
|
|
314
|
+
Array.prototype.push.apply(env.classes, aliases);
|
|
315
|
+
}
|
|
316
|
+
_.hooks.run('wrap', env);
|
|
317
|
+
var attributes = '';
|
|
318
|
+
for (var name$$1 in env.attributes) {
|
|
319
|
+
attributes += (attributes ? ' ' : '') + name$$1 + '="' + (env.attributes[name$$1] || '') + '"';
|
|
320
|
+
}
|
|
321
|
+
return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + '</' + env.tag + '>';
|
|
322
|
+
};
|
|
323
|
+
if (!_self.document) {
|
|
324
|
+
if (!_self.addEventListener) {
|
|
325
|
+
return _self.Prism;
|
|
326
|
+
}
|
|
327
|
+
_self.addEventListener('message', function (evt) {
|
|
328
|
+
var message = JSON.parse(evt.data), lang = message.language, code = message.code, immediateClose = message.immediateClose;
|
|
329
|
+
_self.postMessage(_.highlight(code, _.languages[lang], lang));
|
|
330
|
+
if (immediateClose) {
|
|
331
|
+
_self.close();
|
|
332
|
+
}
|
|
333
|
+
}, false);
|
|
334
|
+
return _self.Prism;
|
|
335
|
+
}
|
|
336
|
+
}();
|
|
337
|
+
if (typeof global$2 !== 'undefined') {
|
|
338
|
+
global$2.Prism = Prism;
|
|
339
|
+
}
|
|
340
|
+
Prism.languages.markup = {
|
|
341
|
+
comment: /<!--[\w\W]*?-->/,
|
|
342
|
+
prolog: /<\?[\w\W]+?\?>/,
|
|
343
|
+
doctype: /<!DOCTYPE[\w\W]+?>/,
|
|
344
|
+
cdata: /<!\[CDATA\[[\w\W]*?]]>/i,
|
|
345
|
+
tag: {
|
|
346
|
+
pattern: /<\/?[^\s>\/=.]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
|
|
347
|
+
inside: {
|
|
348
|
+
'tag': {
|
|
349
|
+
pattern: /^<\/?[^\s>\/]+/i,
|
|
350
|
+
inside: {
|
|
351
|
+
punctuation: /^<\/?/,
|
|
352
|
+
namespace: /^[^\s>\/:]+:/
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
'attr-value': {
|
|
356
|
+
pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,
|
|
357
|
+
inside: { punctuation: /[=>"']/ }
|
|
358
|
+
},
|
|
359
|
+
'punctuation': /\/?>/,
|
|
360
|
+
'attr-name': {
|
|
361
|
+
pattern: /[^\s>\/]+/,
|
|
362
|
+
inside: { namespace: /^[^\s>\/:]+:/ }
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
entity: /&#?[\da-z]{1,8};/i
|
|
367
|
+
};
|
|
368
|
+
Prism.hooks.add('wrap', function (env) {
|
|
369
|
+
if (env.type === 'entity') {
|
|
370
|
+
env.attributes.title = env.content.replace(/&/, '&');
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
Prism.languages.xml = Prism.languages.markup;
|
|
374
|
+
Prism.languages.html = Prism.languages.markup;
|
|
375
|
+
Prism.languages.mathml = Prism.languages.markup;
|
|
376
|
+
Prism.languages.svg = Prism.languages.markup;
|
|
377
|
+
Prism.languages.css = {
|
|
378
|
+
comment: /\/\*[\w\W]*?\*\//,
|
|
379
|
+
atrule: {
|
|
380
|
+
pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i,
|
|
381
|
+
inside: { rule: /@[\w-]+/ }
|
|
382
|
+
},
|
|
383
|
+
url: /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,
|
|
384
|
+
selector: /[^\{\}\s][^\{\};]*?(?=\s*\{)/,
|
|
385
|
+
string: /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,
|
|
386
|
+
property: /(\b|\B)[\w-]+(?=\s*:)/i,
|
|
387
|
+
important: /\B!important\b/i,
|
|
388
|
+
function: /[-a-z0-9]+(?=\()/i,
|
|
389
|
+
punctuation: /[(){};:]/
|
|
390
|
+
};
|
|
391
|
+
Prism.languages.css.atrule.inside.rest = Prism.util.clone(Prism.languages.css);
|
|
392
|
+
if (Prism.languages.markup) {
|
|
393
|
+
Prism.languages.insertBefore('markup', 'tag', {
|
|
394
|
+
style: {
|
|
395
|
+
pattern: /<style[\w\W]*?>[\w\W]*?<\/style>/i,
|
|
396
|
+
inside: {
|
|
397
|
+
tag: {
|
|
398
|
+
pattern: /<style[\w\W]*?>|<\/style>/i,
|
|
399
|
+
inside: Prism.languages.markup.tag.inside
|
|
400
|
+
},
|
|
401
|
+
rest: Prism.languages.css
|
|
402
|
+
},
|
|
403
|
+
alias: 'language-css'
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
Prism.languages.insertBefore('inside', 'attr-value', {
|
|
407
|
+
'style-attr': {
|
|
408
|
+
pattern: /\s*style=("|').*?\1/i,
|
|
409
|
+
inside: {
|
|
410
|
+
'attr-name': {
|
|
411
|
+
pattern: /^\s*style/i,
|
|
412
|
+
inside: Prism.languages.markup.tag.inside
|
|
413
|
+
},
|
|
414
|
+
'punctuation': /^\s*=\s*['"]|['"]\s*$/,
|
|
415
|
+
'attr-value': {
|
|
416
|
+
pattern: /.+/i,
|
|
417
|
+
inside: Prism.languages.css
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
alias: 'language-css'
|
|
421
|
+
}
|
|
422
|
+
}, Prism.languages.markup.tag);
|
|
423
|
+
}
|
|
424
|
+
Prism.languages.clike = {
|
|
425
|
+
'comment': [
|
|
426
|
+
{
|
|
427
|
+
pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
|
|
428
|
+
lookbehind: true
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
pattern: /(^|[^\\:])\/\/.*/,
|
|
432
|
+
lookbehind: true
|
|
433
|
+
}
|
|
434
|
+
],
|
|
435
|
+
'string': /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
|
436
|
+
'class-name': {
|
|
437
|
+
pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
|
|
438
|
+
lookbehind: true,
|
|
439
|
+
inside: { punctuation: /(\.|\\)/ }
|
|
440
|
+
},
|
|
441
|
+
'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
|
|
442
|
+
'boolean': /\b(true|false)\b/,
|
|
443
|
+
'function': /[a-z0-9_]+(?=\()/i,
|
|
444
|
+
'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,
|
|
445
|
+
'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
|
|
446
|
+
'punctuation': /[{}[\];(),.:]/
|
|
447
|
+
};
|
|
448
|
+
Prism.languages.javascript = Prism.languages.extend('clike', {
|
|
449
|
+
keyword: /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,
|
|
450
|
+
number: /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
|
|
451
|
+
function: /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i
|
|
452
|
+
});
|
|
453
|
+
Prism.languages.insertBefore('javascript', 'keyword', {
|
|
454
|
+
regex: {
|
|
455
|
+
pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,
|
|
456
|
+
lookbehind: true
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
Prism.languages.insertBefore('javascript', 'class-name', {
|
|
460
|
+
'template-string': {
|
|
461
|
+
pattern: /`(?:\\`|\\?[^`])*`/,
|
|
462
|
+
inside: {
|
|
463
|
+
interpolation: {
|
|
464
|
+
pattern: /\$\{[^}]+\}/,
|
|
465
|
+
inside: {
|
|
466
|
+
'interpolation-punctuation': {
|
|
467
|
+
pattern: /^\$\{|\}$/,
|
|
468
|
+
alias: 'punctuation'
|
|
469
|
+
},
|
|
470
|
+
'rest': Prism.languages.javascript
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
string: /[\s\S]+/
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
if (Prism.languages.markup) {
|
|
478
|
+
Prism.languages.insertBefore('markup', 'tag', {
|
|
479
|
+
script: {
|
|
480
|
+
pattern: /<script[\w\W]*?>[\w\W]*?<\/script>/i,
|
|
481
|
+
inside: {
|
|
482
|
+
tag: {
|
|
483
|
+
pattern: /<script[\w\W]*?>|<\/script>/i,
|
|
484
|
+
inside: Prism.languages.markup.tag.inside
|
|
485
|
+
},
|
|
486
|
+
rest: Prism.languages.javascript
|
|
487
|
+
},
|
|
488
|
+
alias: 'language-javascript'
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
Prism.languages.js = Prism.languages.javascript;
|
|
493
|
+
Prism.languages.c = Prism.languages.extend('clike', {
|
|
494
|
+
keyword: /\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,
|
|
495
|
+
operator: /\-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*\/]/,
|
|
496
|
+
number: /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i
|
|
497
|
+
});
|
|
498
|
+
Prism.languages.insertBefore('c', 'string', {
|
|
499
|
+
macro: {
|
|
500
|
+
pattern: /(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,
|
|
501
|
+
lookbehind: true,
|
|
502
|
+
alias: 'property',
|
|
503
|
+
inside: {
|
|
504
|
+
string: {
|
|
505
|
+
pattern: /(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,
|
|
506
|
+
lookbehind: true
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
delete Prism.languages.c['class-name'];
|
|
512
|
+
delete Prism.languages.c.boolean;
|
|
513
|
+
Prism.languages.csharp = Prism.languages.extend('clike', {
|
|
514
|
+
keyword: /\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,
|
|
515
|
+
string: [
|
|
516
|
+
/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,
|
|
517
|
+
/("|')(\\?.)*?\1/
|
|
518
|
+
],
|
|
519
|
+
number: /\b-?(0x[\da-f]+|\d*\.?\d+)\b/i
|
|
520
|
+
});
|
|
521
|
+
Prism.languages.insertBefore('csharp', 'keyword', {
|
|
522
|
+
preprocessor: {
|
|
523
|
+
pattern: /(^\s*)#.*/m,
|
|
524
|
+
lookbehind: true
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
Prism.languages.cpp = Prism.languages.extend('c', {
|
|
528
|
+
keyword: /\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,
|
|
529
|
+
boolean: /\b(true|false)\b/,
|
|
530
|
+
operator: /[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/
|
|
531
|
+
});
|
|
532
|
+
Prism.languages.insertBefore('cpp', 'keyword', {
|
|
533
|
+
'class-name': {
|
|
534
|
+
pattern: /(class\s+)[a-z0-9_]+/i,
|
|
535
|
+
lookbehind: true
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
Prism.languages.java = Prism.languages.extend('clike', {
|
|
539
|
+
keyword: /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,
|
|
540
|
+
number: /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,
|
|
541
|
+
operator: {
|
|
542
|
+
pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,
|
|
543
|
+
lookbehind: true
|
|
544
|
+
}
|
|
545
|
+
});
|
|
546
|
+
Prism.languages.php = Prism.languages.extend('clike', {
|
|
547
|
+
keyword: /\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,
|
|
548
|
+
constant: /\b[A-Z0-9_]{2,}\b/,
|
|
549
|
+
comment: {
|
|
550
|
+
pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,
|
|
551
|
+
lookbehind: true
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
Prism.languages.insertBefore('php', 'class-name', {
|
|
555
|
+
'shell-comment': {
|
|
556
|
+
pattern: /(^|[^\\])#.*/,
|
|
557
|
+
lookbehind: true,
|
|
558
|
+
alias: 'comment'
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
Prism.languages.insertBefore('php', 'keyword', {
|
|
562
|
+
delimiter: /\?>|<\?(?:php)?/i,
|
|
563
|
+
variable: /\$\w+\b/i,
|
|
564
|
+
package: {
|
|
565
|
+
pattern: /(\\|namespace\s+|use\s+)[\w\\]+/,
|
|
566
|
+
lookbehind: true,
|
|
567
|
+
inside: { punctuation: /\\/ }
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
Prism.languages.insertBefore('php', 'operator', {
|
|
571
|
+
property: {
|
|
572
|
+
pattern: /(->)[\w]+/,
|
|
573
|
+
lookbehind: true
|
|
574
|
+
}
|
|
575
|
+
});
|
|
576
|
+
if (Prism.languages.markup) {
|
|
577
|
+
Prism.hooks.add('before-highlight', function (env) {
|
|
578
|
+
if (env.language !== 'php') {
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
env.tokenStack = [];
|
|
582
|
+
env.backupCode = env.code;
|
|
583
|
+
env.code = env.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/ig, function (match) {
|
|
584
|
+
env.tokenStack.push(match);
|
|
585
|
+
return '{{{PHP' + env.tokenStack.length + '}}}';
|
|
586
|
+
});
|
|
587
|
+
});
|
|
588
|
+
Prism.hooks.add('before-insert', function (env) {
|
|
589
|
+
if (env.language === 'php') {
|
|
590
|
+
env.code = env.backupCode;
|
|
591
|
+
delete env.backupCode;
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
Prism.hooks.add('after-highlight', function (env) {
|
|
595
|
+
if (env.language !== 'php') {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
for (var i = 0, t = void 0; t = env.tokenStack[i]; i++) {
|
|
599
|
+
env.highlightedCode = env.highlightedCode.replace('{{{PHP' + (i + 1) + '}}}', Prism.highlight(t, env.grammar, 'php').replace(/\$/g, '$$$$'));
|
|
600
|
+
}
|
|
601
|
+
env.element.innerHTML = env.highlightedCode;
|
|
602
|
+
});
|
|
603
|
+
Prism.hooks.add('wrap', function (env) {
|
|
604
|
+
if (env.language === 'php' && env.type === 'markup') {
|
|
605
|
+
env.content = env.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g, '<span class="token php">$1</span>');
|
|
606
|
+
}
|
|
607
|
+
});
|
|
608
|
+
Prism.languages.insertBefore('php', 'comment', {
|
|
609
|
+
markup: {
|
|
610
|
+
pattern: /<[^?]\/?(.*?)>/,
|
|
611
|
+
inside: Prism.languages.markup
|
|
612
|
+
},
|
|
613
|
+
php: /\{\{\{PHP[0-9]+\}\}\}/
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
Prism.languages.python = {
|
|
617
|
+
'comment': {
|
|
618
|
+
pattern: /(^|[^\\])#.*/,
|
|
619
|
+
lookbehind: true
|
|
620
|
+
},
|
|
621
|
+
'string': /"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(?:\\?.)*?\1/,
|
|
622
|
+
'function': {
|
|
623
|
+
pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,
|
|
624
|
+
lookbehind: true
|
|
625
|
+
},
|
|
626
|
+
'class-name': {
|
|
627
|
+
pattern: /(\bclass\s+)[a-z0-9_]+/i,
|
|
628
|
+
lookbehind: true
|
|
629
|
+
},
|
|
630
|
+
'keyword': /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,
|
|
631
|
+
'boolean': /\b(?:True|False)\b/,
|
|
632
|
+
'number': /\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,
|
|
633
|
+
'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,
|
|
634
|
+
'punctuation': /[{}[\];(),.:]/
|
|
635
|
+
};
|
|
636
|
+
(function (Prism) {
|
|
637
|
+
Prism.languages.ruby = Prism.languages.extend('clike', {
|
|
638
|
+
comment: /#(?!\{[^\r\n]*?\}).*/,
|
|
639
|
+
keyword: /\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/
|
|
640
|
+
});
|
|
641
|
+
var interpolation = {
|
|
642
|
+
pattern: /#\{[^}]+\}/,
|
|
643
|
+
inside: {
|
|
644
|
+
delimiter: {
|
|
645
|
+
pattern: /^#\{|\}$/,
|
|
646
|
+
alias: 'tag'
|
|
647
|
+
},
|
|
648
|
+
rest: Prism.util.clone(Prism.languages.ruby)
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
Prism.languages.insertBefore('ruby', 'keyword', {
|
|
652
|
+
regex: [
|
|
653
|
+
{
|
|
654
|
+
pattern: /%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,
|
|
655
|
+
inside: { interpolation: interpolation }
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
pattern: /%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,
|
|
659
|
+
inside: { interpolation: interpolation }
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
pattern: /%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,
|
|
663
|
+
inside: { interpolation: interpolation }
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
pattern: /%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,
|
|
667
|
+
inside: { interpolation: interpolation }
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
pattern: /%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,
|
|
671
|
+
inside: { interpolation: interpolation }
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
|
|
675
|
+
lookbehind: true
|
|
676
|
+
}
|
|
677
|
+
],
|
|
678
|
+
variable: /[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,
|
|
679
|
+
symbol: /:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/
|
|
680
|
+
});
|
|
681
|
+
Prism.languages.insertBefore('ruby', 'number', {
|
|
682
|
+
builtin: /\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,
|
|
683
|
+
constant: /\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/
|
|
684
|
+
});
|
|
685
|
+
Prism.languages.ruby.string = [
|
|
686
|
+
{
|
|
687
|
+
pattern: /%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,
|
|
688
|
+
inside: { interpolation: interpolation }
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
pattern: /%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,
|
|
692
|
+
inside: { interpolation: interpolation }
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
pattern: /%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,
|
|
696
|
+
inside: { interpolation: interpolation }
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
pattern: /%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,
|
|
700
|
+
inside: { interpolation: interpolation }
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
pattern: /%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,
|
|
704
|
+
inside: { interpolation: interpolation }
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
pattern: /("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,
|
|
708
|
+
inside: { interpolation: interpolation }
|
|
709
|
+
}
|
|
710
|
+
];
|
|
711
|
+
}(Prism));
|
|
712
|
+
|
|
713
|
+
function isCodeSample(elm) {
|
|
714
|
+
return elm && elm.nodeName === 'PRE' && elm.className.indexOf('language-') !== -1;
|
|
715
|
+
}
|
|
716
|
+
function trimArg(predicateFn) {
|
|
717
|
+
return function (arg1, arg2) {
|
|
718
|
+
return predicateFn(arg2);
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
var $_agtlhafjm0ofy90 = {
|
|
722
|
+
isCodeSample: isCodeSample,
|
|
723
|
+
trimArg: trimArg
|
|
724
|
+
};
|
|
725
|
+
|
|
726
|
+
var getSelectedCodeSample = function (editor) {
|
|
727
|
+
var node = editor.selection.getNode();
|
|
728
|
+
if ($_agtlhafjm0ofy90.isCodeSample(node)) {
|
|
729
|
+
return node;
|
|
730
|
+
}
|
|
731
|
+
return null;
|
|
732
|
+
};
|
|
733
|
+
var insertCodeSample = function (editor, language, code) {
|
|
734
|
+
editor.undoManager.transact(function () {
|
|
735
|
+
var node = getSelectedCodeSample(editor);
|
|
736
|
+
code = global$1.DOM.encode(code);
|
|
737
|
+
if (node) {
|
|
738
|
+
editor.dom.setAttrib(node, 'class', 'language-' + language);
|
|
739
|
+
node.innerHTML = code;
|
|
740
|
+
Prism.highlightElement(node);
|
|
741
|
+
editor.selection.select(node);
|
|
742
|
+
} else {
|
|
743
|
+
editor.insertContent('<pre id="__new" class="language-' + language + '">' + code + '</pre>');
|
|
744
|
+
editor.selection.select(editor.$('#__new').removeAttr('id')[0]);
|
|
745
|
+
}
|
|
746
|
+
});
|
|
747
|
+
};
|
|
748
|
+
var getCurrentCode = function (editor) {
|
|
749
|
+
var node = getSelectedCodeSample(editor);
|
|
750
|
+
if (node) {
|
|
751
|
+
return node.textContent;
|
|
752
|
+
}
|
|
753
|
+
return '';
|
|
754
|
+
};
|
|
755
|
+
var $_gsi01acjm0ofy7m = {
|
|
756
|
+
getSelectedCodeSample: getSelectedCodeSample,
|
|
757
|
+
insertCodeSample: insertCodeSample,
|
|
758
|
+
getCurrentCode: getCurrentCode
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
var getLanguages$1 = function (editor) {
|
|
762
|
+
var defaultLanguages = [
|
|
763
|
+
{
|
|
764
|
+
text: 'HTML/XML',
|
|
765
|
+
value: 'markup'
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
text: 'JavaScript',
|
|
769
|
+
value: 'javascript'
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
text: 'CSS',
|
|
773
|
+
value: 'css'
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
text: 'PHP',
|
|
777
|
+
value: 'php'
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
text: 'Ruby',
|
|
781
|
+
value: 'ruby'
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
text: 'Python',
|
|
785
|
+
value: 'python'
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
text: 'Java',
|
|
789
|
+
value: 'java'
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
text: 'C',
|
|
793
|
+
value: 'c'
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
text: 'C#',
|
|
797
|
+
value: 'csharp'
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
text: 'C++',
|
|
801
|
+
value: 'cpp'
|
|
802
|
+
}
|
|
803
|
+
];
|
|
804
|
+
var customLanguages = $_6tgxjgaajm0ofy7e.getLanguages(editor);
|
|
805
|
+
return customLanguages ? customLanguages : defaultLanguages;
|
|
806
|
+
};
|
|
807
|
+
var getCurrentLanguage = function (editor) {
|
|
808
|
+
var matches;
|
|
809
|
+
var node = $_gsi01acjm0ofy7m.getSelectedCodeSample(editor);
|
|
810
|
+
if (node) {
|
|
811
|
+
matches = node.className.match(/language-(\w+)/);
|
|
812
|
+
return matches ? matches[1] : '';
|
|
813
|
+
}
|
|
814
|
+
return '';
|
|
815
|
+
};
|
|
816
|
+
var $_87mfk3agjm0ofy92 = {
|
|
817
|
+
getLanguages: getLanguages$1,
|
|
818
|
+
getCurrentLanguage: getCurrentLanguage
|
|
819
|
+
};
|
|
820
|
+
|
|
821
|
+
var $_47ybdma9jm0ofy7d = {
|
|
822
|
+
open: function (editor) {
|
|
823
|
+
var minWidth = $_6tgxjgaajm0ofy7e.getDialogMinWidth(editor);
|
|
824
|
+
var minHeight = $_6tgxjgaajm0ofy7e.getDialogMinHeight(editor);
|
|
825
|
+
var currentLanguage = $_87mfk3agjm0ofy92.getCurrentLanguage(editor);
|
|
826
|
+
var currentLanguages = $_87mfk3agjm0ofy92.getLanguages(editor);
|
|
827
|
+
var currentCode = $_gsi01acjm0ofy7m.getCurrentCode(editor);
|
|
828
|
+
editor.windowManager.open({
|
|
829
|
+
title: 'Insert/Edit code sample',
|
|
830
|
+
minWidth: minWidth,
|
|
831
|
+
minHeight: minHeight,
|
|
832
|
+
layout: 'flex',
|
|
833
|
+
direction: 'column',
|
|
834
|
+
align: 'stretch',
|
|
835
|
+
body: [
|
|
836
|
+
{
|
|
837
|
+
type: 'listbox',
|
|
838
|
+
name: 'language',
|
|
839
|
+
label: 'Language',
|
|
840
|
+
maxWidth: 200,
|
|
841
|
+
value: currentLanguage,
|
|
842
|
+
values: currentLanguages
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
type: 'textbox',
|
|
846
|
+
name: 'code',
|
|
847
|
+
multiline: true,
|
|
848
|
+
spellcheck: false,
|
|
849
|
+
ariaLabel: 'Code view',
|
|
850
|
+
flex: 1,
|
|
851
|
+
style: 'direction: ltr; text-align: left',
|
|
852
|
+
classes: 'monospace',
|
|
853
|
+
value: currentCode,
|
|
854
|
+
autofocus: true
|
|
855
|
+
}
|
|
856
|
+
],
|
|
857
|
+
onSubmit: function (e) {
|
|
858
|
+
$_gsi01acjm0ofy7m.insertCodeSample(editor, e.data.language, e.data.code);
|
|
859
|
+
}
|
|
860
|
+
});
|
|
861
|
+
}
|
|
862
|
+
};
|
|
863
|
+
|
|
864
|
+
var register = function (editor) {
|
|
865
|
+
editor.addCommand('codesample', function () {
|
|
866
|
+
var node = editor.selection.getNode();
|
|
867
|
+
if (editor.selection.isCollapsed() || $_agtlhafjm0ofy90.isCodeSample(node)) {
|
|
868
|
+
$_47ybdma9jm0ofy7d.open(editor);
|
|
869
|
+
} else {
|
|
870
|
+
editor.formatter.toggle('code');
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
};
|
|
874
|
+
var $_dve9fsa8jm0ofy7c = { register: register };
|
|
875
|
+
|
|
876
|
+
var setup = function (editor) {
|
|
877
|
+
var $ = editor.$;
|
|
878
|
+
editor.on('PreProcess', function (e) {
|
|
879
|
+
$('pre[contenteditable=false]', e.node).filter($_agtlhafjm0ofy90.trimArg($_agtlhafjm0ofy90.isCodeSample)).each(function (idx, elm) {
|
|
880
|
+
var $elm = $(elm), code = elm.textContent;
|
|
881
|
+
$elm.attr('class', $.trim($elm.attr('class')));
|
|
882
|
+
$elm.removeAttr('contentEditable');
|
|
883
|
+
$elm.empty().append($('<code></code>').each(function () {
|
|
884
|
+
this.textContent = code;
|
|
885
|
+
}));
|
|
886
|
+
});
|
|
887
|
+
});
|
|
888
|
+
editor.on('SetContent', function () {
|
|
889
|
+
var unprocessedCodeSamples = $('pre').filter($_agtlhafjm0ofy90.trimArg($_agtlhafjm0ofy90.isCodeSample)).filter(function (idx, elm) {
|
|
890
|
+
return elm.contentEditable !== 'false';
|
|
891
|
+
});
|
|
892
|
+
if (unprocessedCodeSamples.length) {
|
|
893
|
+
editor.undoManager.transact(function () {
|
|
894
|
+
unprocessedCodeSamples.each(function (idx, elm) {
|
|
895
|
+
$(elm).find('br').each(function (idx, elm) {
|
|
896
|
+
elm.parentNode.replaceChild(editor.getDoc().createTextNode('\n'), elm);
|
|
897
|
+
});
|
|
898
|
+
elm.contentEditable = false;
|
|
899
|
+
elm.innerHTML = editor.dom.encode(elm.textContent);
|
|
900
|
+
Prism.highlightElement(elm);
|
|
901
|
+
elm.className = $.trim(elm.className);
|
|
902
|
+
});
|
|
903
|
+
});
|
|
904
|
+
}
|
|
905
|
+
});
|
|
906
|
+
};
|
|
907
|
+
var $_7swko9ahjm0ofy94 = { setup: setup };
|
|
908
|
+
|
|
909
|
+
var loadCss = function (editor, pluginUrl, addedInlineCss, addedCss) {
|
|
910
|
+
var linkElm;
|
|
911
|
+
var contentCss = $_6tgxjgaajm0ofy7e.getContentCss(editor);
|
|
912
|
+
if (editor.inline && addedInlineCss.get()) {
|
|
913
|
+
return;
|
|
914
|
+
}
|
|
915
|
+
if (!editor.inline && addedCss.get()) {
|
|
916
|
+
return;
|
|
917
|
+
}
|
|
918
|
+
if (editor.inline) {
|
|
919
|
+
addedInlineCss.set(true);
|
|
920
|
+
} else {
|
|
921
|
+
addedCss.set(true);
|
|
922
|
+
}
|
|
923
|
+
if (contentCss !== false) {
|
|
924
|
+
linkElm = editor.dom.create('link', {
|
|
925
|
+
rel: 'stylesheet',
|
|
926
|
+
href: contentCss ? contentCss : pluginUrl + '/css/prism.css'
|
|
927
|
+
});
|
|
928
|
+
editor.getDoc().getElementsByTagName('head')[0].appendChild(linkElm);
|
|
929
|
+
}
|
|
930
|
+
};
|
|
931
|
+
var $_7f0gvpaijm0ofy96 = { loadCss: loadCss };
|
|
932
|
+
|
|
933
|
+
var register$1 = function (editor) {
|
|
934
|
+
editor.addButton('codesample', {
|
|
935
|
+
cmd: 'codesample',
|
|
936
|
+
title: 'Insert/Edit code sample'
|
|
937
|
+
});
|
|
938
|
+
editor.addMenuItem('codesample', {
|
|
939
|
+
cmd: 'codesample',
|
|
940
|
+
text: 'Code sample',
|
|
941
|
+
icon: 'codesample'
|
|
942
|
+
});
|
|
943
|
+
};
|
|
944
|
+
var $_3p6ti4ajjm0ofy97 = { register: register$1 };
|
|
945
|
+
|
|
946
|
+
var addedInlineCss = Cell(false);
|
|
947
|
+
global.add('codesample', function (editor, pluginUrl) {
|
|
948
|
+
var addedCss = Cell(false);
|
|
949
|
+
$_7swko9ahjm0ofy94.setup(editor);
|
|
950
|
+
$_3p6ti4ajjm0ofy97.register(editor);
|
|
951
|
+
$_dve9fsa8jm0ofy7c.register(editor);
|
|
952
|
+
editor.on('init', function () {
|
|
953
|
+
$_7f0gvpaijm0ofy96.loadCss(editor, pluginUrl, addedInlineCss, addedCss);
|
|
954
|
+
});
|
|
955
|
+
editor.on('dblclick', function (ev) {
|
|
956
|
+
if ($_agtlhafjm0ofy90.isCodeSample(ev.target)) {
|
|
957
|
+
$_47ybdma9jm0ofy7d.open(editor);
|
|
958
|
+
}
|
|
959
|
+
});
|
|
960
|
+
});
|
|
961
|
+
function Plugin () {
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
return Plugin;
|
|
965
|
+
|
|
966
|
+
}());
|
|
967
|
+
})();
|