我正在寻找一个开源,跨平台(至少是Windows和Linux)命令行工具来获取一些代码(C ++,但多种语言会很好),并吐出有效的代码的XHTML表示,包括语法高亮。
理想情况下,XHTML应该只使用不同类的<span>
和<div>
标记包装代码,这样我就可以提供CSS代码并更改颜色,但这是一个可选的附加功能。
有谁知道这样的申请?
答案 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">"Hello World"</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看起来就像你要求的那样:
答案 5 :(得分:0)
不确定这会有多大帮助,但是我的团队使用doxygen来生成文档,这恰好会在我们的代码视图中提供颜色语法突出显示以及副作用。从来没有真正需要它,但它确实需要它。
答案 6 :(得分:0)
如果您对使用ruby感到满意,则需要coderay。
答案 7 :(得分:0)
我将添加my own one to the list,它为C#着色,但可以适用于C,C ++和Java。 它默认生成内联样式和预标记。
源代码在C#中,您需要获取mono / monodevelop并将其编译为控制台应用程序,因此在这方面它不会收缩。