不要温和的走进那个良夜
Do not go gentle into that good night

代码实现文章代码高亮

在网上看到好多关于文章代码高亮的插件0 0

啥意思?

额,不写代码的就不需要了,其实我对PHP知道的不多(才学了几天),我甚至不知道插件跟非插件在效率上有多大差距。

不过有一点,如果用插件显示高亮文本代码,事后换插件或者停用插件的时候你的文章就会各种无语各种乱码,所以用非插件实现还是有好处的,一劳永逸(貌似目前还没发现有啥冲突问题)。但是这里还是推荐一款插件SyntaxHighlighter Evolved。搜索一下就知道了。

我看了一下貌似最早的是博客java写的相关文章,确实很不错,我就是照着它的来的(几经转载)博客java的更早但是那个连接已经失效了,所以只能以知更鸟的为主了。既然这样那为啥还会有这篇文章呢0.0就当是菜鸟普及吧,毕竟很多人玩wordpress都是像我一样完全没学过PHP的

首先必须要有这个工具 博客java提供的链接,这个工具也可以自己上传到FTP的other文件夹备用

转换工具:coderender

本程序是基于 dp.SyntaxHighlighter 写的代码语法着色的工具。支持的语言有:

java/xml/sql/jscript/css/cpp/c#/python/vb/perl/php/ruby/delphi。

这里我为了保证速度而且减少麻烦直接采用的复制下载的文件夹里面的highlight.css中的所有代码到你主题style.css中,没错,你没听错,就这么简单,不需要神马设置也不需要其他的部分,复制在哪里?随便哪里,推荐结尾。就这一步就搞定,让插件神马的一边玩去吧。而且插件使用的时候也还是要套代码,多麻烦。(虽然咱用一个工具也挺麻烦的 – -这个。。。)

但需要注意的是WordPress会自动把半角符号替换为全角,别人复制下来的函数代码标点是全角的,无法使用,切记!(有的主题已经修复了)

解决办法:

  1. 打开并编辑 wp-includes/formatting.php 文件,找到以下代码:   
  2. // static strings   
  3. $curl = str_replace($static_characters$static_replacements$curl);   
  4. // regular expressions   
  5. $curl = preg_replace($dynamic_characters$dynamic_replacements$curl);   
  6. $curl 开头的两句代码注释掉,如下:   
  7. // static strings   
  8. //$curl = str_replace($static_characters, $static_replacements, $curl);   
  9. // regular expressions   
  10. //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);  

然后就是开始使用这个工具了,打开那个软件CodeRender.hta,这里需要一丢丢的基础就是看的懂几个按钮比如Render(提交)Clear(清除),多人性化哇,还给你一键清除,复制粘贴的。。。至于打钩默认就好了 ,默认是有行号,有装订线的。。。其他的可以自行测试。然后是在Source Code输入代码,复制HTML Code的部分就好了,下面HTML Preview显示出来的效果预览。

jiem

软件界面如上图

最后就是在wordpress写的时候一定注意是要在文本模式(非可视化模式)这样才能识别html代码,不然默认是当文字算的。好啦预览如下

这是我写的一段java代码

  1. public void check(){   
  2.         BufferedInputStream bin = null;   
  3.         try{    
  4.             bin = new BufferedInputStream(new FileInputStream(fileold));   
  5.             int p = (bin.read() << 8) + bin.read();      
  6.                  
  7.             switch (p) {     
  8.                 case 0xefbb:     
  9.                     code = “UTF-8”;     
  10.                     break;     
  11.                 case 0xfffe:     
  12.                     code = “Unicode”;     
  13.                     break;     
  14.                 case 0xfeff:     
  15.                     code = “UTF-16BE”;     
  16.                     break;     
  17.                 default:     
  18.                     code = “GBK”;     
  19.            }      
  20.             //chs = new InputStreamReader(new FileInputStream(fileold));   
  21.             //newges = chs.getEncoding();   
  22.             System.out.println(code);   
  23.             System.out.println(ges);  

这是一段PHP代码 是不是很简单呢?

  1. <?php   
  2. session_start();   
  3.     
  4. $aResponse[‘error’] = false;   
  5. $_SESSION[‘iQaptcha’] = false;     
  6.     
  7. if(isset($_POST[‘action’]))   
  8. {   
  9.     if(htmlentities($_POST[‘action’], ENT_QUOTES, ‘UTF-8’) == ‘qaptcha’)   
  10.     {   
  11.         $_SESSION[‘iQaptcha’] = true;   
  12.         if($_SESSION[‘iQaptcha’])   
  13.             echo json_encode($aResponse);   
  14.         else  
  15.         {   
  16.             $aResponse[‘error’] = true;   
  17.             echo json_encode($aResponse);   
  18.         }   
  19.     }   
  20.     else  
  21.     {   
  22.         $aResponse[‘error’] = true;   
  23.         echo json_encode($aResponse);   
  24.     }   
  25. }   
  26. else  
  27. {   
  28.     $aResponse[‘error’] = true;   
  29.     echo json_encode($aResponse);   
  30. }  

已知测试,该代码与gzip 以及缓存插件DB Cache Reloaded Fix 还有hyper cache不冲突

赞(0)
未经允许不得转载:林枫紫涵 » 代码实现文章代码高亮

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    原来此博客是用wordpress写的呀,长见识了,之前不太了解~
    以前只学过jsp,没有学过php 😳

    冰原战士6年前 (2013-04-26)回复
    • @冰原战士: 恩,我也不会PHP,这个站才做了几天而已

      admin6年前 (2013-04-26)回复