| name | mermaid-ascii |
| description | Mermaid 圖表 ASCII 渲染工具。Use for: (1) 將 Mermaid 圖表轉為純文字 ASCII, (2) 在不支援圖形的環境中顯示流程圖, (3) 文件中嵌入文字版圖表 |
Mermaid ASCII Renderer
純 Python 實現 Mermaid 圖表的 ASCII 渲染工具。
功能
- 支援 Mermaid flowchart、state diagram、sequence diagram、class diagram、ER diagram 等圖表類型
- ASCII 和 Unicode 雙輸出格式
- 支援檔案和 stdin 輸入
- 命令列工具和 Python 模組雙介面
套件結構
mermaid-ascii 是一個完整的 Python 套件(使用 hatchling 打包系統),包含以下元件:
.claude/skills/mermaid-ascii/
├── pyproject.toml # 套件配置(PEP 517 標準)
├── SKILL.md # 本文件
├── mermaid_ascii/ # Python 套件
│ ├── __init__.py # 套件入口,導出公開 API
│ ├── mermaid_ascii_renderer.py # 核心渲染引擎
│ └── scripts/
│ ├── __init__.py
│ ├── __main__.py # 命令列模組入口(python -m mermaid_ascii)
│ └── render.py # CLI 指令碼(mermaid-ascii 命令)
└── .venv/ # 虛擬環境
安裝方式
開發環境安裝(推薦)
uv pip install -e .
mermaid-ascii --input diagram.mmd --unicode
使用 uv 直接運行(無需安裝)
uv run -C /path/to/mermaid-ascii --input diagram.mmd --unicode
cat diagram.mmd | uv run -C /path/to/mermaid-ascii --ascii
套件發布後的使用方式
uv pip install mermaid-ascii
uv run --with mermaid-ascii mermaid-ascii --input diagram.mmd --unicode
支援的圖表類型
目前支援以下 5 種 Mermaid 圖表類型的 ASCII 和 Unicode 渲染:
| 圖表類型 | 描述 | 主要用途 |
|---|
| Flowchart | 流程圖 | 表示系統或過程的流程和決策邏輯 |
| State Diagram | 狀態圖 | 表示對象或系統的不同狀態及其轉移 |
| Sequence Diagram | 序列圖 | 表示參與者之間的時間序列交互 |
| Class Diagram | 類別圖 | 表示系統中的類別結構和關係 |
| ER Diagram | 實體關係圖 | 表示資料庫設計中的實體和關係 |
詳細的圖表類型說明、支援的元素和使用範例請參考 references/supported-diagrams.md。
使用方式
命令列(已安裝情況下)
mermaid-ascii --input diagram.mmd --unicode
mermaid-ascii --input diagram.mmd --ascii
cat diagram.mmd | mermaid-ascii --unicode
mermaid-ascii --version
Python 模組方式
基本用法
from mermaid_ascii import render_mermaid
diagram = """
flowchart TD
A[開始]
B[處理]
C[結束]
A --> B
B --> C
"""
output = render_mermaid(diagram)
print(output)
進階用法(使用渲染器類別)
from mermaid_ascii import MermaidAsciiRenderer
diagram = """
flowchart TD
A[開始]
B[處理]
C[結束]
A --> B
B --> C
"""
renderer = MermaidAsciiRenderer()
renderer.parse(diagram)
output = renderer.render()
print(output)
使用 Python 模組方式執行命令列
python -m mermaid_ascii --input diagram.mmd --unicode
cat diagram.mmd | python -m mermaid_ascii --ascii
命令列選項
輸入選項
--input FILE, -i FILE
- 指定輸入 Mermaid 檔案路徑
- 省略時從標準輸入(stdin)讀取
- 支援相對和絕對路徑
輸出格式選項
-
--ascii
- 輸出純 ASCII 字元(無 Unicode 方框字元)
- 適用於不支援 Unicode 的終端環境
- 與
--unicode 互斥
-
--unicode
- 輸出 Unicode 方框字元(預設行為)
- 提供更好的視覺效果
- 與
--ascii 互斥
其他選項
Last Updated: 2026-03-02
Version: 1.0.0
修改 source 後必須重新安裝
重要:本 skill 透過 uv tool install 安裝為獨立 CLI,source(本目錄)與 installed(~/.local/share/uv/tools/<package>/)是兩份獨立 Python package。修改 source 後若未 reinstall,CLI 仍使用 stale installed 版本,新增的函式會 AttributeError 或被 hasattr 包裝靜默吞掉(W11-037 根因)。
修復指令:
cd .claude/skills/<本 skill 目錄> && uv tool install . --force --reinstall
自動偵測:每次 SessionStart 由 uv-tool-staleness-check-hook 比對 source vs installed SHA256,偵測 stale 時提示修復指令。對應 ticket-skill 本身另有 ticket-reinstall-hook 自動 reinstall。