Вывод оболочки linux в html

Есть ли способ конвертировать вывод bash в html? например, если у меня был некоторый раскрашенный вывод в bash (что-то вроде htop), как я могу преобразовать его в теги html... (примерно так: <p style="color: red">some text</p>)

Ответ 1

Там ansifilter плюс некоторые инструменты, такие как highlight, выдадут раскрашенный html из обычного текста, такого как исходные файлы.

Оба доступны здесь.

Ответ 2

Да, вам нужно передать результат с помощью инструмента, такого как ansi2html.

Ответ 3

Без какой-либо красивой печати самая простая вещь, которую вы всегда можете сделать, - это избавиться от всего, что требует экранирования, и обернуть основную оболочку HTML (следующее должно быть допустимым минимальным HTML5). Например, возьмите fastesc: http://raa.ruby-lang.org/project/fastesc/ и завершите его в оболочку HTML.

Если вы хотите сохранить магию ANSI, вам нужно преобразовать ее в HTML, возможно, http://ansi-sys.rubyforge.org/

И тогда сделайте что-нибудь подобное, в зависимости от ваших потребностей:

require 'ansisys'


def ansi_escape(string)
    terminal = AnsiSys::Terminal.new
    terminal.echo(string)
    terminal.render 
end

def to_html(string)
    %Q{ <!DOCTYPE html>
        <title>Converted to html</title>
        <pre>
        #{ansi_escape(string)}
        </pre>
    } 
end