在Stblog中定制你的代码高亮功能

首先感谢目前正在使用stblog的朋友,正是你们的使用和批评才有了我不断改进->思考->改进的动力。当前版本还有诸多BUG和不完善的地方,我会在最近发布一个新的patch修正和完善这些功能。希望大家多提建议,感谢大家!

国内玩博客的人大部分都是Geek,他们的特点大多是:个性,最求完美,而且或多或少懂些编程的知识。这就是为什么我在开发stblog的第一个版本就引入了代码高亮功能。

stblog的代码高亮采用JavaScript渲染工具SyntaxHighlighter,使用和Hack方法也与其一致。

具体来说,要在stblog中定制和高亮你所需的代码,仅需要在模板中添加和删除对应高亮语法JS文件即可。

比如,朋友 rockics提到,当他在后台编辑器中添加C++代码时出现如下弹窗错误:

“can't find brush for :cpp”

这是因为没有引入Cpp的高亮语法,解决方法很简单。

用支持代码编辑的文本编辑器(请勿使用windows自带的记事本)打开模板文件:

./themes/default/footer.php

找到如下代码并修改:

<script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shCore.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushPhp.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushXml.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushCSharp.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushCss.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushJava.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushJScript.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushSql.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushBash.js"></script>
 <script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushPython.js"></script>
 <script type="text/javascript">
  SyntaxHighlighter.config.clipboardSwf = '<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/clipboard.swf';
  SyntaxHighlighter.all();
 </script>

加入你需要的高亮语法JS文件,比如这里是C++的,那么加入:

<script type="text/javascript" src="<?php echo base_url(). ST_PLUGINS_DIR;?>/editor/syntaxhighlighter/scripts/shBrushCpp.js"></script>

请注意以上shBrushCpp.js,这里是我们要引入的Cpp高亮语法JS文件。对应SyntaxHighlighter所支持的语法,请详见./st_plugins/editor/syntaxhighlighter/scripts目录参考SyntaxHighilighter的说明

修改完成后,请上传至服务器并覆盖掉原文件。

Update:本来修改模板文件可以在后台进行,不过现在发现在后台修改模板会将部分代码转义,从而使模板功能失效。这里证实是一个BUG(下一个小版本中修正),请手动修改并上传服务器。

标签: stblog,小技巧

回应此文

你也可以选择引用此文章.