<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.lololand.org/index.php?action=history&amp;feed=atom&amp;title=D%C3%A9ploiement_Mermaid_PlantUML_BPMN_JS</id>
	<title>Déploiement Mermaid PlantUML BPMN JS - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lololand.org/index.php?action=history&amp;feed=atom&amp;title=D%C3%A9ploiement_Mermaid_PlantUML_BPMN_JS"/>
	<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=D%C3%A9ploiement_Mermaid_PlantUML_BPMN_JS&amp;action=history"/>
	<updated>2026-05-25T19:40:34Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=D%C3%A9ploiement_Mermaid_PlantUML_BPMN_JS&amp;diff=17&amp;oldid=prev</id>
		<title>Maintenance script : Documentation détaillée du déploiement Mermaid, PlantUML et BPMN JS</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=D%C3%A9ploiement_Mermaid_PlantUML_BPMN_JS&amp;diff=17&amp;oldid=prev"/>
		<updated>2026-03-18T22:00:57Z</updated>

		<summary type="html">&lt;p&gt;Documentation détaillée du déploiement Mermaid, PlantUML et BPMN JS&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Déploiement de Mermaid, PlantUML et BPMN JS dans MediaWiki =&lt;br /&gt;
&lt;br /&gt;
Cette page documente le déploiement réalisé sur ce wiki pour permettre le rendu de schémas &amp;#039;&amp;#039;&amp;#039;Mermaid&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;PlantUML&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;BPMN JS&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
L&amp;#039;objectif est de pouvoir écrire des schémas directement dans des pages MediaWiki, puis les rendre côté navigateur sans devoir téléverser une image statique à chaque modification.&lt;br /&gt;
&lt;br /&gt;
== Vue d&amp;#039;ensemble ==&lt;br /&gt;
Le déploiement repose sur quatre éléments :&lt;br /&gt;
* une configuration MediaWiki autorisant les blocs HTML nécessaires&lt;br /&gt;
* un script global chargé via [[MediaWiki:Common.js]]&lt;br /&gt;
* une feuille de style globale via [[MediaWiki:Common.css]]&lt;br /&gt;
* des conventions de balisage par type de diagramme&lt;br /&gt;
&lt;br /&gt;
== Modifications MediaWiki ==&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
Le paramètre suivant a été activé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgRawHtml = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela permet d&amp;#039;utiliser des blocs HTML comme &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;amp;lt;pre class=&amp;quot;...&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; dans les pages du wiki.&lt;br /&gt;
&lt;br /&gt;
=== Conséquence sécurité ===&lt;br /&gt;
Cette option simplifie beaucoup l&amp;#039;intégration, mais elle est plus permissive.&lt;br /&gt;
Dans ce wiki, cela reste acceptable car l&amp;#039;édition anonyme est désactivée.&lt;br /&gt;
Pour un environnement plus ouvert, il faudrait préférer :&lt;br /&gt;
* une extension dédiée&lt;br /&gt;
* ou des balises parser custom&lt;br /&gt;
* ou un filtrage beaucoup plus strict&lt;br /&gt;
&lt;br /&gt;
== Déploiement de Mermaid ==&lt;br /&gt;
=== Principe ===&lt;br /&gt;
Mermaid est chargé côté navigateur depuis un CDN, puis le script global cherche les blocs :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le contenu texte est ensuite rendu en SVG dans la page.&lt;br /&gt;
&lt;br /&gt;
=== Chargement ===&lt;br /&gt;
Le chargement est fait depuis [[MediaWiki:Common.js]] avec une URL de type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Avantages ===&lt;br /&gt;
* édition facile en texte&lt;br /&gt;
* nombreux types de schémas&lt;br /&gt;
* très pratique pour la documentation technique et fonctionnelle&lt;br /&gt;
&lt;br /&gt;
=== Limites ===&lt;br /&gt;
* dépend d&amp;#039;un CDN&lt;br /&gt;
* certains schémas complexes demandent une syntaxe stricte&lt;br /&gt;
* ce n&amp;#039;est pas du BPMN strict&lt;br /&gt;
&lt;br /&gt;
== Déploiement de PlantUML ==&lt;br /&gt;
=== Principe ===&lt;br /&gt;
PlantUML est aussi écrit directement dans le wiki, dans un bloc :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-plantuml&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte est encodé côté client, puis envoyé à un service de rendu SVG compatible PlantUML.&lt;br /&gt;
&lt;br /&gt;
=== Chargement ===&lt;br /&gt;
Le navigateur charge :&lt;br /&gt;
* un encodeur JS :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
https://cdn.jsdelivr.net/npm/plantuml-encoder/dist/plantuml-encoder.min.js&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* puis utilise un backend de rendu SVG :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
https://kroki.io/plantuml/svg/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Avantages ===&lt;br /&gt;
* très riche pour diagrammes UML, séquence, activité, architecture&lt;br /&gt;
* versionnable en texte&lt;br /&gt;
* pratique pour la documentation technique&lt;br /&gt;
&lt;br /&gt;
=== Limites ===&lt;br /&gt;
* dépend actuellement d&amp;#039;un service de rendu externe&lt;br /&gt;
* moins approprié que BPMN JS pour du BPMN natif&lt;br /&gt;
&lt;br /&gt;
== Déploiement de BPMN JS ==&lt;br /&gt;
=== Principe ===&lt;br /&gt;
BPMN JS permet d&amp;#039;afficher un vrai diagramme BPMN à partir d&amp;#039;un XML BPMN intégré dans la page.&lt;br /&gt;
&lt;br /&gt;
Structure utilisée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;oc-bpmn-container&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;oc-bpmn-viewer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;pre class=&amp;quot;oc-bpmn-xml&amp;quot;&amp;gt;... XML BPMN ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le bloc XML est masqué après chargement et rendu dans la zone &amp;lt;code&amp;gt;oc-bpmn-viewer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Chargement ===&lt;br /&gt;
Le viewer est chargé depuis :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
https://cdn.jsdelivr.net/npm/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Avantages ===&lt;br /&gt;
* rendu BPMN natif&lt;br /&gt;
* zoom et navigation&lt;br /&gt;
* adapté aux workflows métier sérieux&lt;br /&gt;
&lt;br /&gt;
=== Limites ===&lt;br /&gt;
* nécessite du XML BPMN correct&lt;br /&gt;
* plus verbeux à écrire à la main&lt;br /&gt;
* dépend actuellement d&amp;#039;un CDN&lt;br /&gt;
&lt;br /&gt;
== Rôle de MediaWiki:Common.js ==&lt;br /&gt;
Le script global fait plusieurs choses :&lt;br /&gt;
* charge les bibliothèques JS externes&lt;br /&gt;
* détecte les blocs Mermaid / PlantUML / BPMN&lt;br /&gt;
* transforme ces blocs en rendus visuels&lt;br /&gt;
* affiche un message d&amp;#039;erreur si le rendu échoue&lt;br /&gt;
&lt;br /&gt;
== Rôle de MediaWiki:Common.css ==&lt;br /&gt;
La feuille de style ajoute :&lt;br /&gt;
* une présentation homogène des diagrammes&lt;br /&gt;
* des bordures et marges lisibles&lt;br /&gt;
* une zone dédiée pour le viewer BPMN&lt;br /&gt;
* un style pour les messages d&amp;#039;erreur&lt;br /&gt;
&lt;br /&gt;
== Dépendances externes actuelles ==&lt;br /&gt;
Le déploiement actuel dépend de ressources externes :&lt;br /&gt;
* Mermaid via jsDelivr&lt;br /&gt;
* plantuml-encoder via jsDelivr&lt;br /&gt;
* BPMN JS via jsDelivr&lt;br /&gt;
* rendu PlantUML via Kroki&lt;br /&gt;
&lt;br /&gt;
== Évolutions possibles ==&lt;br /&gt;
Pour rendre la solution plus autonome, on pourrait :&lt;br /&gt;
* héberger localement les assets JS&lt;br /&gt;
* déployer un service Kroki local&lt;br /&gt;
* remplacer l&amp;#039;usage de raw HTML par une vraie extension MediaWiki&lt;br /&gt;
* ajouter des templates wiki pour standardiser les schémas&lt;br /&gt;
&lt;br /&gt;
== Cas d&amp;#039;usage recommandés ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mermaid&amp;#039;&amp;#039;&amp;#039; : flowcharts, séquences simples, ERD, états, gantt, gitgraph&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PlantUML&amp;#039;&amp;#039;&amp;#039; : UML, séquence, composants, activités, architecture&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BPMN JS&amp;#039;&amp;#039;&amp;#039; : processus métier BPMN structurés&lt;br /&gt;
&lt;br /&gt;
== Pages d&amp;#039;exemple existantes ==&lt;br /&gt;
* [[Exemple Mermaid]]&lt;br /&gt;
* [[Exemple PlantUML]]&lt;br /&gt;
* [[Exemple BPMN JS]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Le déploiement actuel offre une solution souple et rapide pour documenter des workflows et des architectures directement dans le wiki.&lt;br /&gt;
Il privilégie la facilité de mise en place, avec un compromis assumé : dépendances externes et usage de &amp;lt;code&amp;gt;$wgRawHtml&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>