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

  • A+
所属分类:WordPress

偶尔在日志中加入一些代码,感觉完全没必要安装代码高亮插件,万一某天不用插件了,页面可能会很乱。其实大部分插件都是在代码中强行加入一些标签,然后用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
我的微信
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
Begin主题购买
Begin主题购买

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:249   其中:访客  136   博主  27   引用   11

    • avatar 鬼娃娃 2

      有没有办法把添加的那些html也集成到编辑器中,

        • avatar 我爱动感单车网 7

          @鬼娃娃 :razz: 如今的主题基本上都已经将代码高亮功能集成到编辑器中了,需要用到的时候省事、方便,再也不用再这么折腾了。我对自己博客的这个功能还是挺满意的,样式也美观!

        • avatar 3

          博主,不知到为什么我不能实现和你一样的效果,首先序号都在竖条的后面,然后代码会偶尔空一行,留言中的切换到可视化再发表已经用过。请博主指教。(之前发错地方,不好意思。)

            • avatar 知更鸟 Admin

              @ 应该是与主题样式有冲突

              • avatar 安也宓 4

                @ 我也遇到相同问题了,序号在竖条的后面

                • avatar Live in ur dream 0

                  @ 小弟知道解决的办法,一般是由于高亮的代码中的li标签一般有个list-style: circle inside;的css属性,直接添加一个list-style: none;即可解决。如果还不懂可以Q我:928085589 :smile:

                • avatar 小鱼 2

                  咱们自带的怎么使用啊? {demo href=”http://”]效果演示[/demo],也有这样的代码吗?我不会用样式表里面的东西,大菜鸟。

                  • avatar 吴文辉IT博客 3

                    鸟哥,请问我按照你的方法实现了,就是粘帖后最上面第一行都会是伊层空格,请问需要删除什么呢?

                    • avatar 吴文辉IT博客 3

                      鸟哥,求帮忙看下这个什么原因,我按你的方法,最上面就是会有一行空格,这是页面
                      http://www.wuwenhui.cn/?p=725

                      • avatar 碎碎念 2

                        果然是个神器啊,把带有代码的文章统统修改了一遍,感觉专业多了,感谢鸟哥的分享啦!

                        • avatar Rainc 2

                          鸟哥,为什么我的代码高亮看上去很不鲜艳,没有您的代码高亮鲜艳。不知道是怎么回事

                          • avatar Rainc 2

                            鸟哥,为什么我的代码高亮看上去总显得那么的无色。很不鲜艳,不知道是怎么回事。鸟哥可以帮我看看么。http://raincchina.com/355.html

                            • avatar DeargGae 0

                              我使用了该方法后,代码框内呈现原背景色和模板背景色按行交替显示,自己猜测此代码与模板存在冲突,但是又不知道怎样定位冲突点,请问您能够提供些意见或方法?

                              • avatar 氪星人 1

                                鸟哥,我用的是你的最新主题,哪个竖线还有前面的序列号的颜色怎么改啊?还有这个有滚动条了(这是地址:http://www.liyucang.cn/?p=636),我没用这个小工具CodeRenderUnmi,我是在这转换的:http://zmingcx.com/coderender,有人说用这个插件SyntaxHighlighter Evolved,但我不是很喜欢用插件,鸟哥请告诉我,百度半天了都!

                                • avatar 瓶几 0

                                  不知道有没有支持shell代码高亮的法子?

                                  • avatar yuger 1

                                    请问鸟哥你提供下载的文件是保存在虚拟主机里还是网盘里?我虚拟主机容量不够,需要找一个支持外链的网盘,谢谢。

                                    • avatar 花醉 0

                                      顶..

                                      • avatar 小全 1

                                        大哥,你哪个在线代码高亮转换功能可以分享给我吗?

                                          • avatar 知更鸟 Admin

                                            @小全 直接网页另存到本地就可以了

                                              • avatar 小全 1

                                                @知更鸟 可不可以把代码分享出来啊,直接保存的代码不太好

                                                  • avatar 知更鸟 Admin

                                                    @小全 该代码已集成在我用的HotNews主题中,自行提取

                                              • avatar 小全 1

                                                晕,你的新版主题启动后出现错误

                                                • avatar c4d8 0

                                                  博主,我用了你的方法但是前面的行号显示不出来,是怎么回事啊?
                                                  http://c4d8.tk/201410/256.html

                                                  • avatar 易淘金股票池 2

                                                    谢谢分享

                                                    • avatar 慕梓阁 0

                                                      遇到个问题,发上来看博主清不清楚,这个插件有个control选项
                                                      点击后生成的高亮代码 支持 js效果 就是点击view可以页面跳转到新的页面方便复制 但是这个插件生成后却保留的是电脑的本地地址

                                                      • avatar La.Kai 0

                                                        同求不显示行号啊!!!http://blog.i-jiapin.com/126.html

                                                        • avatar korin 0

                                                          鸟哥,请问你博客代码高亮的是插件还是主题实现的?

                                                            • avatar BOKE123 5

                                                              @korin 鸟哥所有主题的代码高亮都是通过代码实现的,非插件

                                                            • avatar 阿峙 0

                                                              准备试试,我就是因为用了插件,现在想去都去不掉了

                                                              • avatar 性爱姿势 1

                                                                感觉那么乱呢

                                                                • avatar kuluso 1

                                                                  按照步骤来 确实有用 但是 点击 view print 没有演示的效果那样弹出个框

                                                                    • avatar kuluso 1

                                                                      @kuluso 我看了一下,你调用了一个onclick函数来实现,但是我这两天才刚开始接触WP,首先还没搞明白如何添加CSS文件和JS文件,样式方面如你所言,拷贝到style.css中就可以了,但是文章编辑中不能出现onclick=”******“类似的内容 所以一直没有成功 等你回复前 我先想想

                                                                        • avatar sunny 0

                                                                          @kuluso 我刚自己做了一个主题,一起研究学习

                                                                      • avatar 广州网站建设 2

                                                                        没看懂是怎么弄的

                                                                        • avatar 广州网站建设 2

                                                                          首先,把highlight.css上传到所使用主题目录中;
                                                                          其次:打开header.php,添加<link rel="stylesheet" href="/highlight.css” />
                                                                          这两个步骤怎么能实现呢?

                                                                            • avatar 知更鸟 Admin

                                                                              @广州网站建设 直接把highlight.css中的样式代码加到主题样式文件style中就可以了
                                                                              关键是需要那个转换代码的程序

                                                                                • avatar 广州网站建设 2

                                                                                  @知更鸟 鸟哥,把代码放置到主题样式文件style中之后,自己网站怎样才会产生高亮代码的页面呢?

                                                                              • avatar 广州网站建设 2

                                                                                象鸟哥的这个页面http://zmingcx.com/coderender/要怎样才能生成呢

                                                                                • avatar 广州网站建设 2

                                                                                  鸟哥,使用WordPress 主题:Ality,请问代码高亮页面怎样在新窗口打开?

                                                                                  • avatar 若我若鱼 0

                                                                                    发现了一个bug
                                                                                    粘贴python 的readline()函数,会出现两个readline
                                                                                    比如
                                                                                    line=popen.stdout.readline().strip()
                                                                                    转换后,就这样了
                                                                                    line=popen.stdout.readlinereadline().strip()

                                                                                      • avatar boke112导航 5

                                                                                        @若我若鱼 这个情况我也遇到过,不知道怎么解决。比如输入if(empty($url))PHP转换,就会变成if(emptyempty($url))

                                                                                      • avatar 随小风 1

                                                                                        学习了。这样博客看着专业多了

                                                                                      • 来自外部的引用: 11

                                                                                        • 不用插件实现WordPress文章中代码高亮显示 | 无心之愛
                                                                                        • WordPress主题:HotNews Pro 2.7 – WordPress
                                                                                        • WordPress主题:HotNews Pro 2.7.1 Plus | 自己人
                                                                                        • HotNews Pro 2.7.1 Plus – 七种风格强大的Blog+CMS主题 – WP酷
                                                                                        • WordPress热门主题之HotNews Pro 2.7Plus使用介绍 | 91学客网
                                                                                        • 不用插件实现WordPress代码高亮显示 | 第九技术
                                                                                        • 不用插件实现WordPress代码高亮显示 | 许海彬
                                                                                        • 在博客中插入代码 | Tovire
                                                                                        • 文章代码高亮非插件 | 林枫紫涵
                                                                                        • 代码实现文章代码高亮 | 林枫紫涵
                                                                                        • Wordpress非插件实现代码高亮 – Synnefog