【问题标题】:Html to ansi colored terminal textHtml 到 ansi 彩色终端文本
【发布时间】:2011-07-22 00:03:45
【问题描述】:

我在Linux下,我想从网上获取一个html页面,然后在终端上输出。我发现html2text 基本上完成了这项工作,但它将我的html 转换为纯文本,而我最好本着ls --color=auto 的精神将其转换为ansi 彩色文本。有什么想法吗?

【问题讨论】:

    标签: html terminal ansi-colors


    【解决方案1】:

    elinks 浏览器可以做到这一点。其他文本浏览器,例如 lynxw3m 或许也能做到这一点。

    elinks -dump -dump-color-mode 1 http://example.com/
    

    上面的示例提供了http://example.com/ 的文本版本,使用16 种颜色。输出格式可以根据需要进一步定制。

    -dump 选项启用转储模式,该模式仅将整个页面打印为文本,链接目标以一种“电子邮件样式”打印出来。

    -dump-color-mode 1 启用使用 16 种基本终端颜色对输出进行着色。根据终端仿真器的价值和能力,这可能高达约 1600 万(真彩色)。这些值记录在elinks.conf(5)

    也可以配置用于输出的颜色,这在elinks.conf(5) 中也有记录。

    【讨论】:

    • 请注意,elinks 不会自动重置终端颜色,从而导致任何后续输出(来自脚本或终端)与 elinks 输出的结尾颜色相同,直到出现新颜色遇到代码。您可以通过在elinks 之后执行tput sgr0 来手动重置。
    【解决方案2】:

    【讨论】:

    • 好吧,lynx 也可以,但我只需要输出页面而不是浏览它。
    • 您不必这样做。 w3m 也有类似 -dump 的选项,elinks 也有。这只是选择您最喜欢的那个的问题。
    • @davrieb,知道如何让其中一个浏览器转储颜色吗?
    • @sarmold:不是从我的头顶,但是是的。我将在单独的答案中提供详细信息,以便更好地发现。
    • @davrieb, w3m [0.5.3, 2018] -dump 抑制彩色输出
    【解决方案3】:

    您可以使用 lynx 浏览器使用此命令输出文本。

    lynx -dump http://example.com
    

    【讨论】:

    • 知道如何让lynx -dump 也包含颜色吗?至少在我的发行版中,lynx 是针对ncurses 编译的,并且完全使用ncurses 来确定何时使用颜色;我无法让它转储颜色输出。
    • 我尝试了lynx -dump somefile.html < <( echo -n qj) > out; cat out 及其变体,但无济于事。只是让你知道这也行不通。所以除非你破解ncurses...但是安装elinks 可能又不那么麻烦了。 ;)
    猜你喜欢
    • 2021-07-18
    • 2021-12-04
    • 2016-02-25
    • 2020-03-15
    • 2010-09-22
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多