IT邦帮忙上贴文时,有个〔CODE〕的语法,可以把程式码中的语法给 Highlight 起来,而根据语法、关键字变化颜色;希望这样的功能也能弄在自己的网站上,所以试了这些现成的工具。
thegiive 的文章有关 coderay:
http://lightyror.thegiive.net/2007/05/coderay.html
http://thegiive.javaeye.com/blog/77440
才知道怎么让程式码贴在网页上,
可以有反白、颜色标示语法的方式;
这个作用称为 highlight,不晓得中文要怎么讲?
反白?着色?高亮度?
一直不晓得 IT邦帮忙 上的 CODE 的语法,
不晓得是用了什么相关套件做出来?
只知道是用 javascript + CSS 的方式来呈献语法,
蛮好奇的,不晓得是不是:SyntaxHighlighter?
以Javascript来显示是蛮不错的方式,IT邦帮忙看起来是预设以 C++ 的语法来显示。
如果不用 Javascript 的方式来显示,常见的是用 CSS 嵌入到 HTML 中。
而在 ruby 里原来有此 coderay 可以很快做出来,
上述文章有很好的介绍使用,安装也容易,
就不再多言。
最近也浏览到 ultraviolet 也可以让程式码语法有色,
而且还有不同的 themes,所以就拿来试一试:
在 archlinux 的环境下:
gem install ultraviolet
会发生欠缺 oniguruma.h 的字样,
看一下什么是 oniguruma
pacman -Ss oniguruma 找没有,
就到 http://aur.archlinux.org/ 寻找看有无人提供:
http://aur.archlinux.org/packages.php?ID=11586
以非 root 的身份进行以下产生 package 的动作:
#下载 该档的 PKGBUILD 档,#http://aur.archlinux.org/packages/oniguruma/oniguruma/PKGBUILD#砍掉最后一行 md5sums=...makepkg -g >> PKGBUILDmakepkg -s#这样就做好了其 package,#再以 root 身份安装pacman -U oniguruma-5.9.1-2-i686.pkg.tar.gz#再 gem install ultraviolet 就可顺利安装。
以 command 的使用方式很简单,
参阅 http://ultraviolet.rubyforge.org/usage.xhtml
个範例试一下就略可知怎么用。
可看看 http://ultraviolet.rubyforge.org/themes.xhtml 内建各种的主题显示。
uv -s ruby -t lazy highlight.rb -h > a.html
就可产生 lazy 主题,并加上 HTML 头尾的输出。
但这执行后会找不到其 CSS 档,
只要执行
uv -c .
一次后,便会在本目录产生个 css 的目录,
里面有各主题的 css 档,到时把 HTML 的 Header 指到对的位置顺利显示。
在这一篇文章里:
http://snippets.aktagon.com/snippets/60-Syntax-highlighting-code-with-Ruby-and-Ultraviolet
提供了一个 ruby script,
可以把现有各种的 themes 一次通通画出来。
透过上述的这些工具,就可以在网页贴程式码的时候,
就有较好的显示方式及辨识度。