Sujet sur Discussion Gestion:Tâches/Liste/69

Ligne 35 : Ligne 35 :
Pour ce qui concerne spécifiquement Mermaid, il semblerait que ce soit une bibliothèque qui fonctionne uniquement côté client, ce qui imposerait de servir aux lecteurs les diagrammes sous forme de syntaxe Mermaid brute avec un script JS qui s’occupe de faire la transformation en SVG côté client. On avait déjà discuté d’un cas similaire précédemment et on était arrivés à la conclusion que ce n’était pas optimal que du JS soit nécessaire pour seulement voir les diagrammes.
Pour ce qui concerne spécifiquement Mermaid, il semblerait que ce soit une bibliothèque qui fonctionne uniquement côté client, ce qui imposerait de servir aux lecteurs les diagrammes sous forme de syntaxe Mermaid brute avec un script JS qui s’occupe de faire la transformation en SVG côté client. On avait déjà discuté d’un cas similaire précédemment et on était arrivés à la conclusion que ce n’était pas optimal que du JS soit nécessaire pour seulement voir les diagrammes.


Il y a bien [https://github.com/mermaid-js/mermaid-cli mermaid-cli] qui permet de convertir côté serveur la syntaxe Mermaid en SVG/PNG/PDF, mais (il faut bien se tenir) elle fonctionne en lançant sur le serveur une instance de Chromium, en chargeant la bibliothèque Mermaid dans ce navigateur et en exportant le résultat. Ça me semble loin d’être optimal, et je n’ai rien trouvé d’autre pour convertir du Mermaid côté serveur. Bien sûr, ce serait possible de développer notre propre solution pour faire cette conversion, ce qui serait sans nul doute utile à la communauté, mais ça va prendre pas mal de temps.
Il y a bien [https://github.com/mermaid-js/mermaid-cli mermaid-cli] qui permet de convertir côté serveur la syntaxe Mermaid en SVG/PNG/PDF, mais elle fonctionne en lançant sur le serveur une instance de Chromium, en chargeant la bibliothèque Mermaid dans ce navigateur et en exportant le résultat. Ça me semble loin d’être optimal, et je n’ai rien trouvé d’autre pour convertir du Mermaid côté serveur. Bien sûr, ce serait possible de développer notre propre solution pour faire cette conversion, ce qui serait sans nul doute utile à la communauté, mais ça va prendre pas mal de temps.


Sinon, il nous reste [https://www.graphviz.org/ GraphViz], mais le support de cette bibliothèque pour le HTML est pour le moins limité. Cela peut se comprendre puisqu’il devient d’autant plus difficile de calculer les dimensions externes d’une boîte (nécessaires pour savoir où placer chaque boîte) que le nombre de fonctionnalités HTML supportées croît. Finalement, pour supporter tout HTML, GraphViz aurait à réimplémenter tout un moteur de rendu HTML d’un navigateur.
Sinon, il nous reste [https://www.graphviz.org/ GraphViz], mais le support de cette bibliothèque pour le HTML est pour le moins limité. Cela peut se comprendre puisqu’il devient d’autant plus difficile de calculer les dimensions externes d’une boîte (nécessaires pour savoir où placer chaque boîte) que le nombre de fonctionnalités HTML supportées croît. Finalement, pour supporter tout HTML, GraphViz aurait à réimplémenter tout un moteur de rendu HTML d’un navigateur, ce qui nous rapproche de la solution ''mermaid-cli''.


Voici quelques ressources intéressantes relatives à GraphViz :
Voici quelques ressources intéressantes relatives à GraphViz :
Ligne 47 : Ligne 47 :
* [http://www.graphviz.org/documentation/ Documentation générale de GraphViz]
* [http://www.graphviz.org/documentation/ Documentation générale de GraphViz]
Si on voulait reproduire ton exemple fait avec Mermaid, voici ce que ça pourrait donner :
Si on voulait reproduire ton exemple fait avec Mermaid, voici ce que ça pourrait donner :
 
[[Fichier:Exemple_de_flowchart_utilisant_GraphViz.png|frameless|right|upright=0.8]]<pre>
<pre>
digraph {
digraph {
     node[color="#9370DB", fillcolor="#ECECFF", fontname="Liberation Sans"];
     node[color="#9370DB", fillcolor="#ECECFF", fontname="Liberation Sans"];