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

Posted

技术标签:

【中文标题】将 ANSI 转义(终端格式/颜色代码)转换为 HTML 的库 [关闭]【英文标题】:A library to convert ANSI escapes (terminal formatting/color codes) to HTML [closed] 【发布时间】:2010-09-19 16:42:05 【问题描述】:

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

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转换为,只是我不知道的转义码。我可以自己破解它,但我可能会错过一些重要的东西,比如下划线或搞乱背景颜色的工作方式。我宁愿只是坐在别人的代码之上。

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

【问题讨论】:

好问题和一组有价值的答案! 【参考方案1】:

aha 是一个 C 语言程序,在 Ubuntu 包中可用,在 http://ziz.delphigl.com/tool_aha.php 或 github https://github.com/theZiz/aha 上,它通过管道或文件接受带有终端颜色的输入并放置(符合 w3c 的)HTML-标准输出中的文件。示例:

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

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

具有黑色背景的类似终端的外观。

通过“make”编译它并放在任何你想要的地方。

很高兴获得反馈。 ;-)

【讨论】:

IcanDivideBy0 遗漏了一些东西:Alexander Matthes 帖子中的“德语链接”仍然有效。原始帖子在“ziz”之前有一个错误的'';使用ziz.delphigl.com/tool_aha.php 此外,Alexander 的链接指向: - ziz.delphigl.com/data/aha-src-0.4.4.tar.gz 的源代码,以及 - http://packages.debian.org/search?keywords=aha 的其他 debian 软件包(删除空格('')在“:”之后添加,因为我没有权限在每个帖子中包含超过 2 个链接。) aha有一个ubuntu包 只是想提醒其他人,这个应用程序的 github 存储库在 os x 上编译和运行没有问题。 :) 我刚刚添加了一个Homebrew Pull Request for aha。如果它被接受,在 Mac 上安装 aha 将是一个简单的brew update &amp;&amp; brew install aha 据我所知,似乎只能处理 16 种颜色。【参考方案2】:

目前仍在维护的成熟 Python 库和命令行工具:pycontribs/ansi2html

或者,对于 Bourne shell:ansi2html.sh

【讨论】:

“灵感来自 pixelbeat 和 blackjack”。我更喜欢这个,-i 选项很棒:) 太棒了!两者都可以处理 256 种颜色。赞成。 pixelbeat ansi2html.sh 非常适合我! 不再局限于 Bourne 并且提供 deb、yum、apt 包:pypi.python.org/pypi/ansi2html/1.0.7【参考方案3】:

好像有an HTML::FromANSI Perl module。

【讨论】:

此模块安装 ansi2html,您可以通过管道输入。 ls --color | ansi2html -p &gt; my_web_page.html ls --color | ansi2html &gt; my_snpipet_code-no_header-footer.html 但我更喜欢 ansi2html.sh from pixelbeat 的默认输出

以上是关于将 ANSI 转义(终端格式/颜色代码)转换为 HTML 的库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ANSI 颜色转义序列列表

[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)

[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)

如何让 win32 控制台识别 ANSI/VT100 转义序列?

在 Python 中为具有 ANSI 颜色代码的字符串获取正确的字符串长度

text BASH:为ANSI文本颜色转义序列设置变量