Skip to content

Instantly share code, notes, and snippets.

@fkurz
Last active April 15, 2024 00:11
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fkurz/3a7380c155bdabb9c47707d4989da9e0 to your computer and use it in GitHub Desktop.
Save fkurz/3a7380c155bdabb9c47707d4989da9e0 to your computer and use it in GitHub Desktop.
Mermaid Diagram Image Export

We can export a mermaid diagram to PNG very simply using the official Mermaid CLI Tool.

Installation via npm

npm i -g mermaid.cli

Usage:

mmdc -i ${input_file_location} -o ${output_file_location}

Example

echo 'sequenceDiagram\nAlice ->> Bob: Hey, Bob!\nBob ->> Alice: Hey there, Alice!' > /tmp/alice-bob.mmd
mmdc -i /tmp/alice-bob.mmd -o /tmp/alice-bob.png
open /tmp/alice-bob.png

Bonus Round

We can combine using mmdc to create images from Mermaid diagrams with creating data URLs from the command line (as illustrated here) to include Mermaid diagrams into markdown files where the rendering engine does not support mermaid diagrams but does support data URIs.

data_url="data:image/png;base64,$(base64 < /tmp/alice-bob.png)"

Result of this is the following base 64 string

data:image/png;base64,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

This can be embedded as an image in markdown engines which support image data URIs as follows:

  ![alice-bob](data:image/png;base64,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)

Note: Using this technique will obviously bloat your Markdown file. So, use at your own discretion.

@rhodelta66
Copy link

Hi Friedrich,

I have a question about the PNG resolution. I tried to create a PNG for my .mmd which is a little bigger than usual. When I enlarge the resulting PNG, the quality is a little bit too low. Do you have suggestions on how to enhance the quality?

This is my sample .mmd

graph TD
A[Start] --> B[Declare Variables]
B --> C[Select from JSON and populate #tracy_in]
C --> D[Check if delivery company = 'Ensign Delivery']
D -->|if YES| E[Set ffa_id]
D -->|if NO| Z1[ERROR: Unknown ffa check API settings wmsx.nl]
E --> F[Check if ffa_id exists in xcompany]
F -->|if YES| G[Insert data into #stock_check from #tracy_in]
F -->|if NO| Z2[ERROR: API CHECK WITH CONSULTANT. FFA DOES NOT EXIST]
G --> H{Check existence in #stock_check}
H -->|if YES| I[Set rowkey and select data]
H -->|if NO| AA[Drop #stock_check]
I --> J[Check if fustcode exists in xfust]
J -->|if YES| K[Get xfust_id]
J -->|if NO| L[Insert into xfust]
K --> M[Check if lookup exists in xstock]
M -->|if YES| N[Check if pallet_status exists for xstock_id and batch_code]
M -->|if NO| O[Check if sku exists in xstock]
N -->|if YES| P[Update #tracy_in with xstock_id, client_id]
N -->|if NO| Z3[ERROR: no stock available for article]
O -->|if YES| N
O -->|if NO| Q[Exec create_wms_micro_item]
P --> H
Q --> M
AA --> BB[Insert data into #lot_check from #tracy_in]
BB --> CC{Check existence in #lot_check}
CC -->|if YES| DD[Set rowkey and select data]
CC -->|if NO| ZZ[Drop #lot_check]
DD --> EE[Check if item_lotnr is null]
EE -->|if YES| FF[Get lot_id without lot number]
EE -->|if NO| GG[Get lot_id with lot number]
FF --> HH[Check if lot_id exists]
GG --> HH
HH -->|if YES| II[Update #tracy_in with lot_id]
HH -->|if NO| Z4[ERROR: Unexpected container data]
II --> CC
ZZ --> JJ[Insert data into #dest_check from #tracy_in]
JJ --> KK{Check existence in #dest_check}
KK -->|if YES| LL[Set rowkey and select data]
KK -->|if NO| YY[Drop #dest_check]
LL --> MM[Check if recipient_name is null]
MM -->|if YES| Z5[ERROR: No destination]
MM -->|if NO| NN[Check if recipient_name exists in xlocation]
NN -->|if YES| OO[Update #tracy_in with cmr_dest_loc_id]
NN -->|if NO| PP[Insert into xlocation]
OO --> KK
PP --> NN
YY --> QQ[Select from #tracy_in]
QQ --> RR[Insert into api_outbound_request]
RR --> SS[Insert into api_outbound_request_details]
SS --> TT[Set result with #tracy_in]
TT --> UU[Drop #tracy_in and select into _posted_ensingn_outbound]
UU --> VV[End]

@fkurz
Copy link
Author

fkurz commented Jun 25, 2023

Hi, rhodelta66! Have you tried using the mmdc parameters (--width, ––height, or --scale) to increase the size of the image created from your mermaid diagram?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment