对于技术博客来说,如果文章中的代码没有实现高亮显示,或者没有跟文章内容很明显的区分,从开发者的角度来说,真是太惨不忍睹了,文章的可读性也是大打折扣,所以才有了这篇文章,还有那不堪回首的心塞...
这就是我想要的效果
下面细说一下代码高亮显示是如何实现的:
一:ueditor内置了第三方插件,即SyntaxHighlighter,你可以百度一下,仔细了解一下他,但是好像也没有必要,因为ueditor已经把它完美的融合进去了,配置的时候,就是贴贴js,css的事情了;所有的事情,等你都实现好了之后,一切都是如此的简单,但在此之前,其中的痛苦,只有你自己能够体会!不知作为程序猿的你,有没有戳中你的泪点!
这就是ueditor/third-party/syntaxHightlighter的三方插件,核心就是这两个文件,js与css
二:在编辑器中尽情的输入你要贴的代码,选择语言,编辑好之后,可以点击预览,看看有没有代码高亮的效果,
以上就是预览的结果。
三:进入前台页面,在文章页面引入js文件,我的是在detail页面下,
<!--代码高亮--> <import type='css' file="ueditor.third-party.SyntaxHighlighter.shCoreDefault" basepath="__STATIC__" /> <import type='js' file="ueditor.third-party.SyntaxHighlighter.shCore" basepath="__STATIC__" /> <script type="text/javascript">SyntaxHighlighter.all();</script>
就是上面三行代码,不过我在做的时候,可没这么轻松,原因是我第三个js脚步糊里糊涂的引错了,把
SyntaxHighlighter.all();
写成了
SyntaxHighlighter.highlight(); //此代码不知道是copy的哪位大人的,找了接近一下午的bug,愣是没发现,哎
四:进入页面看看效果吧,一切ok,不过,出现了一点小问题,就是,对于代码特别长的代码行,不能自动换行,破坏了原有的页面样式, 惨状是这样的
不过,很快就找到了解决方案,进入shCoreoreDefault.css,找到如下代码
.syntaxhighlighter { width:100%!important; margin:.3em 0 .3em -0.8em !important; position:relative!important; overflow:auto!important; background-color:#f5f5f5!important; border:1px solid #ccc!important; border-radius:4px!important; border-collapse:separate!important; word-break:break-all; //加上这一句就可以了,强制换行 }
一切都解决了,生活还是如此美好!