`

coderay

阅读更多
事情很簡單,就是每次我貼程式碼都覺得有很大的困擾,因為不只排版很麻煩,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 中,为所选语言快速而简单地强调语法,编写.zip

    coderay, 在 ruby 中,为所选语言快速而简单地强调语法,编写 CodeRay CodeRay是用于语法突出显示的ruby 库。你将代码放入,并将它的恢复为颜色;关键字。字符串。浮点。注释- 所有不同颜色。 还有行号。安装gem ...

    coderay:以Ruby编写的针对所选语言的快速轻松语法突出显示

    CodeRay 关于 CodeRay是用于语法高亮显示的Ruby库。 您将代码放入,然后重新着色。 关键字,字符串,浮点数,注释-全部使用不同的颜色。 并带有行号。 安装 gem install coderay 依存关系 CodeRay需要Ruby 1.8.7、...

    Matlab代码verilog-redmine_highlightjs:一个Redmine插件可以比Coderay更好地突出显示代码块!

    一个Redmine插件可以比Coderay更好地突出显示代码块! :) 135种具有自动检测功能的语言,65种颜色主题,多语言代码突出显示(例如http + json),请尝试使用您的语言并为您选择最佳主题: 旧的好代码: 示例...

    python代码行数统计.zip

    - `CodeRay`:Ruby编写的代码高亮和统计工具,可以通过插件形式在某些编辑器或IDE中使用。 - 自定义解决方案:根据具体需求编写Python脚本,例如遍历目录、读取文件、过滤注释和空行,然后累加代码行数。 4. **...

    Centos5.6中Redmine1.2.1安装过程

    - coderay-1.0.0.gem 将上述 gems 文件保存于 `/home/soft/rails` 目录下,然后进入该目录逐一安装。需要注意的是,在安装过程中可能会遇到一些警告或错误提示,例如在安装 `mysql-2.8.1.gem` 时可能出现错误,但这...

    webgen-website:Webgen网站的来源

    $ 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 $ ...

    home:ArchLinuxVn +文档系统的主页

    要构建该站点并查看其输出,您需要Ruby-1.9和一些Ruby gem: nanoc , adsf , fssm , kramdown , coderay和nokogiri 。 使用命令nanoc构建页面,并使用nanoc view在处启动临时Web服务器。 访问该地址将为您提供...

    wdi_project_2:教育平台接受用户创建的课程

    使用Redcarpet和Coderay gem在HTML中进行Markdown格式化 添加播放速度按钮以控制视频速度。 添加下一个和上一个按钮可以轻松地在课程之间导航。 使用Stripe API集成结帐和付款 添加评论功能 修复移动视口错误。 ...

    antoniodimariano.github.io

    用于Pygments的样式表和Coderay ,使您的代码示例看起来令人眼花y乱。 新的Jekyll网站的基本设置 gem install bundler ,然后安装和所有依赖项bundle install 。 分叉。 克隆刚刚分叉的存储库,然后将其重命名。...

    Book-TDD-Web-Dev-Python:图书-使用Python的TDD Web开发人员

    安装和coderay gem。 make build将每一章构建为自己的html文件 make book.html将创建一个文件 make chapter_post_and_database.html例如make chapter_post_and_database.html ,将建立第5章 运行测试 测试套件的...

    material3dge.github.io

    HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    shauning.github.io

    HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    damir-cuturic.github.io

    HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    daudua.github.io

    HPSTR Jekyll 主题他们说三倍的魅力... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR利用Sass和数据文件来简化自定义。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。 要了解如

    otakou.github.io

    HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    chipzlabs.github.io:我的博客

    HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    kidtblog.github.io

    HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    vnsquall.github.io:Vnsquall 的页面

    HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    hpstr-jekyll-theme-master

    HPSTR Jekyll 主题他们说三倍的魅力,... Pygments 和 Coderay样式表使您的代码示例看起来很时髦。 谢谢 !入门HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

    vs4vijay-old.github.io:vs4vijay.github.io

    HPSTR Jekyll 主题 ... Pygments 和 Coderay样式表使您的代码示例看起来很时髦 。 谢谢 ! 入门 HPSTR 利用 Sass 和数据文件使定制变得更容易。 这些功能需要 Jekyll 2.x 并且不适用于旧版本的 Jekyll。

Global site tag (gtag.js) - Google Analytics