Рендеринг HTML из трубы


15

Я хотел бы иметь возможность генерировать HTML, а затем передать его в программу, которая будет отображать его, что-то вроде этого:

for i in 1 2 3
do
    for j in a b c
    do
        echo "<table border="1"><tr><td>$i</td><td>$j</td></tr></table>"
    done
done | /usr/bin/firefox

К сожалению, Firefox не может отображать данные, передаваемые со стандартного ввода. Ни один не может Google-Chrome. lynxможет, но кто хочет этим пользоваться?

Я попытался создать именованный канал, открыть его в Chrome и / или Firefox, а затем передать данные в него - но браузер не обновлялся, когда я отправлял данные через именованный канал.

Есть ли нетекстовые браузеры, которые будут рендерить html из stdin? Вывод не должен быть блестящим, я в основном заинтересован в том, чтобы сделать данные с разделителями немного более читабельными, на лету.

Редактировать:

Я попытался использовать процесс подстановки в bash, например firefox <(sh /tmp/tablegen.sh), это тоже не сработало. В худшем случае я мог бы вывести временный файл, отрендерить, а затем удалить, но я бы предпочел более элегантное решение.


1
Подобный вопрос здесь: unix.stackexchange.com/questions/24931/…
wmz

Хорошая ссылка; довольно хорошо подтвердил мое подозрение, что использование временного файла - единственный путь.
Бартон Читтенден

Ответы:


14

Из одного из ответов на этот вопрос я нашел bcat:

NAME

  bcat - browser cat

DESCRIPTION

  The bcat utility reads from standard input, or one or
  more files, and pipes output into a web browser. file
  may be '-', in which case standard input is concatenated
  at that position.

  When invoked as btee, all input is written immediately
  to standard output in addition to being piped into
  the browser.

Теперь я могу запустить такой скрипт:

$ python foo.py | bcat

... и результирующий вывод HTML открывается в новой вкладке Firefox!

В Ubuntu и других дистрибутивах Linux на основе Debian вы можете установить bcatэту команду:

$ sudo aptitude install ruby-bcat

Привет с 2019 года, вышеуказанная установка не работает, но работает sudo gem install bcat. :-)
roufamatic
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.