事情很簡單,就是每次我貼程式碼都覺得有很大的困擾,因為不只排版很麻煩,highlight 的問題更是折騰。我之前曾經改寫過一個用 ruby 寫成的 nopaste, 他是呼叫外部 highlight 的程式,查了一下,是這個:
http://www.andre-simon.de/. 關於那個 nopaste 我就不多提了,寫得很爛,沒什麼營養。(這也是我想改寫的原因)
後來你也知道,我三分鐘熱度很嚴重,所以只改到一半就沒繼續做下去了。
過了一段時間,我看到了 Lighty RoR 上的〈
Syntax Highlight 套件〉,讓我重新想起這件事,希望以後能有個好 highlight 方式。於是我灌了
syntax gem,
coderay gem, 還有
highlight gem. 結果那次到底發生了什麼事,其實我也忘了。只記得好像是稍微試過之後就放到一邊去了吧。
今天我又想起這件事,所以又重新找起套件來了。看來看去,syntax 和 highlight 好像都不怎麼好用。最後我終於又試到了 coderay. 這次發現 coderay 相當好用,應該不用繼續找下去了。
gem install coderay
coderay -ruby -span < input.rb > output.rb.txt
這樣可以產生適合直接貼到支援 HTML/CSS 文章中的 HTML+CSS code.
coderay -ruby -page < input.rb > output.rb.html
這樣會直接產生一個完整的 XHTML 1.0 的頁面,相當方便。
coderay -ruby -html < input.rb > output.rb.html
如此產生出來的 CSS 會是用 class 的形式,適合原本就有 CSS 檔的地方。
(補充:另外除了 page 以外,span 和 html 視情況需要在前後加上 pre tag, 也許這部份可以再稍微 hack 一下使之不用加 pre tag, 省得事情變得更麻煩。)
沒錯,最大的好處就是直接用 command line 就好了,不用寫 ruby 程式。其他所支援的語法,在 lib/coderay/scanners 中可以找到,就我現在手上的 0.7.4.215 版中有:
c, delphi, html, nitro_xhtml, plaintext, rhtml, ruby, xml
擴充容易,自己去寫 you_want.rb 丟到 scanners 中就可以使用了。至於輸出格式,在 lib/coderay/encoders 中可以找到,同版本中有:
count, div, html, null, page, span, statistic, text, tokens, xml, yaml
別問我是什麼意思,沒試過我也不知道。不過 statistic 是產生報表,這不小心試過 XD 還有這也和上面一樣,擴充容易,自己寫 encoders 就可以用自己要的輸出格式。至於在 ruby 程式中呼叫 coderay, 這當然沒問題了,用法自己找,我懶得試了。唯一可惜的是 license 是 GPL 吧,我不確定我可不可以把他拉到
ludy 而不用讓 ludy 用 GPL 釋出。不過沒差,這程式內容還滿多的,我應該沒時間好好去改他。乖乖地用
就好了。
除此之外,還找到
rhighlight, 是上面提到的那個
highlight 程式的 binding. 我想這也應該滿值得一試的,但既然先發現 coderay 堪用了,也懶得繼續試,就先 note 起來就好。除此之外,還有
sourcecode2html, 不過這個看來還在開發中。
2007.05.06 godfat 真常
分享到:
相关推荐
coderay, 在 ruby 中,为所选语言快速而简单地强调语法,编写 CodeRay CodeRay是用于语法突出显示的ruby 库。你将代码放入,并将它的恢复为颜色;关键字。字符串。浮点。注释- 所有不同颜色。 还有行号。安装gem ...
CodeRay 关于 CodeRay是用于语法高亮显示的Ruby库。 您将代码放入,然后重新着色。 关键字,字符串,浮点数,注释-全部使用不同的颜色。 并带有行号。 安装 gem install coderay 依存关系 CodeRay需要Ruby 1.8.7、...
一个Redmine插件可以比Coderay更好地突出显示代码块! :) 135种具有自动检测功能的语言,65种颜色主题,多语言代码突出显示(例如http + json),请尝试使用您的语言并为您选择最佳主题: 旧的好代码: 示例...
- `CodeRay`:Ruby编写的代码高亮和统计工具,可以通过插件形式在某些编辑器或IDE中使用。 - 自定义解决方案:根据具体需求编写Python脚本,例如遍历目录、读取文件、过滤注释和空行,然后累加代码行数。 4. **...
- coderay-1.0.0.gem 将上述 gems 文件保存于 `/home/soft/rails` 目录下,然后进入该目录逐一安装。需要注意的是,在安装过程中可能会遇到一些警告或错误提示,例如在安装 `mysql-2.8.1.gem` 时可能出现错误,但这...
$ gem install archive-tar-minitar builder coderay erubis haml $ gem install maruku rdiscount rdoc RedCloth sass $ gem install webgen-zurb_foundation-bundle $ gem install webgen-font_awesome-bundle $ ...
要构建该站点并查看其输出,您需要Ruby-1.9和一些Ruby gem: nanoc , adsf , fssm , kramdown , coderay和nokogiri 。 使用命令nanoc构建页面,并使用nanoc view在处启动临时Web服务器。 访问该地址将为您提供...
使用Redcarpet和Coderay gem在HTML中进行Markdown格式化 添加播放速度按钮以控制视频速度。 添加下一个和上一个按钮可以轻松地在课程之间导航。 使用Stripe API集成结帐和付款 添加评论功能 修复移动视口错误。 ...
用于Pygments的样式表和Coderay ,使您的代码示例看起来令人眼花y乱。 新的Jekyll网站的基本设置 gem install bundler ,然后安装和所有依赖项bundle install 。 分叉。 克隆刚刚分叉的存储库,然后将其重命名。...
安装和coderay gem。 make build将每一章构建为自己的html文件 make book.html将创建一个文件 make chapter_post_and_database.html例如make chapter_post_and_database.html ,将建立第5章 运行测试 测试套件的...
HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题他们说三倍的魅力... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR利用Sass和数据文件来简化自定义。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。 要了解如
HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。
HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。