开源语法荧光笔工具?[关闭]
-
01-07-2019 - |
题
我正在寻找一个开源、跨平台(至少是 Windows 和 Linux)命令行工具来获取一些代码(C++,但多种语言会更好),并吐出该代码的有效 XHTML 表示形式,并带有语法突出显示包括。
理想情况下,XHTML 应该将代码包装为 <span>
和 <div>
具有不同类的标签,这样我就可以提供 CSS 代码并更改颜色,但这是一个可选的额外功能。
有谁知道这样的应用程序吗?
解决方案
我可以推荐 皮格门斯. 。它易于使用并支持多种语言。它执行您想要的操作,即将代码包装在 <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/
我不记得是否 葛石 有一个命令行程序,但即使没有,创建一个也不难。它在获取代码和生成漂亮的彩色 HTML/XHTML 方面做得非常出色,甚至包含行号(或每个 X 行号)和其他有用的功能。
铭刻 看起来像你所要求的:
- 从 ascii 文件中吐出 HTML(或 PS、RTF)
- 它包括多种编程语言中的“漂亮打印”(语言敏感的代码突出显示)功能。
不确定这会有多大帮助,但我的团队使用 doxygen 来生成文档,它恰好在我们的代码视图上提供颜色语法突出显示以及一个额外的好处。从来没有真正需要过它,但它确实做到了。
如果您可以使用 ruby,那么您想要 科瑞.
我会添加 我自己的一份也列在清单中, ,它为 C# 着色,但可以适用于 C、C++ 和 Java。它默认生成内联样式和预标记。
源代码位于 C# 中,您需要获取 mono/monodevelop 并将其编译为控制台应用程序,因此它在这方面没有收缩包装。