AlexP
AlexP

Reputation: 647

How to install Mermaid to render flowcharts in markdown?

I'm trying to render a flowchart in a markdown file using Mermaid to place into a ReadMe.md file in my GitHub repository.

In this link (https://unpkg.com/[email protected]/README.md), there's an example code snippet for the Mermaid installation:

    ```
    https://unpkg.com/[email protected]/dist/
    ```

I included that code, then tried to make the flowchart in the next code snippet:

    ```
    graph TD;
        A-->B;
        A-->C;
        B-->D;
        C-->D;
    ```

But all it does is print that text out in the markdown file when I preview it.

How can I achieve my stated results or is not possible?

Upvotes: 30

Views: 44151

Answers (6)

Charles
Charles

Reputation: 11796

I use this snippet and it renders with mdpdf.

# My mermaid test

<div>
  <pre class="mermaid">
    flowchart LR
        A-- This is the text! ---B
  </pre>
  <script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
  </script>
</div>

Upvotes: 1

VonC
VonC

Reputation: 1328182

Feb. 2022, Markdown pages now officially support Mermaid:
(Note: Aug. 2022, GitHub wiki pages too)

See:

Include diagrams in your Markdown files with Mermaid

Mermaid is a JavaScript based diagramming and charting tool that takes Markdown-inspired text definitions and creates diagrams dynamically in the browser. Maintained by Knut Sveidqvist, it supports a bunch of different common diagram types for software projects, including flowcharts, UML, Git graphs, user journey diagrams, and even the dreaded Gantt chart.

Working with Knut and also the wider community at CommonMark, we’ve rolled out a change that will allow you to create graphs inline using Mermaid syntax:

Example

Gist supports mermaid too.


Jan 2022, while GitHub Markdown does not yet support Mermaid, this is on the roadmap:

"Mermaid diagrams can be displayed within Markdown #372"

Just as language-specific code blocks can be added to Markdown, you'll be able to add a Mermaid diagram using a code block that specifies mermaid as its language identifier. For example:

graph TD;
   A-->B;
   A-->C;
   B-->D;
   C-->D;

The Markdown code block above uses Mermaid syntax to display this flowchart in the rendered Markdown:

https://user-images.githubusercontent.com/1767415/147986289-f8283c0b-aa5e-4381-bd69-876edeef12d9.png

And:

Another example from the Mermaid website shows how straightforward text can be used to create rich diagrams:

sequenceDiagram
   autonumber
   Alice->>John: Hello John, how are you?
   loop Healthcheck
       John->>John: Fight against hypochondria
   end
   Note right of John: Rational thoughts!
   John-->>Alice: Great!
   John->>Bob: How about you?
   Bob-->>John: Jolly good!

https://user-images.githubusercontent.com/1767415/148230142-63d64ec6-8157-4578-a4a8-a63e386b5cb9.png

Upvotes: 14

pktiuk
pktiuk

Reputation: 270

Another solution in moving your repository to gitlab. It natively supports mermaid in all markdown files.

Gitlab Markdown Tutorial

Upvotes: 7

siddharthkumar patel
siddharthkumar patel

Reputation: 81

You can use mermaid-cli https://github.com/mermaidjs/mermaid.cli for generating diagrams. you can produce .svg, .png or .pdf file whatever you want.

Run following command after installing mermaid-cli

mmdc -i input.mmd -o output.png

here input.mmd is your mermaid file which contains

 graph TD;
        A-->B;
        A-->C;
        B-->D;
        C-->D;

in your case.

Upvotes: 8

Alex Mercier
Alex Mercier

Reputation: 171

I created a Firefox & Chrome extension that wasn't available at the time of the first answer: Github + Mermaid

To use it you will need to specify mermaid as a language:

```mermaid
graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
```

This works on:

  • PR and issues
  • Comments
  • Gists

(both on preview and save)

PS: I'm not sure whether it's right or not to advertise my own work here, but I feel it answers the questions.

Upvotes: 17

Jannik Buhr
Jannik Buhr

Reputation: 1957

Unfortunately, github-flavoured markdown doesn't support rendering of mermaid graphs. See this issue for more information and finding comfort in other peoples quest of this feature ;)

If your are using VS Code, you can use this extension to preview your mermaid code blocks inside markdown but note that this does not render once you put it on github. To include the chart on github you will have to render it to a file, though someone suggested somehow using the online mermaid editor to render it and retrieve an URL to a rendered version.

Actually, let me try to insert the example chart from the link on the previousely mentioned page... and, no. We get a Failed to upload image; the format is not supported-error.

So you will need to save it as an image first.

Upvotes: 14

Related Questions