# Mermaid.js pour faire des graphiques en markdown



Une librairie sympa qui permet de faire via du code des graphiques de plusieurs types
- flow
- sequence
- gantt
- pie
- class
- state
- user
- git
On trouve toutes les infos sur https://mermaid-js.github.io/mermaid/ et pour faire des tests sur https://mermaid-js.github.io/mermaid-live-editor/
Le principale avantage est qu'il existe des plugins pour
- redmine
- gitea
## plugin redmine
Au niveau de son Dockerfile il suffit de rajouter
```
WORKDIR /usr/src/redmine/plugins
RUN git clone https://github.com/taikii/redmine_mermaid_macro.git redmine_mermaid_macro
```
pour l'utilisation
```
{{mermaid
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
}}
```
## plugin gitea
Il est possible de customizer les pages de gitea, par exemple pour rajouter la possibilité d'utiliser mermaid.js il suffit de créer un fichier dans /data/gitea/templates/custom/footer.tmpl contenant
```html
{{if .RequireHighlightJS}}
{{end}}
```
et par la suite dans un fichier .md d'ajouter le code
```mermaid
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
```
plus d'info sur https://docs.gitea.io/en-us/customizing-gitea/