Forum Programmation.autre Intégrer automatiquement une image générée par un fragment de code dans du markdown

Posté par  . Licence CC By‑SA.
Étiquettes :
1
25
déc.
2015

Bonsoir,
je code un générateur de GCode en Haskell. Il va falloir que je fasse un peu de documentation…
Je souhaiterais mettre des bouts de code dans la doc, et intégrer automatiquement une visualisation 3D de ce que donne ce bout de code.
Ce genre de truc existe pour le langage R, ça s'appelle knitr. ça permet d'intégrer des courbes générée par un bout de code dans du markdown, automatiquement.
knitr supporte haskell, mais intègre juste la sortie texte.

Je souhaiterais faire ma doc en markdown, mais si c'est plus simple de faire ça en latex (ou autre), alors je ferais en latex.

En gros je cherche une sorte de préprocesseur qui extrait les bout de code de la doc, les exécute pour générer du GCode, lance un soft pour générer des images à partir de ces GCode, et intègre ces images dans la doc à côté du code correspondant.

J'espère ne pas avoir été trop confus dans mes explications.
à bientôt

  • # Un script peut-être ?

    Posté par  (site web personnel) . Évalué à 3.

    Je ne sais pas s'il existe un préprocesseur qui fait ça avec markdown (ça a l'air raisonnable de penser qu'avec latex il doit y avoir quelque chose comme ça, mais je ne connais pas non plus). Par contre, ça a l'air relativement facile de faire un truc à sa sauce, d'au moins deux façons.

    La moins ambitieuse, mais probablement plus rapide : écrire un script Perl (ou Python, shell, etc.), qui cherche heuristiquement les bouts de code à coup de regexp (parser markdown rigoureusement c'est vraiment difficile, cf méthode 2 plus bas), les extrait, les compile et tout ça, puis ajoute des liens vers les images produites. Il existe aussi la possibilité de s'en sortir en n'écrivant pas directement du markdown, mais en utilisant un préprocesseur comme m4 (ça a l'air bête, mais des fois c'est pratique m4), qui peut faire appel vers des commandes quelconques (donc un petit script qui renvoie ce qu'on veut, par exemple).

    Plus ambitieusement, tu peux utiliser pandoc (c'est utilisable comme librairie, et on peut manipuler l'AST généré par le source markdown) et repérer ainsi les bouts de code, puis faire un truc similaire à la méthode 1, mais par contre ça demande de réfléchir un peu plus, je pense.

  • # en sphinx, pour comparer

    Posté par  . Évalué à 3.

    markdown me semble être un format volontairement non spécifié (donc avec des implémentations divergentes) et limité.
    Du côté de sphinx, extension de Rst, ça semble assez simple :
    http://wradlib.bitbucket.org/tutorial_autoimages.html

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.