3

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

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

有谁知道这样的应用程序?

4

8 回答 8

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 颜色终端输出。

于 2009-05-22T23:51:33.680 回答
4

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

于 2008-09-19T08:15:04.313 回答
3

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

于 2008-09-19T08:16:44.780 回答
2

我不记得GeSHi是否有命令行程序,但即使没有,也应该不难搞定。它在获取代码和生成漂亮的彩色 HTML/XHTML 方面做得非常好,甚至带有行号(或每个 X 行号,甚至)和其他有用的功能。

于 2008-09-19T08:26:17.843 回答
1

Enscript看起来像您所要求的:

  1. 从 ascii 文件中吐出 HTML(或 PS,或 RTF)
  2. 它包括多种编程语言的“漂亮打印”(语言敏感代码突出显示)功能。
于 2008-09-19T08:46:42.897 回答
0

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

于 2008-09-19T08:16:22.237 回答
0

如果您可以使用 ruby​​,您需要coderay

于 2008-09-19T08:32:29.110 回答
0

我会将我自己的一个添加到列表中,它为 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.

于 2010-01-24T21:41:32.720 回答