WhiteKr/claude-plugin-mermaid
mermaid
一個 function-hook 外掛,將 Claude 回應中的 ```` ```mermaid ```` 程式碼區塊在終端 transcript 中渲染為 Unicode 方框圖表。對象是 `/show-me` 等技能輸出的 mermaid 程式碼。
關於這個 mod
mermaid
一個 function-hook 外掛,將 Claude 回應中的 ```mermaid 程式碼區塊在終端 transcript 中渲染為 Unicode 方框圖表。對象是 /show-me 等技能輸出的 mermaid 程式碼。
安裝
/plugin marketplace add WhiteKr/whitekr-claude-plugins
/plugin install mermaid@whitekr-claude-plugins
開發期間以 claude --plugin-dir <此資料夾> 載入。
行為
- 掛鉤
ui.render的AssistantMessage,將已閉合的```mermaid圍欄替換為 beautiful-mermaid ASCII 渲染器的繪製結果。已儲存的訊息(ctrl+o)不會改變,只有畫面會改變。 - 保留原文的情況:解析失敗、圖表寬度超過終端寬度、圍欄尚未閉合(串流中)。
- 標籤內的字面量
\n替換為空格(渲染器若將其繪成換行,方框會破裂)。 - 支援的圖表遵循 beautiful-mermaid ASCII 渲染器支援的範圍(flowchart、sequence、class、ER、state 等)。
選項
在 /config 的 plugin 項目或 settings 的 pluginConfigs.mermaid.options 中:
useAscii(boolean,預設 false):以純 ASCII(+-|>)繪製,而非方框字元。當終端或字型將─│▶等 ambiguous-width 字元繪成 2 格導致行錯位時開啟。
開發
hooks/hooks.js 是 src/hooks.js 加上 beautiful-mermaid ASCII 路徑經 esbuild 打包的產物,且納入提交(marketplace 安裝可直接使用,無需建置)。
npm i
npm test # build + test/hooks.test.mjs
安裝
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add WhiteKr/claude-plugin-mermaid claude plugin install mermaid@whitekr-claude-plugins
原文 / README
mermaid
Claude 응답의 ```mermaid 코드 블록을 터미널 transcript에서 유니코드 박스 다이어그램으로 바꿔 그리는 function-hook 플러그인. /show-me 같은 스킬이 내는 mermaid 코드가 대상이다.
설치
/plugin marketplace add WhiteKr/whitekr-claude-plugins
/plugin install mermaid@whitekr-claude-plugins
개발 중에는 claude --plugin-dir <이 폴더> 로 로드한다.
동작
ui.render의AssistantMessage를 훅해 닫힌```mermaid펜스를 beautiful-mermaid ASCII 렌더러로 그린 결과로 치환한다. 저장된 메시지(ctrl+o)는 바뀌지 않고 화면만 바뀐다.- 원문을 유지하는 경우: 파싱 실패, 다이어그램 폭이 터미널 폭을 넘김, 펜스가 아직 안 닫힘(스트리밍 중).
- 라벨 안의 리터럴
\n은 공백으로 바꾼다(렌더러가 줄바꿈으로 그리면 박스가 깨짐). - 지원 다이어그램은 beautiful-mermaid ASCII 렌더러가 지원하는 범위(flowchart, sequence, class, ER, state 등)를 따른다.
옵션
/config 의 plugin 항목 또는 settings pluginConfigs.mermaid.options:
useAscii(boolean, 기본 false): 박스 문자 대신 순수 ASCII(+-|>)로 그린다. 터미널·폰트가─│▶같은 ambiguous-width 글자를 2칸으로 그려 줄이 어긋날 때 켠다.
개발
hooks/hooks.js 는 src/hooks.js + beautiful-mermaid ASCII 경로를 esbuild 로 묶은 산출물이며 커밋 대상이다(마켓플레이스 설치는 빌드 없이 그대로 쓴다).
npm i
npm test # build + test/hooks.test.mjs
