dsh-md-html-render:在 DSH 中把 Markdown 渲染爲獨立 HTML

前言

在 DSH 裏做智能體任務時,模型輸出經常是 Markdown:計劃、報告、對比表、遷移說明。這些內容留在會話裏可以,但如果要轉發、存檔或離線打開,就需要一個完整頁面。dsh-md-html-render 提供這種能力:把 Markdown 渲染成 standalone、self-contained 的 HTML。

DSH 生態強調「一切皆插件」;社區目錄是獨立站點,並不是官方應用商店。下面介紹這個插件的定位、安裝、用法和注意點。

這是什麼

dsh-md-html-render 是一個 DeepSeek Harness(DSH)插件,由 LeslieWylie 維護,許可證爲 MIT。

它有兩個入口:

  1. 模型可調用的 md_html_render 工具,可在 headless profile 中使用。
  2. Web GUI 的 MD drawer,可在 Web 會話中瀏覽、渲染、編輯和導出 Markdown。

兩者使用同一渲染器。輸出是 standalone HTML,內嵌樣式,不加載外部 stylesheet、font、script 或 image。

GitHub 倉庫地址爲 https://github.com/LeslieWylie/dsh-md-preview 。v0.3.0 起,包名從 dsh-md-preview 改爲 dsh-md-html-render;GitHub 倉庫路徑仍爲 dsh-md-preview。README 說明它目前未上 npm,安裝來源是 GitHub。

核心功能

模型調用

工具簽名爲:

md_html_render(markdown, title?, save_path?) -> { html, savedPath?, error? }

參數說明:

參數 必需 說明
markdown 是 Markdown 源
title 否 頁面標題
save_path 否 輸出文件路徑,通過 session fs service 解析,並遵守 sandbox 策略

如果 save_path 被 sandbox 拒絕,工具仍會返回 HTML,同時返回 error。

Web GUI drawer

在 Web GUI 中,先點擊 session header 的 MD,再瀏覽 working directory。點擊 .md 文件後,可以就地渲染、編輯或導出,並跟隨 harness 主題顯示。

Drawer 的 readFile 只接受 .md、.markdown、.mdx 或 .txt。

渲染與安全

這個插件的邊界比較明確:

  • 無 runtime dependencies。
  • 所有讀和寫都通過 harness fs service 和 sandbox。
  • 文檔文本會經過 HTML 轉義,不安全鏈接目標會被摺疊,不允許 raw HTML execution。
  • fs service 是唯一硬依賴;缺少它時插件記錄警告並保持 inert。
  • 可以在 headless、Web GUI 或兩者中運行。

運行環境要求 Node ^22.19.0 || >=24.0.0。

安裝與啓用

先確認當前 Node 版本滿足要求。

在 profile 的 package.json 中添加依賴:

// ~/.dsh/profiles/<profile>/package.json
{
  "dependencies": {
    "dsh-md-html-render": "github:LeslieWylie/dsh-md-preview#v0.3.0"
  }
}

然後安裝並啓動:

cd ~/.dsh/profiles/<profile> && pnpm install
dsh --profile <profile>

經過上面的步驟,headless profile 可獲得 md_html_render;Web GUI profile 還能獲得 MD drawer。

如果不想編輯 profile,也可以按 README 的方式做臨時加載:

dsh --profile web --patch <(printf -- "- insert:\n    - id: md-preview\n      name: dsh-md-html-render\n")

典型用法

讓模型生成 HTML

可以用類似下面的提示:

Render this migration plan to ~/Desktop/plan.html

模型調用 md_html_render 後,會返回 html;如果成功寫入 save_path,會帶有 savedPath;如果寫入被拒,會帶有 error。

在 Web GUI 查看本地 Markdown

啓動一個帶 Web GUI 的 profile,然後在 session header 點擊 MD。找到目標 Markdown 文件後點擊渲染,再根據需要進行編輯或導出。導出的頁面與 md_html_render 使用同一渲染器。

適用場景與注意

適合以下情況:

  • headless DSH profile 需要把 Markdown 變成完整 HTML。
  • Web GUI 中需要就地查看、編輯和導出 Markdown。
  • 希望輸出頁不依賴外部資源,並且插件無 runtime dependencies。
  • 需要所有文件操作都走 harness fs service 和 sandbox。

安裝前需要注意:

  • 插件以當前 dsh 進程權限運行;雖然讀寫通過 harness fs service 和 sandbox,仍建議先檢查源碼。
  • 許可證爲 MIT,可按許可證要求使用。
  • fs service 缺失時插件不會加載能力,只會記錄警告並保持 inert。
  • 不要把 npm 上的 dsh-md-preview 當作本插件;本插件包名是 dsh-md-html-render。

驗證

從源碼驗證時運行:

npm test

這會執行四套測試。Harness 相關包作爲普通 devDependencies 用於測試;如果測試日誌出現 SKIPPED,應把這次運行視爲未驗證。

資源

  • GitHub:https://github.com/LeslieWylie/dsh-md-preview
  • 許可證:MIT
  • 已覈實資料未提供目錄頁 URL;如需在社區目錄中查找,可按插件名 dsh-md-html-render 檢索。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜