将 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 && 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 > my_web_page.html
ls --color | ansi2html > my_snpipet_code-no_header-footer.html
但我更喜欢 ansi2html.sh from pixelbeat 的默认输出以上是关于将 ANSI 转义(终端格式/颜色代码)转换为 HTML 的库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)
[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)
如何让 win32 控制台识别 ANSI/VT100 转义序列?