再不用怕 Markdown 中的繪圖了,GitHub 官方支持 Mermaid 圖表繪制工具

再不用怕 Markdown 中的繪圖了,GitHub 官方支持 Mermaid 圖表繪制工具

開發(fā)人員已能夠在 GitHub 中使用 Mermaid 圖表工具。

Mermaid 作為圖表繪制工具越來越多的受到開發(fā)人員的歡迎。它基于 Javascript ,通過解析類 Markdown 的文本語法來實現(xiàn)圖表的創(chuàng)建和動態(tài)修改,可以使用這個工具來進行包括流程圖,時序圖等圖表的繪制??梢詫⑵淇醋鍪?Markdown 的一個插件。

截至目前,用戶想要在 GitHub 上的 Markdown 文件中包含圖片 / 圖表,唯一的做法是通過嵌入圖像來實現(xiàn)。目前 Mermaid 由 Knut Sveidqvist 進行維護。

Knut Sveidqvist

新的一年,GitHub 開發(fā)者關(guān)系總監(jiān) Martin Woodward 在官方博客表示,從現(xiàn)在開始,用戶可以通過 GitHub 體驗到一項原生功能 —— 支持基于 JavaScript 的 Mermaid 圖表和流程圖生成工具。

現(xiàn)在用戶通過使用 Mermaid 語法就可以創(chuàng)建內(nèi)聯(lián)圖,例如:

上面的原始代碼塊在渲染后,在 Markdown 中顯示如圖:

Mermaid 如何工作?

當(dāng)代碼遇到標(biāo)記為 mermaid 的代碼塊時,會生成一個 iframe,iframe 采用原始 Mermaid 語法并傳遞給 Mermaid.js,然后將代碼轉(zhuǎn)換為本地瀏覽器中的圖表。實現(xiàn)這一過程需要如下兩個階段:

  • GitHub 的 HTML pipeline;
  • 內(nèi)部文件渲染服務(wù)。

首先,用戶向 HTML pipeline 中添加了一個過濾器,該過濾器通過查找具有 mermaid 語言特征的原始 pre 標(biāo)簽,并將其替換為漸進式工作的模板,這樣,在非 JavaScript 環(huán)境中請求嵌入 Mermaid 內(nèi)容的客戶將看到原始的 Markdown 代碼。

接下來,假設(shè)用戶是在支持 JavaScript 的環(huán)境中查看內(nèi)容,此時會將 iframe 添加到頁面,將 src 屬性指向 Viewscreen 服務(wù)。這樣做具有以下優(yōu)點:

  • 將庫 offload 到外部服務(wù)時,可以減少 JavaScript 有效負荷;
  • 異步渲染圖表有助于消除開銷;
  • 用戶提供的內(nèi)容被鎖定在 iframe 中,這樣不會在加載圖表的 GitHub 頁面上造成破壞。

Mermaid pipeline

下面是 Mermaid pipeline 可視化路徑圖:用戶可以得到一個快速的、易于編輯的和基于矢量的圖,它會出現(xiàn)在文檔中需要的地方。

想了解更多有關(guān) Mermaid 語法的信息,請參考:

http://mermaid-js.github.io/mermaid/#/

參考鏈接:

https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/

來源:機器之心
開源前哨 日常分享熱門、有趣和實用的開源項目。參與維護 10萬+ Star 的開源技術(shù)資源庫,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容