Where Does Mermaid Render Natively? Tool Support in 2026

A tool-by-tool list of where a ```mermaid block renders on its own: GitHub, GitLab, Notion, Obsidian, Docusaurus, JupyterLab and more, plus the places that still need an image.

7 min read

Mermaid is text. Whether that text turns into a diagram depends on the program showing it. GitHub does it. Notion does it. Confluence does not, and neither does the Markdown preview built into VS Code.

This is the list we check before putting a diagram somewhere. "Native" means a fenced mermaid block renders with no setup. "Plugin" means a supported, documented add-on does it. "No" means you need an image or a link.

The fenced block every tool looks for

Across every tool in the table, the syntax is the same: a fenced code block with the language tag mermaid, lowercase.

```mermaid
flowchart LR
    Write[Write Mermaid] --> Commit[Commit to repo]
    Commit --> Render[GitHub renders it]
```
This exact block renders on GitHub, GitLab, Notion, Obsidian, and the others marked Yes.

Tool support table

Tool Native? Notes
GitHub Yes READMEs, issues, pull requests, discussions, wikis. Fenced block tagged mermaid.
GitLab Yes Markdown files, issues, merge requests, wikis.
Gitea / Forgejo Yes Repository Markdown and issues.
Azure DevOps Wiki Yes Subset of diagram types. Newer types may not render.
Bitbucket No No Mermaid in README or pull requests. Use an image.
Notion Yes Code block with language set to Mermaid. Preview, code, or split view.
Obsidian Yes Live Preview and Reading view. Version follows the Obsidian release.
Joplin Yes Rendered in the note preview.
Typora Yes Renders inline while you type.
Logseq Yes Fenced mermaid block in a block.
GitBook Yes Mermaid block in the editor.
Outline Yes Mermaid code block.
JupyterLab 4.1+ Yes Markdown cells. Not in classic Notebook or older JupyterLab.
Docusaurus Plugin First-party @docusaurus/theme-mermaid, one config line.
MkDocs Material Plugin pymdownx.superfences custom fence. Ships in the Material theme docs.
VitePress / Astro / Hugo Plugin Community plugin or a Markdown render hook.
Confluence No Needs a Marketplace macro app, or paste an image.
Jira No Needs a Marketplace app, or attach an image.
Google Docs / Slides No Insert a PNG. SVG is not accepted.
Microsoft Word / PowerPoint No Insert an SVG or PNG. SVG stays sharp when scaled.
Slack / Discord / Teams No Code blocks stay as text. Upload a PNG or share a link.
VS Code Markdown preview No Built-in preview skips Mermaid. A preview extension adds it.

Tools we could not confirm are left out rather than guessed. If your tool is missing, paste the block above into it. Either a diagram appears or it does not.

Code hosting and wikis

GitHub added Mermaid in 2022 and it now works everywhere Markdown does: READMEs, issue bodies, pull request descriptions, discussion threads, and wikis. GitLab and the Gitea family match it. Azure DevOps wikis render a subset; if a type fails there, check the type guide for an older equivalent (a flowchart instead of a block diagram, for instance).

Bitbucket is the notable gap. For a Bitbucket README, commit a PNG next to the Markdown and reference it with a normal image tag. Keep the .mmd source in the repo so the next person can edit it.

Note-taking apps

Notion renders Mermaid inside a code block once you set the block's language to Mermaid. You get a toggle for code, preview, or both side by side. Obsidian, Joplin, Typora, and Logseq all render fenced blocks in their preview or reading modes without any plugin.

The shared limitation: these apps use whatever Mermaid version they shipped with, and you cannot pick the theme or adjust layout spacing. When the default look is not good enough, render in MermanDraw, pick one of the seven themes, and paste the exported image into the note.

Documentation generators

Static site generators need one plugin, and in most cases it is a first-party one.

// docusaurus.config.js
module.exports = {
  markdown: { mermaid: true },
  themes: ['@docusaurus/theme-mermaid'],
};
Docusaurus: enable Markdown Mermaid and add the theme.
# mkdocs.yml
markdown_extensions:
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
MkDocs Material: register mermaid as a custom fence so the theme's bundled renderer picks it up.

VitePress, Astro, and Hugo each have community plugins or a documented render-hook recipe. The approach is the same in all three: intercept the fenced block at build time and either inject the Mermaid script or pre-render to SVG. Pre-rendering is faster for readers and does not depend on client JavaScript.

What to do where it does not render

Confluence, Jira, Google Docs, Office, and chat tools fall into this group. Decide between two options.

flowchart LR
    Source[Markdown file] --> Host{Host renders Mermaid?}
    Host -->|Yes| Native[Native diagram]
    Host -->|No| Image[Export PNG or SVG]
    Image --> Embed[Embed the image]
Mermaid diagram

Yes

No

Markdown file

Host renders Mermaid?

Native diagram

Export PNG or SVG

Embed the image

The decision in one diagram.
Try in editor →
  • Embed an image. Export SVG for Word, PowerPoint, and Keynote (scales cleanly). Export PNG for Google Docs, Google Slides, Slack, and email. The editor's PNG export is 2× resolution so it stays sharp on high-density screens.
  • Share a link. The Share button creates a page with the live diagram and an Open Graph preview image, so Slack and Teams show a thumbnail. Anyone can open it and edit a copy; no account needed. Links stay alive as long as someone views them at least once every 180 days.

For Confluence specifically there are Marketplace macro apps that render Mermaid inside a page. The Confluence and Jira post walks through the macro route and the image route.

Version differences

"Native" does not mean "identical". Each host bundles a specific Mermaid release and upgrades on its own schedule. Three things vary:

  • Diagram types. architecture-beta, block-beta, sankey-beta, and xychart-beta arrived in Mermaid 10 and 11. A host on an older version shows a parse error.
  • Syntax. Markdown strings in labels (["`**bold**`"]), new flowchart shapes, and stateDiagram-v2 features depend on version.
  • Appearance. Default fonts, colors, and spacing differ. A diagram that fits on one screen in GitHub may wrap differently in Notion.

If a diagram fails on a host but renders in the editor, it is almost always one of the first two. The common errors post covers the case where the code itself is wrong.

FAQ

Does GitHub render every Mermaid diagram type?

Most of them. GitHub updates its Mermaid version regularly, so flowchart, sequence, class, state, ER, Gantt, pie, mindmap, timeline and gitGraph all work. Types still marked beta upstream (architecture, block) can lag. Test in a draft issue before committing to a README.

Why does a diagram work in MermanDraw but not in my wiki?

Different Mermaid versions. MermanDraw tracks the current release; many wikis and note apps bundle an older one. The usual culprits are newer diagram types and newer syntax such as markdown strings in labels. Rewrite with the older syntax or embed an image.

Is there a way to embed Mermaid in a tool that does not support it?

Two ways. Export PNG or SVG from the editor and insert the image, or create a share link and paste it where the tool unfurls link previews. The share page shows the live diagram and keeps the source editable.

Does Markdown on its own render Mermaid?

No. Markdown is a text format. Rendering happens in whatever program displays the Markdown, and that program decides whether a fenced mermaid block becomes a diagram or stays as code.

Related