不用插件实现WordPress代码高亮显示

知更鸟
知更鸟
知更鸟
站长
2558
文章
0
粉丝
WordPress25198,761阅读模式

偶尔在日志中加入一些代码,感觉完全没必要安装代码高亮插件,万一某天不用插件了,页面可能会很乱。其实大部分插件都是在代码中强行加入一些标签,然后用CSS定义样式,通过查看页面源文件可以清楚地看到。

今天推荐的是一款本地转换代码高亮显示的小工具:CodeRenderUnmi

[download id="39"]

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

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

在线代码高亮转换

可方便用于你的博客中粘贴代码,只要自定相应的样式 (highlight.css 的内容,.Text 支持自定义样式或在模板里加上语法样式),然后复制用这个工具生成的 HTML 代码就能让你的代码着高亮显示。 可以加入更多语种的支持,本程序就是在 dp.SyntaxHighlighter 的基础上扩展了对 Perl 语言的支持,网上可以找到相应语法的 JS 代码和 CSS。语言扩展支持通过在 shCore.js 和 highlight.css 加入相应代码即可。

猛击查看程序界面

操作很容易,Source Code 中贴上你要着色的代码,然后选择语种,点击 Render 按钮就会在 HTML Code 中生成相应的 HTML 代码,同时在 HTML Preview 中可以预览到效果。

简要说明:Lang 下拉框可以选择所支持的语法,Options 右边的 Gutter、Controls、CollapseAll、FirstLine、Columns 是控制生成的额外的元素,逐一点试试就知道了。每个内容显示(输入)区都提供了 Copy/Paste/Clear 快捷操作链接,还有一个总的 Clear 按钮。

Copy生成 的HTML 代码,在日志编辑窗口切换到HTML源代码编辑模式,粘贴就可以了。

不过要想正确显示代码高亮还需在WordPress主题中加载样式文件“highlight.css”(在下载的压缩包中)

方法:

首先,把highlight.css上传到所使用主题目录中;

其次:打开header.php,查找:

  1. <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" />

在后面添加:

  1. <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/highlight.css" />

当然,你也可以复制highlight.css中的所有代码到你主题style.css中,以上步骤就免了!

如认为默认的样式不符合自己的要求,可以通过修改“highlight.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);

注:使用IE核心浏览器复制代码时会将行号一起复制下来,可以参考这篇文章去掉行号:小技巧:帮你批量删除代码前的行号,或才使用火狐、chrome等浏览器。

具体效果在第2页:

本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
 
知更鸟
评论  251  访客  138  作者  27
    • barrett
      barrett

      非常感谢,按照您的方法我成功实现了。只是有一个问题:在代码最后会空出一行,而您的网站上则不是这样的。请指导我的网站http://gdlf.tht.cmded.net/

        • 知更鸟
          知更鸟

          @ barrett 把下面这句从主题样式中删除

          #content p, #content ul, #content ol, #content dd, #content pre, #content hr{   
              margin-bottom: 24px;   
          }  

        • 仰肖
          仰肖

          试了好多遍,老是有问题。。。郁闷。。

          • 潇湘竹溪
            潇湘竹溪

            很想知道第一页的那些代码高亮是怎么弄的

            • 百家乐
              百家乐

              看着别人改得好漂亮啊

              • 站长工具
                站长工具

                节日快乐!!!!!!!!

                • 亨sir
                  亨sir

                  附图:[img]http://album.hanso.me/f/3y/[/img]
                  我的序号移位了,请问是哪里的问题呢

                  • 亨sir
                    亨sir

                    就是序号本来应该在第一纵格的,但放到我博客就移到后面的代码里头了,http://www.hanso.me/zheteng.html文章末尾小段代码!请指教

                    • 亨sir
                      亨sir

                      虽然没被理
                      仍送上祝福
                      节日快乐

                        • 知更鸟
                          知更鸟

                          @ 亨sir 节日快乐!
                          上面的问题是因为样式冲突,可以打开主题style.css查找并删除
                          list-style-position: inside;

                        • maxling.net
                          maxling.net

                          来学习了!!

                          • 沫夏
                            沫夏

                            为什么dbank网盘里下载下来的是CodeRender.hta,扩展名被改了?

                              • 知更鸟
                                知更鸟

                                @ 沫夏 估计dbank网盘也在耍流氓
                                已改为本站下载

                              • 文献代理
                                文献代理

                                不知道为什么我的header.php中没有“<link rel="stylesheet" type="text/css" href="/style.css” />”这段代码。
                                “<link rel="stylesheet" href="” type=”text/css” media=”screen” />
                                <link rel="stylesheet" href="/css/css.css” />
                                <link rel="stylesheet" href="/css/highlight.css” />
                                <link rel="stylesheet" href="/css/img.css” />
                                <link rel="alternate" type="application/rss+xml" title=" RSS Feed” href=”” />
                                <link rel="alternate" type="application/atom+xml" title=" Atom Feed” href=”” />
                                <link rel="pingback" href="” />
                                <link rel="shortcut icon" href="/images/favicon.ico” />”

                                • caruc
                                  caruc

                                  鸟哥帮我看看为什么我的也不显示序号
                                  这个是测试的http://www.asgoo.in/blog/?p=214&preview=true

                                    • 知更鸟
                                      知更鸟

                                      @ caruc 打开主题样式文件删除
                                      .context ol {margin-left:20px}
                                      试试

                                        • caruc
                                          caruc

                                          @ 知更鸟 谢谢鸟哥!虽然没有解决但是还是谢谢你!因为像你这种无私奉献的博主很少!

                                          希望改主题越来越强大!

                                      • 数据库之家
                                        数据库之家

                                        怎么实现 访问量功能啊,不要插件!

                                        谢谢!

                                        • SKF轴承,NSK轴承
                                          SKF轴承,NSK轴承

                                          顶!期望能分享!!!!

                                          • 小乖乖
                                            小乖乖

                                            鸟哥 请问代码是什么插件?

                                            • dmaojie
                                              dmaojie

                                              看看行不行

                                              • 皆为浮云
                                                皆为浮云

                                                鸟哥,现在你还是用的这个方法吗?
                                                2.7版本的主题里,现在有没有添加这些代码?

                                                • 卧龙居
                                                  卧龙居

                                                  这个好像不支持html代码,有其他的方法能让主题支持html吗?

                                                  • 东东@丫丫情侣博客
                                                    东东@丫丫情侣博客

                                                    为什么我用了你的代码高亮的方法显示的和你的不一样啊
                                                    这是我在文章中插入的代码

                                                      
                                                    /*
                                                     * Superfish v1.4.8 – jQuery menu widget  
                                                     * Copyright (c) 2008 Joel Birch  
                                                     *  
                                                     * Dual licensed under the MIT and GPL licenses:  

                                                    这是文章页面加载的你的css样式和js代码

                                                    但是显示效果和你的不一样啊
                                                    你可以点击这个链接看看我的代码高亮显示的,前面没有像你的一样数字行号

                                                    • 东东@丫丫情侣博客
                                                      东东@丫丫情侣博客

                                                      求解,很急用,麻烦鸟哥啦

                                                      • 东东@丫丫情侣博客
                                                        东东@丫丫情侣博客

                                                        http://blog.woyaya.net/navigation-menu-on-wordpress-standard-analytical-analysis.html 你可以点击这个页面看看我的代码高亮,查看页面源代码的话你会发现我加载的是你的、highlight.css 和 jquery.colorbox.js 还有一个问题就是我是网站分类和页面的关键词描述,那些也按照你的方法改的,可是中间为什么出现了那么多空行啊 你随便点击一个分类的页面查看源代码就看到啦,帮帮忙

                                                        • 东东@丫丫情侣博客
                                                          东东@丫丫情侣博客

                                                          如果方便的话加一下我的QQ1282570027,谢谢啊

                                                        • 来自外部的引用

                                                        匿名

                                                        发表评论

                                                        匿名网友

                                                        拖动滑块以完成验证