我正在寻找一个开源、跨平台(至少是 Windows 和 Linux)命令行工具来获取一些代码(C++,但多种语言会很不错),并吐出该代码的有效 XHTML 表示,并带有语法突出显示包括。
理想情况下,XHTML 应该只用不同的类包装代码<span>
和<div>
标签,这样我就可以提供 CSS 代码并更改颜色,但这是一个可选的附加功能。
有谁知道这样的应用程序?
我正在寻找一个开源、跨平台(至少是 Windows 和 Linux)命令行工具来获取一些代码(C++,但多种语言会很不错),并吐出该代码的有效 XHTML 表示,并带有语法突出显示包括。
理想情况下,XHTML 应该只用不同的类包装代码<span>
和<div>
标签,这样我就可以提供 CSS 代码并更改颜色,但这是一个可选的附加功能。
有谁知道这样的应用程序?
我可以推荐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">"Hello World"</span></pre>
</div>
然后您可以使用提供的样式表之一制作您自己的样式表。
您也可以通过它的pygmentize
脚本调用它。该脚本可以以不同的方式格式化输出:HTML、LaTeX、ANSI 颜色终端输出。
有一个非常好的,由 XML 驱动,快速且开源:http://sourceforge.net/projects/colorer/
我不记得GeSHi是否有命令行程序,但即使没有,也应该不难搞定。它在获取代码和生成漂亮的彩色 HTML/XHTML 方面做得非常好,甚至带有行号(或每个 X 行号,甚至)和其他有用的功能。
Enscript看起来像您所要求的:
不确定这会有多大帮助,但我的团队使用 doxygen 来生成文档,这恰好在我们的代码视图上提供颜色语法突出显示以及附带的好处。从来没有真正需要它,但它确实做到了。
如果您可以使用 ruby,您需要coderay。
我会将我自己的一个添加到列表中,它为 C# 着色,但可以适用于 C、C++ 和 Java。它默认生成内联样式和一个 pre 标记。
The source is there in C#, you'll need to grab mono/monodevelop and compile it as as a console app, so it's not shrink wrapped in that respect.