@md-plugins/md-plugin-mermaid

A markdown-it plugin for rendering Mermaid diagrams.
8,969 4
Install
npm install @md-plugins/md-plugin-mermaid
Latest Version:2.2.0
License:MIT
Last Updated:Sep 16, 2026
Links: GitHub  ·  npm
Maintainer: hawkeye64

@md-plugins/md-plugin-mermaid

npm version npm downloads npm monthly downloads license

GitHub Sponsors button PayPal donate button

Discord X

A Markdown-It plugin that renders Mermaid fenced code blocks. It is designed for Q-Press and Vue-based Markdown pages, while still allowing plain MarkdownIt users to render Mermaid-compatible <pre> blocks.

Features

  • Converts mermaid and mmd fenced code blocks into a configurable component.
  • Passes fence class metadata through to the rendered component or <pre> element.
  • Adds page import statements for Q-Press generated Vue pages.
  • Supports a plain <pre class="mermaid"> render mode for custom MarkdownIt pipelines.

Installation

Install the plugin via your preferred package manager:

# with pnpm:
pnpm add @md-plugins/md-plugin-mermaid
# with bun:
bun add @md-plugins/md-plugin-mermaid
# with Yarn:
yarn add @md-plugins/md-plugin-mermaid
# with npm:
npm install @md-plugins/md-plugin-mermaid

If you render Mermaid in the browser, install Mermaid in the consuming app:

pnpm add mermaid

Usage

Q-Press or Vue Component Mode

import MarkdownIt from 'markdown-it'
import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid'

const md = new MarkdownIt()
md.use(mermaidPlugin, {
  componentName: 'MarkdownMermaid',
})

Raw MarkdownIt Mode

import MarkdownIt from 'markdown-it'
import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid'

const md = new MarkdownIt()
md.use(mermaidPlugin, {
  renderMode: 'pre',
})

Then initialize Mermaid in your application after the HTML is mounted.

Markdown

```mermaid
graph TD
  A[Write Markdown] --> B[Render Diagram]
```

Use Markdown fence classes when a diagram needs responsive presentation or custom styling:

```mermaid {.desktop-diagram}
flowchart LR
  A --> B
```

```mermaid {.mobile-diagram}
flowchart TD
  A --> B
```

Options

Option Type Default Description
languages string[] ['mermaid', 'mmd'] Fence languages treated as Mermaid diagrams.
renderMode 'component' | 'pre' 'component' Output mode for Mermaid diagrams.
componentName string 'MarkdownMermaid' Component used in component mode.
codeProp string 'code' Component prop that receives Mermaid source.
preClass string 'mermaid' CSS class used in pre mode.
pageScripts string[] Q-Press component import Page imports added to generated Vue components.

Support

If md-plugin-mermaid is useful in your workflow and you want to support ongoing maintenance:

License

This project is licensed under the MIT License. See the LICENSE file for details.

Related Packages

@md-plugins/md-plugin-image

A markdown-it plugin for handling images.

15,902 4
@md-plugins/md-plugin-inlinecode

A markdown-it plugin for handling inline code.

13,671 4
@md-plugins/md-plugin-frontmatter

A markdown-it plugin for handling frontmatter in markdown files.

13,642 4
@md-plugins/md-plugin-headers

A markdown-it plugin for handling headers (H1-H6).

13,577 4
@md-plugins/md-plugin-table

A markdown-it plugin for handling tables with custom tag and styles.

13,563 4

Version History

Version Released License
2.2.0 MIT
2.1.0 MIT
2.0.4 MIT
2.0.3 MIT
2.0.2 MIT
Pre-releases (30)
Version Released License
0.1.0-rc.19 MIT
0.1.0-rc.18 MIT
0.1.0-rc.17 MIT
0.1.0-rc.16 MIT
0.1.0-rc.15 MIT