====== flowcharts Plugin ======
---- plugin ----
description: Add flowcharts and diagrams to your DokuWiki with an intuitive syntax — based on mermaidjs
author : jakob1111
email : mail@jakobschwichtenberg.com
type : syntax
lastupdate : 2020-07-30
compatible : Igor, Hogfather, frusterick manners, greebo,
depends :
conflicts :
similar : diagram, a2s, flowchartjs, graphviz, ditaa, sequencediagram, plantuml
tags : diagram, images, java, media, chart, svg
downloadurl: https://github.com/jakob1111/dokuwiki-plugin-flowcharts/zipball/master
bugtracker : https://github.com/jakob1111/dokuwiki-plugin-flowcharts/issues
sourcerepo : https://github.com/jakob1111/dokuwiki-plugin-flowcharts/
donationurl:
screenshot_img : https://github.com/jakob1111/dokuwiki-plugin-flowcharts/raw/master/screnshotflowchart.png
----
The diagrams and flowcharts are generated with [[https://mermaidjs.github.io/|mermaidjs.github.io]]
**With the current version of the plugin it is crucial to disable the following entity replacements from the DokuWiki**. Therefore, add this local configuration file:
<->
->
<-
---
--
Otherwise, DokuWiki will render ''%%->%%'' to -> and then the diagrams are not rendered correctly since, e.g. -> is the wrong syntax and we need ''%%->%%'' etc. (For more information, see [[:entities]] and also [[https://github.com/dokuwiki/dokuwiki/blob/master/conf/entities.conf|conf/entities.conf]])
Alternatively, you can add the arrows in the diagram using
%%-->%%
===== Installation =====
Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
===== Examples/Usage =====
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
Will be rendered to
{{https://github.com/jakob1111/dokuwiki-plugin-flowcharts/raw/master/examplediagram.png}}
A nice feature is that each element of a diagram can be made clickable by using
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
click A "SOMEPAGE"
Clicking on ''A'' will take you to %%http://yoururl.com/SOMEPAGE%%.
The next example shows how to get multiple words including new-lines in the boxes. Two of these boxes provide a clickable link to a local DokuWiki page.
flowchart TD;
a["Would you like
me to help you?"];
b["What can I
help you with?"];
c["Ok, no problem.
Please do your homework."];
a -- No --> c;
a -- Yes --> b;
click a "../path/to/local_wiki_page_1"
click b "../path/to/local_wiki_page_2"
It renders to this
{{ https://osbit.nl/various/2023-05-10_09_30_50_test.png }}
The next code shows a variation of the last diagram.
flowchart TD;
a["Would you like
me to help you?"];
b["What can I
help you with?"];
c["Ok, no problem.
Please do your homework."];
a --> No;
a --> Yes;
Yes --> b;
No --> c;
click a "../path/to/local_wiki_page_1"
click b "../path/to/local_wiki_page_2"
Showing
{{ https://osbit.nl/various/2023-05-10_08_58_18_test.png }}
===== Syntax =====
For further details on the syntax, see [[https://mermaidjs.github.io/|mermaidjs.github.io]]. Diagrams can be built in realtime using [[https://mermaidjs.github.io/mermaid-live-editor/|Mermaid Live Editor]].
===== Remarks =====
For Igor the diagram rendered was very small. I changed the following to the plugin's stylesheet called ''mermaid-override.css'' to extend the diagram vertically. //-- JohnG//
.mermaid svg {
width: 100%;
height: 40vh; /* Causes schema to fill 40% of the viewable height. */
}
This is good for vertical diagrams, for horizontal diagrams you might want to set height to 100% which will avoid empty space above and below if your diagram does not fill "40vh". //-- thalueng//
Better yet: Set ''height: auto;'' in the above snippet (because it gets set to 1.2em by Dokuwiki for all svg)