A
markdown-itplugin that adds support forgraphcode blocks to represent charts using human-friendly plain text.
With markdown-it-graph, you can write bar, line, pie, and dot (scatter) charts directly inside Markdown like this:
```graph bar
Jan | █████ 5
Feb | █████████ 8
Mar | █████████████ 12
```The square bar characters (e.g. █████) are optional and purely visual. The actual chart uses the numeric values.
And this will be transformed into:
<graph-block type="bar" data-graph='{"type":"bar","data":[{"label":"Jan","value":5},...]}'>
</graph-block>- Custom syntax that feels natural inside Markdown
- Supports
bar,line,pie, anddotchart types - Converts data into structured JSON for rendering
- Pairs perfectly with React (or any framework) for dynamic charts
npm install markdown-it-graphimport MarkdownIt from 'markdown-it'
import markdownItGraph from 'markdown-it-graph'
const md = new MarkdownIt()
md.use(markdownItGraph)
const html = md.render(\`
\`\`\`graph line
Mon | 2
Tue | 5
Wed | 8
\`\`\`
\`)Each graph block follows this format:
```graph [type]
Label | Value
```typeis optional. Defaults tobar.- Supported types:
bar,line,pie,dot - Each line is a label-value pair, separated by
|
This plugin only injects <graph-block> elements with structured data.
You render them however you like! Here's an example using react-chartjs-2:
import { Bar } from 'react-chartjs-2'
<GraphBlock type="bar" data={[{ label: 'Jan', value: 5 }, { label: 'Feb', value: 8 }]} />You can mount <graph-block> elements dynamically using ReactDOM.createRoot.
```graph pie
Chrome | 65
Safari | 20
Firefox | 10
Edge | 5
```MIT
This plugin was created to fill a gap between readable Markdown and easy data visualization — think of it like Markdown tables, but for charts.