Rendern von HTML aus einer Pipe

Rendern von HTML aus einer Pipe

Ich möchte HTML generieren und es dann an ein Programm weiterleiten können, das es rendert, etwa so:

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

Leider kann Firefox keine Daten rendern, die von stdin eingespeist werden. Das kann Google Chrome auch nicht. lynxAber wer will das schon benutzen?

Ich habe versucht, eine benannte Pipe zu erstellen, diese in Chrome und/oder Firefox zu öffnen und dann Daten dorthin weiterzuleiten – aber der Browser wurde nicht aktualisiert, als ich Daten durch die benannte Pipe gesendet habe.

Gibt es nicht textbasierte Browser, die HTML von der Standardeingabe aus rendern? Die Ausgabe muss nicht schick sein, ich bin hauptsächlich daran interessiert, abgegrenzte Daten im Handumdrehen etwas lesbarer zu machen.

Bearbeiten:

Ich habe versucht, die Prozesssubstitution von Bash zu verwenden, z. B. firefox <(sh /tmp/tablegen.sh), aber das hat auch nicht funktioniert. Im schlimmsten Fall könnte ich in eine temporäre Datei ausgeben, rendern und dann löschen, aber ich würde eine etwas elegantere Lösung bevorzugen.

Antwort1

Aus einer der Antworten aufdiese Frageich fandbcat:

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.

Jetzt kann ich ein Skript wie dieses ausführen:

$ python foo.py | bcat

... und die resultierende HTML-Ausgabe wird in einem neuen Firefox-Tab geöffnet!

Unter Ubuntu und anderen Debian-basierten Linux-Distributionen können Sie die Installation bcatmit diesem Befehl durchführen:

$ sudo aptitude install ruby-bcat

verwandte Informationen