Rendu HTML à partir d'un tube

15

J'aimerais pouvoir générer du HTML puis le diriger vers un programme qui le rendra, quelque chose comme ceci:

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

Malheureusement, firefox ne peut pas restituer les données depuis stdin. Google-chrome non plus. lynxpeut, mais qui veut l'utiliser?

J'ai essayé de créer un canal nommé, en l'ouvrant dans Chrome et / ou Firefox, puis en canalisant les données vers cela - mais le navigateur ne s'est pas mis à jour lorsque j'ai envoyé des données via le canal nommé.

Existe-t-il des navigateurs non textuels qui afficheront le code HTML à partir de stdin? La sortie n'a pas besoin d'être fastueuse, je suis surtout intéressé à rendre les données délimitées un peu plus lisibles, à la volée.

Éditer:

J'ai essayé d'utiliser la substitution de processus de bash, par exemple firefox <(sh /tmp/tablegen.sh), cela n'a pas fonctionné non plus. Dans le pire des cas, je pourrais sortir dans un fichier temporaire, rendre, puis supprimer, mais je préférerais une solution légèrement plus élégante.

Barton Chittenden
la source
1
Question similaire ici: unix.stackexchange.com/questions/24931/…
wmz
Bon lien; assez bien confirmé ma suspicion que l'utilisation d'un fichier temporaire est la seule façon d'aller.
Barton Chittenden

Réponses:

14

À partir d'une des réponses à cette question, j'ai trouvé 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.

Maintenant, je peux exécuter un script comme celui-ci:

$ python foo.py | bcat

... et la sortie HTML résultante s'ouvre dans un nouvel onglet Firefox!

Sur Ubuntu et d'autres distributions Linux basées sur Debian, vous pouvez installer bcatavec cette commande:

$ sudo aptitude install ruby-bcat
dotancohen
la source
Salut à partir de 2019, l'installation ci-dessus n'a pas fonctionné mais sudo gem install bcata fonctionné. :-)
roufamatic