开源语法荧光笔工具?

时间:2020-03-06 14:25:07  来源:igfitidea点击:

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

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

有人知道这样的应用程序吗?

解决方案

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

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

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

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

如果我们可以使用红宝石,可以使用Coderay。

Enscript看起来像我们要的是:

  • 从ascii文件中吐出HTML(或者PS或者RTF)
  • 它包括几种编程语言中的"漂亮打印"(语言敏感的代码突出显示)功能。

我可以推荐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彩色终端输出。

我将在列表中添加我自己的颜色,它将Cbut的颜色设为C,C ++和Java。
默认情况下,它会生成内联样式和pre标签。

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