开源语法荧光笔工具?

时间:2008-09-19 08:10:15

标签: open-source syntax-highlighting

我正在寻找一个开源,跨平台(至少是Windows和Linux)命令行工具来获取一些代码(C ++,但多种语言会很好),并吐出有效的代码的XHTML表示,包括语法高亮。

理想情况下,XHTML应该只使用不同类的<span><div>标记包装代码,这样我就可以提供CSS代码并更改颜色,但这是一个可选的附加功能。

有谁知道这样的申请?

8 个答案:

答案 0 :(得分:9)

我可以推荐Pygments。它很容易使用并支持很多语言。它可以满足您的需求,即它将代码包装在<span>标签中:

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter

code = 'print "Hello World"'
print highlight(code, PythonLexer(), HtmlFormatter())

给出

<div class="highlight">
<pre><span class="k">print</span> <span class="s">&quot;Hello World&quot;</span></pre>
</div>

然后您可以使用自己提供的样式表之一。

您也可以通过它的pygmentize脚本调用它。该脚本可以以不同的方式格式化输出:HTML,LaTeX,ANSI彩色终端输出。

答案 1 :(得分:4)

Vim可以将其突出显示的任何代码保存为“彩色”HTML(它在多个平台上运行)。还有GNU hightlight。还有很多其他人。

答案 2 :(得分:3)

有一个非常好的,由XML驱动,快速和开源: http://sourceforge.net/projects/colorer/

答案 3 :(得分:2)

我不记得GeSHi是否有一个命令行程序,但即使它没有,也不应该很难鞭打一个。它可以很好地处理代码并生成漂亮的彩色HTML / XHTML,甚至包括行号(或每个X行号,甚至是)和其他有用的功能。

答案 4 :(得分:1)

Enscript看起来就像你要求的那样:

  1. 从ascii文件中吐出HTML(或PS或RTF)
  2. 它包含几种编程语言中“漂亮打印”(语言敏感的代码突出显示)的功能。

答案 5 :(得分:0)

不确定这会有多大帮助,但是我的团队使用doxygen来生成文档,这恰好会在我们的代码视图中提供颜色语法突出显示以及副作用。从来没有真正需要它,但它确实需要它。

答案 6 :(得分:0)

如果您对使用ruby感到满意,则需要coderay

答案 7 :(得分:0)

我将添加my own one to the list,它为C#着色,但可以适用于C,C ++和Java。 它默认生成内联样式和预标记。

源代码在C#中,您需要获取mono / monodevelop并将其编译为控制台应用程序,因此在这方面它不会收缩。