将 ANSI 转义(终端格式/颜色代码)转换为 HTML 的库

我正在寻找一个代码库,转换 ANSI 转义序列到 HTML 颜色,通过普通标签或 CSS。例如,可以转换为:

ESC[00mESC[01;34mbinESC[00m
ESC[01;34mcodeESC[00m
ESC[01;31mdropbox-lnx.x86-0.6.404.tar.gzESC[00m
ESC[00mfooESC[00m

变成这样:

<span style="color:blue">bin</span>
<span style="color:blue">code</span>
<span style="color:red">dropbox-lnx.x86-0.6.404.tar.gz</span>
foo

没有必要将 break 转换成 < br/> ,只需要转换我不知道的转义码即可。我可以自己把它们拼凑起来,但是我可能会错过一些重要的东西,比如下划线或者弄乱背景颜色的工作原理。我宁愿坐在别人的代码上。

这样的工具(命令行 linux)或库(perl、 python 或 Ruby 更好)是否存在?

33239 次浏览

aha is a C-language program, available in an Ubuntu package, at http://ziz.delphigl.com/tool_aha.php or on github https://github.com/theZiz/aha, that takes an input with terminal colors by pipe or file and puts a (w3c conform) HTML-File in stdout. Example:

ls --color=always | aha > ls-output.htm

or

ls --color=always | aha --black > ls-output.htm

for a terminal-like look with black background.

Compile it by "make" and put it where ever you want.

It would be great to get Feedback. ;-)

Mature Python library and command line tool which is still maintained: pycontribs/ansi2html

Alternatively, for the Bourne shell: ansi2html.sh