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

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

偶尔在日志中加入一些代码,感觉完全没必要安装代码高亮插件,万一某天不用插件了,页面可能会很乱。其实大部分插件都是在代码中强行加入一些标签,然后用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
    • Carrie
      Carrie

      這樣又能少用一款插件了,感覺很不錯,不過還得稍作修改一番。

      • QiQiBoY
        QiQiBoY

        这个不错。。。。

        • winy
          winy

          要是谁能做个wlw插件就更好了。。。

          • 雅岚
            雅岚

            想用用来着,可是又把我看得头昏眼花。。。算了,哈哈

            • 民工成
              民工成

              good,挺不错的啊,能少个插件就少一个~

              • 淘宝最好的减肥药
                淘宝最好的减肥药

                看起来好麻烦,头晕中

                • uyghurbeg
                  uyghurbeg

                  我发现,你的博客的图片在闪闪,不知道怎么弄?

                    • 知更鸟
                      知更鸟

                      @ uyghurbeg 看这个
                      https://zmingcx.com/using-jquery-to-achieve-picture-was-hidden-effects.html

                    • 笨小孩
                      笨小孩

                      我把他弄成在线的了,哈哈~~
                      给个演示地址:在线演示
                      可惜是免费空间有广告,预览效果不是很完整,囧….

                        • 笨小孩
                          笨小孩

                          @ 笨小孩 大侠,能把你现在在用的这个工具发给我吗?
                          我发现下载的那个html符号全是大写,而且代码也没你的简洁,希望能得到你的这个,我邮箱:darknet@qq.com 谢谢了!!!

                            • 知更鸟
                              知更鸟

                              @ 笨小孩 文章中有下载链接,我用的也是这个

                                • 笨小孩
                                  笨小孩

                                  @ 知更鸟 为什么你的源码中的代码要比我们的简洁一些了?而且全是小写的,应该是你修改了shCore.js,我对比了我们生成的代码,我们的有很多不必要的代码,而你的却没有,本来是想自己修改的,但是工作量太大了,再加上自己不是很懂,所以就厚脸皮问你要你的文件了,希望大侠能发一份你的工具。

                            • 豌豆尖
                              豌豆尖

                              使用怎么也达不到以上的效果,而且数字序号和代码挨在一起,序号左边是分割线,郁闷啊,是不是还要修改highlight.css啊???

                                • 知更鸟
                                  知更鸟

                                  @ 豌豆尖 这个是与你用的主题样式文件冲突

                                    • 豌豆尖
                                      豌豆尖

                                      @ 知更鸟 回复好快啊!用的是Elegant Box 4.1.1主题,有办法解决没?对这方面不是很懂!

                                  • 桔子
                                    桔子

                                    谢谢,安上了,效果不错。比以前的插件好多了。

                                    • 阿鼎
                                      阿鼎

                                      鸟哥,我按照你说的做了,但是行与行之间为什么有空格,看着没你上面的美观,演示地址

                                        • 知更鸟
                                          知更鸟

                                          @ 阿鼎 嗯,确实有这个问题,不过也很好解决:
                                          在源代码模式粘贴完转换的代码后,再切换到可视化编辑模式发布,即可

                                            • 阿鼎
                                              阿鼎

                                              @ 知更鸟 3Q,鸟哥,呵呵,等待你出3.0,呵呵!加油!

                                              • 沫夏
                                                沫夏

                                                @ 知更鸟 原来这样,成功解决行与行之间含有空格现象,谢谢。

                                                • 程春杰博客
                                                  程春杰博客

                                                  @ 知更鸟 精妙啊,在这里我发现了评论的巨大意义,我也碰到了类似问题,在此找到解决方法,,谢谢鸟哥

                                              • 洋葱
                                                洋葱

                                                我用你的方法,代码是高亮了,可是显示出来的是全角的。文章在这里http://blog.aonion.com/2010/10/no-plug-ins-are-two-ways-to-achieve-the-relevant-log/
                                                问题是在formatting.php吗?这样改吗?
                                                // static strings
                                                $curl = str_replace($static_characters, $static_replacements, $curl);
                                                // regular expressions
                                                $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
                                                // static strings
                                                //$curl = str_replace($static_characters, $static_replacements, $curl);
                                                // regular expressions
                                                //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

                                                  • 知更鸟
                                                    知更鸟

                                                    @ 洋葱 只需在两个$curl前加上// ,后面最好有一英文空格

                                                  • 凡尘飞扬
                                                    凡尘飞扬

                                                    试试看,插件用的比较多,该少用点了

                                                    • 朵未
                                                      朵未

                                                      请问这个该如何调用?

                                                      • 邪客
                                                        邪客

                                                        编辑器里面显示正常,但是发布以后不显示行数,请教博主何故?
                                                        例:http://www.xeker.org/archives/1424

                                                        谢谢!

                                                          • 知更鸟
                                                            知更鸟

                                                            @ 邪客 可能你用的主题样式文件与这个冲突
                                                            去掉这句
                                                            #content li {
                                                            list-style-type:none;
                                                            }

                                                          • bestchao
                                                            bestchao

                                                            鸟哥不知你现在使用的代码高亮功能是插件还是修改版本?

                                                            • Ding
                                                              Ding

                                                              测试下有邮件没

                                                              • yesureadmin
                                                                yesureadmin

                                                                不错,不过,还是觉得插件省事,这个插件是少不了的啦

                                                                • easy
                                                                  easy

                                                                  这个我喜欢,多谢分享!

                                                                  • 七寂
                                                                    七寂

                                                                    博主 用的了你的软件 文章的第1篇代码显示 正确的

                                                                    后来我又在文章下面的粘贴代码

                                                                    结果 显示 每段代码中间都空一行

                                                                    不知道怎么回事

                                                                    • sky
                                                                      sky

                                                                      还是觉得好麻烦的啊

                                                                      • likebeta
                                                                        likebeta

                                                                        哈哈,我找了一个coolformat也不错,离线编辑也不错,插件每一个真正好用的

                                                                          • 知更鸟
                                                                            知更鸟

                                                                            @ likebeta 除了代码沉余外,没有行号

                                                                              • 路过
                                                                                路过

                                                                                @ 知更鸟 代码发芽网也是用这种方式的,在冗余的同时,却支持任何支持HTML网页、博客。好像也已经加了行号显示了

                                                                            • 海子
                                                                              海子

                                                                              鸟哥,我用了你介绍的高亮显示代码的使用方法,软件生成的效果和你发布在文章中的效果一样,但是我在发布时显示的效果没有外部的边框。

                                                                              • yixin
                                                                                yixin

                                                                                学习了,真的不错~~!!!

                                                                                • 何苦呢
                                                                                  何苦呢

                                                                                  不用插件的话 好麻烦呢

                                                                                  • 小司
                                                                                    小司

                                                                                    鸟哥,麻烦问一下,我申请了免费的co.cc域名,现在与vista panel里的域名绑定起来了。就是在服务器/root下新建了以xsblog.co.cc为名字的文件夹,里面还有一个htdoc文件夹。然后,我想着是以后通过xsblog.co.cc这个域名访问页面,就不让它出现自带的三级域名了,那下一步应该怎么做啊,把wordpress放到哪儿呢

                                                                                    • 知更鸟
                                                                                      知更鸟

                                                                                      米玩过这个免费的空间
                                                                                      随便在空间里建一个目录把程序放进去,获得地址安装就行

                                                                                      • 碎语人生
                                                                                        碎语人生

                                                                                        代码太多了,我看得眼花缭乱

                                                                                        • 南阳吧
                                                                                          南阳吧

                                                                                          谢谢知更鸟大哥,正需要这样的,我去试试先。

                                                                                          • 你好美丽
                                                                                            你好美丽

                                                                                            不错的工具,下来用用!谢谢分享

                                                                                            • 晨光博客
                                                                                              晨光博客

                                                                                              不用插件是最好的

                                                                                              • 瞿胜佳
                                                                                                瞿胜佳

                                                                                                这个可以有。

                                                                                                • Kael.Z
                                                                                                  Kael.Z

                                                                                                  鸟哥,发布后看不到序号,编辑后切换回非代码模式时能看到序号,何解?

                                                                                                  • Kael.Z
                                                                                                    Kael.Z

                                                                                                    鸟哥,我代码无法显示行号

                                                                                                    • 孤独快乐
                                                                                                      孤独快乐

                                                                                                      为什么我的也不显示行号啊

                                                                                                      • 孤独快乐
                                                                                                        孤独快乐

                                                                                                        我的也是不显示行号啊

                                                                                                        • Shovo
                                                                                                          Shovo

                                                                                                          能不能做成插件整到编辑器中呢?

                                                                                                        匿名

                                                                                                        发表评论

                                                                                                        匿名网友

                                                                                                        拖动滑块以完成验证