فهرست منبع

#1107 Code insert plugin for tinymce

Alex Trofimov 8 سال پیش
والد
کامیت
534bfe0e56
4فایلهای تغییر یافته به همراه156 افزوده شده و 3 حذف شده
  1. 2 0
      inc/classes/BxDolTemplate.php
  2. 140 0
      plugins_public/prism/prism.css
  3. 2 0
      plugins_public/prism/prism.js
  4. 12 3
      template/scripts/BxBaseEditorTinyMCE.php

+ 2 - 0
inc/classes/BxDolTemplate.php

@@ -449,6 +449,7 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
             'media-print.css',
             BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'marka/|marka.min.css',
             BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'at.js/css/|jquery.atwho.min.css',
+            BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'prism/|prism.css',
         ));
 
         //--- Load default JS ---//
@@ -467,6 +468,7 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
             'marka/marka.min.js',
             'headroom.min.js',
             'at.js/js/jquery.atwho.min.js',
+            'prism/prism.js',
         ));
 
         //--- Load translations in JS ---//

+ 140 - 0
plugins_public/prism/prism.css

@@ -0,0 +1,140 @@
+/* PrismJS 1.11.0
+http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+php */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+	color: black;
+	background: none;
+	text-shadow: 0 1px white;
+	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+	word-break: normal;
+	word-wrap: normal;
+	line-height: 1.5;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+@media print {
+	code[class*="language-"],
+	pre[class*="language-"] {
+		text-shadow: none;
+	}
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+	white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: slategray;
+}
+
+.token.punctuation {
+	color: #999;
+}
+
+.namespace {
+	opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+	color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+	color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+	color: #a67f59;
+	background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+	color: #07a;
+}
+
+.token.function {
+	color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+	color: #e90;
+}
+
+.token.important,
+.token.bold {
+	font-weight: bold;
+}
+.token.italic {
+	font-style: italic;
+}
+
+.token.entity {
+	cursor: help;
+}
+

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2 - 0
plugins_public/prism/prism.js


+ 12 - 3
template/scripts/BxBaseEditorTinyMCE.php

@@ -29,6 +29,12 @@ class BxBaseEditorTinyMCE extends BxDolEditor
                         browser_spellcheck: true,
                         branding: false,
                         body_class: 'bx-def-color-bg-block',
+                        codesample_languages: [
+                            {text: 'HTML/XML', value: 'markup'},
+                            {text: 'JavaScript', value: 'javascript'},
+                            {text: 'CSS', value: 'css'},
+                            {text: 'PHP', value: 'php'},
+                        ],
                         init_instance_callback: function(editor) {
                             $(editor.contentDocument.activeElement).atwho({
                                 searchKey: 'label',
@@ -71,10 +77,11 @@ EOS;
                             media: '{bx_url_tinymce}plugins/media/plugin.min.js',
                             paste: '{bx_url_tinymce}plugins/paste/plugin.min.js',
                             fullscreen: '{bx_url_tinymce}plugins/fullscreen/plugin.min.js',
+                            codesample: '{bx_url_tinymce}plugins/codesample/plugin.min.js',
                         },
                         width: '100%',
                         height: '270',
-                        toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
+                        toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | fullscreen codesample',
                         statusbar: true,
                         resize: true,
     ";
@@ -91,10 +98,11 @@ EOS;
                             lists: '{bx_url_tinymce}plugins/lists/plugin.min.js',
                             paste: '{bx_url_tinymce}plugins/paste/plugin.min.js',
                             fullscreen: '{bx_url_tinymce}plugins/fullscreen/plugin.min.js',
+                            codesample: '{bx_url_tinymce}plugins/codesample/plugin.min.js',
                         },
                         width: '100%',
                         height: '150',                        
-                        toolbar: 'bold italic underline removeformat | bullist numlist | alignleft aligncenter alignright | blockquote | link unlink image',
+                        toolbar: 'bold italic underline removeformat | bullist numlist | alignleft aligncenter alignright | blockquote | link unlink image | fullscreen codesample',
                         statusbar: true,
                         resize: true,
     ";
@@ -128,12 +136,13 @@ EOS;
                             textcolor: '{bx_url_tinymce}plugins/textcolor/plugin.min.js',
                             visualblocks: '{bx_url_tinymce}plugins/visualblocks/plugin.min.js',
                             fullscreen: '{bx_url_tinymce}plugins/fullscreen/plugin.min.js',
+                            codesample: '{bx_url_tinymce}plugins/codesample/plugin.min.js',
                         },
                         width: '100%',
                         height: '320',
                         toolbar: [
                             'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
-                            'print preview media | forecolor emoticons | fullscreen'
+                            'print preview media | forecolor emoticons | fullscreen codesample'
                         ],
                         statusbar: true,
                         resize: true,

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است