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

知更鸟
知更鸟
站长
2322
文章
0
粉丝
WordPress25195,199阅读模式

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

      鸟哥,拜托加下我qq 1028135490 遇到问题实在解决不了了。要不把邮箱地址告诉我也行,我把ftp等资料给你,你有时间帮我解决一下 谢谢

      • 刚刚
        刚刚 1

        用推他相册,他们的相册也是免费的.不防外链.

        • 小老翁
          小老翁 1

          感谢分享,我正在搜集呢!

          • amasun
            amasun 1

            为什么:

            “打开并编辑 wp-includes/formatting.php 文件,找到以下代码:”……
            这行代码显示为颜色#0196e3。而不是highlight.css中的黑色?

              • amasun
                amasun 1

                @ amasun 应该是#2b91af。但我还是不知道是为什么这个颜色,我选的php。

                  • amasun
                    amasun 1

                    @ amasun 经过一番折腾,终于发现了。鸟哥是不是在coderender生成代码之后把其中的<span>标签都去掉了?所以本来的黑色文字可以显示为#2b91af?还是因为鸟哥有其他的方法?其他帖子里的代码都带着<span>标签。

                • simple
                  simple 3

                  请教鸟哥: 日志怎么显示代码?比如你这个文章最后的10行解决办法,是怎么样实现显示的,并且有行号?我并不需要高亮,只要显示就行了。我尝试使用code夹起来,不行。
                  谢谢,谢谢

                  • simple
                    simple 3

                    鸟哥的意思是: 本文的办法, 有高亮代码的功能,当然也就可以显示代码? 所以,要想在wordpress日志加入一些代码,使用这个办法就行了

                    • simple
                      simple 3

                      谢谢鸟哥,真的是这样! 我懂了

                      • asmylife.com
                        asmylife.com 4

                        鸟哥,这工具只能在windows平台使用,虽然linux下也有类似代码高亮工具,但毕竟风格不一样,效果所这样的:[wordpress]代码高亮工具-linux篇
                        我在想,鸟哥是不是可以放个教程教我们把这个工具的功能集成到wordpress的编辑器中去,这样就随时随地编辑了。

                        • alaric
                          alaric 0

                          不错的博客

                          • 一品香茗
                            一品香茗 1

                            看上去挺麻烦的

                            • Mee
                              Mee 4

                              鸟哥,我是直接把代码复制到样式表文件中的,然后现在也可以正常的显示代码高亮的功能,但是有一个小细节,就是我的代码高亮效果中在行号的左侧有一定距离的空白,显得不那么好看,不知道这个要在哪修改,如果鸟哥不是很明白我说的什么,请移步至http://meeior.tk/index.php/show-the-tinymce-editor-button-hidden.html这里,然后看我的行号,还请鸟哥赐教!

                                • 知更鸟
                                  知更鸟

                                  @ Mee 查找高亮样式
                                  margin: 0px 0px 1px 38px;
                                  把其中的 38px 改小点

                                • Mee
                                  Mee 4

                                  嗯,解决了,谢谢鸟哥的帮助,我会继续努力的哈!

                                  • 南昌男科医院
                                    南昌男科医院 0

                                    按照你所说的操作一直不成功

                                    • sealango
                                      sealango 5

                                      求助:我一篇文章里写了很多段代码。想在默认状态下,这些代码都是折叠隐藏的。当访客去点了,才会展开。这个功能,在这里能实现吗?

                                      • ycqj
                                        ycqj 1

                                        我用的是2.7.1版本的,应该修改的地方好像已经修改好了,但怎么都无法实现和你的站点一样的效果
                                        http://www.91xmv.com/wordpress/217.html

                                        • 塵清枫
                                          塵清枫 4

                                          正需要

                                          • 鬼娃娃
                                            鬼娃娃 2

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

                                              • 我爱动感单车网
                                                我爱动感单车网 7

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

                                              • 鼬
                                                3

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

                                                  • 知更鸟
                                                    知更鸟

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

                                                    • 安也宓
                                                      安也宓 4

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

                                                      • Live in ur dream
                                                        Live in ur dream 0

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

                                                      • 小鱼
                                                        小鱼 2

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

                                                        • 吴文辉IT博客
                                                          吴文辉IT博客 3

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

                                                          • 吴文辉IT博客
                                                            吴文辉IT博客 3

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

                                                            • 碎碎念
                                                              碎碎念 2

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

                                                              • Rainc
                                                                Rainc 2

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

                                                                • Rainc
                                                                  Rainc 2

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

                                                                  • DeargGae
                                                                    DeargGae 0

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

                                                                    • 氪星人
                                                                      氪星人 1

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

                                                                      • 瓶几
                                                                        瓶几 0

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

                                                                        • yuger
                                                                          yuger 1

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

                                                                          • 花醉
                                                                            花醉 0

                                                                            顶..

                                                                            • 小全
                                                                              小全 1

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

                                                                                • 知更鸟
                                                                                  知更鸟

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

                                                                                    • 小全
                                                                                      小全 1

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

                                                                                        • 知更鸟
                                                                                          知更鸟

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

                                                                                    • 小全
                                                                                      小全 1

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

                                                                                      • c4d8
                                                                                        c4d8 0

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

                                                                                        • 易淘金股票池
                                                                                          易淘金股票池 2

                                                                                          谢谢分享

                                                                                          • 慕梓阁
                                                                                            慕梓阁 0

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

                                                                                            • La.Kai
                                                                                              La.Kai 0

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

                                                                                              • korin
                                                                                                korin 0

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

                                                                                                  • BOKE123
                                                                                                    BOKE123 5

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

                                                                                                  • 阿峙
                                                                                                    阿峙 0

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

                                                                                                    • 性爱姿势
                                                                                                      性爱姿势 1

                                                                                                      感觉那么乱呢

                                                                                                      • kuluso
                                                                                                        kuluso 1

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

                                                                                                          • kuluso
                                                                                                            kuluso 1

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

                                                                                                              • sunny
                                                                                                                sunny 1

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

                                                                                                            • 广州网站建设
                                                                                                              广州网站建设 2

                                                                                                              没看懂是怎么弄的

                                                                                                              • 广州网站建设
                                                                                                                广州网站建设 2

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

                                                                                                                  • 知更鸟
                                                                                                                    知更鸟

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

                                                                                                                      • 广州网站建设
                                                                                                                        广州网站建设 2

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

                                                                                                                    • 广州网站建设
                                                                                                                      广州网站建设 2

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

                                                                                                                      • 广州网站建设
                                                                                                                        广州网站建设 2

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

                                                                                                                        • 若我若鱼
                                                                                                                          若我若鱼 0

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

                                                                                                                            • boke112导航
                                                                                                                              boke112导航 5

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

                                                                                                                            • 随小风
                                                                                                                              随小风 1

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

                                                                                                                              • 阿瓦达
                                                                                                                                阿瓦达 0

                                                                                                                                博主,我现在还在用这个。但是如果我不用他了,那我原来的代码怎么办?(比如转平台)

                                                                                                                                • 12121
                                                                                                                                  12121 0

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

                                                                                                                                • 来自外部的引用

                                                                                                                                匿名

                                                                                                                                发表评论

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

                                                                                                                                拖动滑块以完成验证