La chaîne de conversion de Pandoc

Dernière modification

Résumé : Ceci est une présentation des possibilités de Pandoc sous une forme graphique, à titre d'exercice pour utiliser Graphviz.

Modifié(e) :

< Lorsque Pandoc supporte un format en import et en export (l'html, le markdown...), la flèche est à double sens. Deux scripts prennent en charge une série d'étapes intermédiaires. '''markdown2pdf''' fournit par exemple le pdf final sans que l'utilisateur doive sauvegarder le document latex, puis appeler '''pdflatex''', supprimer les fichiers de travail (.aux etc.). Dans ce cas, le graphe montre le raccourci sous forme de flèche en trait plein, et les étapes sous-jacentes sous forme de traits interrompus.

à

> Lorsque Pandoc supporte un format en import et en export (l'html, le markdown...), la flèche est à double sens. Deux scripts prennent en charge une série d'étapes intermédiaires. '''markdown2pdf''' fournit par exemple le pdf final sans que l'utilisateur doive sauvegarder le document latex, puis appeler '''pdflatex''', supprimer les fichiers de travail (.aux etc.). '''html2markdown''' effectue une conversion d'une page html (qu'il s'agisse d'un fichier local ou distant) vers le markdown, ce qui peut être utile pour en modifier la mise en forme. Dans ces deux cas, le graphe montre le raccourci sous forme de flèche en trait plein, et les étapes sous-jacentes sous forme de traits interrompus.


Ceci est une présentation des possibilités de [[2009-11-01_Conversion_entre_formats_de_textes_avec_Pandoc?|Pandoc]] sous une forme graphique, à titre d'exercice pour utiliser Graphviz.

Les formats de documents (pdf, dvi, etc.) sont représentés par des noeuds en forme d'ellipses, les logiciels sous formes de polygones grisés, et certains sont regroupés dans des clusters, sous-graphes dans la terminologie de Graphviz. En principe, il y a donc toujours une alternance entre un format et un logiciel, sauf pour le DocBook XML qui est complexe et nécessiterait un graphe à lui seul; les relations entre DoocBook et les autres formats sont donc seulement suggérées par des flèches grisées et discontinues.

Lorsque Pandoc supporte un format en import et en export (l'html, le markdown...), la flèche est à double sens. Deux scripts prennent en charge une série d'étapes intermédiaires. markdown2pdf fournit par exemple le pdf final sans que l'utilisateur doive sauvegarder le document latex, puis appeler pdflatex, supprimer les fichiers de travail (.aux etc.). html2markdown effectue une conversion d'une page html (qu'il s'agisse d'un fichier local ou distant) vers le markdown, ce qui peut être utile pour en modifier la mise en forme. Dans ces deux cas, le graphe montre le raccourci sous forme de flèche en trait plein, et les étapes sous-jacentes sous forme de traits interrompus.

Aperçu:

http://www.k1ka.be/pics/pandoc_chain.jpg

Mais le format svg, pour les navigateurs qui peuvent l'afficher, offre des fonctionnalités nettement plus intéressantes: liens cliquables et bulles d'informations (toooltips): http://www.k1ka.be/pics/pandoc_chain.svg

Script permettant de produire ce graphe:

 digraph G {
   /* rankdir=LR; */
   ranksep=1.5;
   pad=1;
 
 /******** logiciels *********************************/
 
   subgraph cluster_pandoc {
     style=rounded
     color="#d0d0d0";
     label="Pandoc";
     URL="http://johnmacfarlane.net/pandoc/";
     tooltip="Universal markup converter";
     node   [style=filled,shape=house];
     pandoc        [fillcolor="#c0c0c0"
                    URL="http://johnmacfarlane.net/pandoc/pandoc.1.html"]
     markdown2pdf  [color="#d00000",fillcolor="#f0f0f0",
                    URL="http://johnmacfarlane.net/pandoc/markdown2pdf.1.html",
 		   tooltip="markdown2pdf is a wrapper around pandoc"];
     html2markdown [color="#009000",fillcolor="#f0f0f0",
                    URL="http://manpages.debian.net/cgi-bin/man.cgi?query=html2markdown",
 		   tooltip="html2markdown is a wrapper around pandoc"];
   }  
 
   subgraph cluster_latex {
     label="LaTeX"
     style=rounded
     color="#d0d0d0";
     pdflatex [shape=diamond,style=filled,fillcolor=lightgrey,
               URL="http://www.tug.org/applications/pdftex/",
 	      tooltip="an extended version of eTeX that can create PDF directly from TeX source files"];
     latex [shape=diamond,style=filled,fillcolor=lightgrey];
     dvips [shape=diamond,style=filled,fillcolor=lightgrey,
            URL="http://manpages.debian.net/cgi-bin/man.cgi?query=dvips"];
  /* dvipdfm [shape=diamond,style=filled,fillcolor=lightgrey]; */
     LaTeX
     dvi
   }  
   subgraph cluster_wg {
     label="(web grabber)"
     style=rounded
     color="#d0d0d0";
     webgraber [shape=hexagon,style=filled,fillcolor="#c0c0c0",label="wget\nlynx\nw3m\ncurl\netc."];
   }
   {
     node [style=filled,fillcolor=lightgrey];
     groff [shape=polygon, sides=5]
     grodvi [shape=polygon, sides=5,
             URL="http://manpages.debian.net/cgi-bin/man.cgi?query=grodvi",
 	    tooltip="grodvi - convert groff output to TeX dvi format"]
     browser [label="(browser)",shape=polygon, sides=5,
              tooltip="Any modern browser can print to a postscript file"]
     html2ps [shape=polygon, sides=6
              URL="http://user.it.uu.se/~jan/html2ps.html",
 	     tooltip="an HTML to PostScript converter written in Perl"]
     htmldoc [shape=polygon, sides=7,
              URL="http://www.htmldoc.org/documentation.php",
 	     tooltip="convert html source files into html, postscript, or pdf"]
     ps2pdf [shape=polygon, sides=4,
             URL="http://manpages.debian.net/cgi-bin/man.cgi?query=ps2pdf",
 	    tooltip="Convert PostScript to PDF using ghostscript"]
 
   }
 
 
 /******** formats de documents **********************/
   { rank=source
     html
     markdown
     reStructuredText
   }
   { rank=sink
     pdf
   }
   docbook [label="DocBook XML"]
   man     [label="groff man",
            URL="http://manpages.debian.net/cgi-bin/man.cgi?query=groff_man",
 	   tooltip="groff man macros to support generation of man pages"]
   s5      [label="S5 Slideshow"
            URL="http://meyerweb.com/eric/tools/s5/",
 	   tooltip="Simple Standards-Based Slide Show System"]
 
 /******** relations *********************************/
   { edge [dir=both]
     markdown         -> pandoc
     reStructuredText -> pandoc
     html             -> pandoc
     LaTeX            -> pandoc [constraint=false]
   }
 
   pandoc -> man
   pandoc -> RTF
   pandoc -> docbook
   pandoc -> s5
 
   { edge [style=dashed, color="#a0a0a0"]
   docbook -> html
   docbook -> postscript
   docbook -> pdf
   }
 
   html -> browser -> postscript -> ps2pdf -> pdf
   html -> html2ps -> postscript
   html -> htmldoc -> postscript
           htmldoc -> pdf
 
   LaTeX -> latex -> dvi -> dvips   -> postscript
   /*                dvi -> dvipdfm -> pdf     */
 
   html     -> html2markdown -> markdown [color="#009000"]
               html2markdown -> webgraber -> pandoc -> markdown [style=dashed,color="#009000"]
   markdown -> markdown2pdf -> pdf [color=red]
               markdown2pdf  -> pandoc -> LaTeX -> pdflatex -> pdf [style=dashed,color=red]
   man -> groff -> postscript
   man -> grodvi -> dvi
 }