在 DSH 的文件域中,Markdown 文件通常只以純文本形式顯示,缺乏排版和交互體驗。dock-markdown 旨在解決這個問題,它爲 .md、.markdown 和 .mdx 文件註冊了查看器,提供 GFM 渲染、DOMPurify 內容消毒、文檔大綱以及與編輯器的快速切換功能,讓 Markdown 內容在 DSH 中具備“編輯器級”的閱讀體驗。
功能說明¶
Markdown 渲染與安全¶
插件使用 marked 庫支持 GitHub Flavored Markdown (GFM) 語法。渲染後的 HTML 輸出會經過 DOMPurify.sanitize() 消毒,確保寫入 DOM 的內容是安全的。
相對路徑資源解析¶
Markdown 中的相對圖片與內部鏈接會按照以下優先級解析:
1. Markdown 所在目錄
2. 當前路徑所在 git 倉庫根目錄
3. 會話工作區根目錄
圖片以內聯 data URL 形式展示,內部鏈接點擊後在工作臺打開目標文件,錨點鏈接(#錨點)支持平滑滾動。
文檔大綱¶
工具欄中的 ☰ 按鈕用於展開或收起大綱欄。大綱按標題層級(h1–h6)縮進列出,點擊標題可跳轉,滾動時當前章節會自動高亮。
查看器切換與主題¶
工具欄提供按鈕,可一鍵在“查看”模式和 dock-editor 編輯模式之間切換。排版樣式遵循 DSH 主題 token,自動適配亮/暗主題。代碼塊、表格、引用等常用 GFM 元素均有專門的樣式。
安裝與依賴¶
該插件運行在 DSH Web 環境,依賴 dock、dock-files 和 dock-editor 插件。
dsh plugin --profile web add dock-base
dsh plugin --profile web add dock-files
dsh plugin --profile web add dock-editor
dsh plugin --profile web add dock-markdown
依賴項要求:
* dock >= 0.1.0:提供 ctx.workbench。
* dock-files >= 0.1.0:註冊 markdown 查看器。
* dock-editor >= 0.1.0:提供 /desk-editor/fs.read 接口及編輯視圖。
* cordis ^4.0.0-rc.7:插件框架。
* react ^18.2.0:客戶端渲染需要(可選,若未提供則查看器 UI 不激活)。
* marked / dompurify:隨插件打包,無需單獨安裝。
注意事項¶
- 安全風險:DOMPurify 默認允許
style屬性,理論上惡意 Markdown 可能利用 CSS 進行外聯跟蹤。如需更嚴格的安全策略,可配置FORBID_ATTR: ['style']。 - 文件訪問權限:相對路徑資源解析不受會話工作區限制。Markdown 文件可能位於主機任意位置(如
~/.dsh/skills/...),插件會按優先級嘗試讀取候選路徑下的文件。 - 許可證:本插件遵循 MIT 許可證。
總結¶
dock-markdown 爲 DSH 插件生態補充了結構化的 Markdown 閱讀能力。通過集成大綱導航、一鍵編輯切換和安全的渲染機制,它能夠滿足文檔審閱、技能庫瀏覽等場景下的需求。
- GitHub: https://github.com/AKS1st/dock-markdown
- 目錄: https://www.skillhub.cn/plugins/AKS1st/dock-markdown