要实现Dede V5.7代码高亮的方法,可以按照以下步骤操作:
准备工作
1、下载SyntaxHighlighter:访问SyntaxHighlighter的官方网站(http://alexgorbatchev.com/SyntaxHighlighter/download/),建议下载2.1版本,3.0版本的SyntaxHighlighter可能不支持自动换行。
2、解压文件:将下载的文件解压到本地文件夹中,并去除无用的文件,只保留scripts和styles文件夹。
配置CKEditor
1、创建syntaxhighlight.js文件:在新建的dialogs文件夹中创建一个名为syntaxhighlight.js的文件,由于代码量较大,可以直接下载syntaxhighlight.js文件。
2、修改样式:如果需要修改代码区域的样式,可以在以下代码处进行修改:
onOk : function() { var i = this.getParentEditor(); var h = i.getSelection(); var g = h.getStartElement(); var l = g && g.getAscendant("pre", true); var j = f(); this.commitContent(j); var k = e(j); var m = CKEDITOR.dom.element.createFromHtml('<table style="border:1px solid #EAED9C;width:660px;"><tr><td><pre class="' + k + '">' + c(j.code) +"</pre></td></tr><table>"); if (l) { m.insertBefore(l); l.remove() } else { i.insertElement(m) } },
这段代码定义了插入代码块时的HTML结构,可以根据需要进行修改。
3、添加图片文件:在新建的images文件夹中存放一个syntaxhighlight.gif图片文件,该图片文件将在编辑器工具栏上显示,建议使用16*16像素的图片。
4、创建语言包:新建lang文件夹,并在其中创建两个文件,一个是中文cn.js,另一个是英文en.js,这两个文件分别包含中文和英文的语言包配置。
5、创建plugin.js文件:新建一个名为plugin.js的文件,并在其中添加以下代码:
CKEDITOR.plugins.add("syntaxhighlight", { requires : [ "dialog" ], lang : [ "cn" ], init : function(a) { var b = "syntaxhighlight"; var c = a.addCommand(b, new CKEDITOR.dialogCommand(b)); c.modes = { wysiwyg : 1, source : 1 }; c.canUndo = false; a.ui.addButton("Code", { label : a.lang.syntaxhighlight.title, command : b, icon : this.path + "images/syntaxhighlight.gif" }); CKEDITOR.dialog.add(b, this.path + "dialogs/syntaxhighlight.js") } });
这段代码定义了插件的基本配置,包括命令、按钮和对话框的添加。
引入JS和CSS文件
1、在文章模板文件中引入相关文件:打开/templets/default/article_article.htm文件,在</body>
标签之前添加以下代码:
<script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shCore.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushJava.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushJScript.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushPhp.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushScala.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushSql.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushVb.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushXml.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushBash.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushCpp.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushCSharp.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushCss.js"></script> <script type="text/javascript" src="/include/ckeditor/plugins/syntaxhighlight/scripts/shBrushDelphi.js"></script>
这些脚本文件包含了各种编程语言的高亮显示支持。
2、上传文件夹:将syntaxhighlight文件夹上传到/include/ckeditor/plugins/文件夹下。
3、测试功能:打开后台,添加一篇文章,检查编辑器的上最后一行是否出现了如图所示的按钮,点击按钮弹出如下图所示的对话框输入代码,并且可以切换到高级选项对代码高亮显示做一些配置。
通过以上步骤,即可在Dede V5.7中实现代码高亮功能,以下是关于此功能的常见问题及解答:
1、FAQ 1:如何修改代码区域的样式?
解答:要修改代码区域的样式,可以在onOk
函数中修改<table>
标签里的样式,可以通过修改以下代码来改变边框颜色和宽度:
var m = CKEDITOR.dom.element.createFromHtml('<table style="border:1px solid #EAED9C;width:660px;"><tr><td><pre class="' + k + '">' + c(j.code) +"</pre></td></tr><table>");
这里的border:1px solid #EAED9C
定义了边框的颜色和样式,width:660px
定义了表格的宽度。
2、FAQ 2:如何在编辑器工具栏上显示自定义的图片?
解答:要在编辑器工具栏上显示自定义的图片,可以在新建的images文件夹中存放一个syntaxhighlight.gif图片文件,并在plugin.js文件中指定该图片的路径,具体代码如下:
a.ui.addButton("Code", { label : a.lang.syntaxhighlight.title, command : b, icon : this.path + "images/syntaxhighlight.gif" });
这里的this.path + "images/syntaxhighlight.gif"
指定了图片的路径。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1225952.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复