昨晚试了几个语法高亮的插件,Google Syntax Highlighter for WordPress 还不错,除了有些小问题 =.=!
1, Google Syntax Highlighter for WordPress 的默认格式是
- <pre name="code" class"language">
- code
- </pre>
可惜 pre 没的 name 属性 =.=!
找到 ../Scripts/shCore.js 第 364 行
- if(_73[i].getAttribute("name")==_71){
修改为
- if(_73[i].getAttribute("lang")==_71){
在调用的时候使用下面的格式
- <pre lang="code" class"language">
- code
- </pre>
2, 另一个无语的地方是在 ../google_syntax_highlighter.php 中给 script 标签都加了 class 属性 =.=!
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shCore.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushCSharp.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushPhp.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushJScript.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushJava.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushVb.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushSql.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushXml.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushDelphi.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushPython.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushRuby.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushCss.js"></script>
- <script class="javascript" src="<?php echo $current_path; ?>Scripts/shBrushCpp.js"></script>
- <script class="javascript">
- dp.SyntaxHighlighter.ClipboardSwf = '<?php echo $current_path; ?>Scripts/clipboard.swf';
- dp.SyntaxHighlighter.HighlightAll('code');
- </script>
将所有的 class=”javascript” 都替换为
- type="text/javascript"
然后再去 W3C Validator 就能看到绿色了 =.=!
3, 默认是显示控制栏的,不喜,去掉
找到 ../Scripts/shCore.js 第 403 行
- _76.addControls=(_61==null)?!IsOptionSet("nocontrols",_7e):_61;
修改为
- _76.addControls=(_61==null)?IsOptionSet("controls",_7e):!_61;
在需要控制栏的时候可使用下面的格式
- <pre lang="code" class"language:controls">
- code
- </pre>
原来真·话痨兄最近在折腾这些啊,我说怎么微博上看不到你了呢