🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

流式 Markdown 渲染 zerob13/dsh-better-markdown

DeepSeek Harnessv0.1.2
zerob1379 天前有提交已提供中文文档扫描:未发现敏感能力

用 markstream-react 替换 DeepSeek Harness Web 的流式 Markdown…

40.2/100
综合分
19
GitHub 星标
184
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-better-markdown
npm 源 · dsh-better-markdown 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-better-markdown @ 0.1.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 02:20:47

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-attachment@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 流式渲染Markdown
  • 渲染Mermaid图表
  • 渲染KaTeX公式
v0.1.22026-08-17
· Fixes · Follow DSH shell dark theme for code blocks and Mermaid (#1)
原文(未汉化)
v0.1.12026-08-16
· 变更内容 · 通过 Markstream MarkdownCodeBlockNode 和 stream-markdown 渲染围栏代码。 · 为 34 种常用语言加上流式 Shiki 高亮,并保留可见的纯文本回退。 · 修复代码块在 Harness 聊天滚动容器里卡成视口骨架的问题。 · 从单文件浏览器包中移除未使用的 Monaco 运行时。 · 保留打包的 Mermaid,并更新横幅、截图和双语文档。 · 验证 · TypeScript 和 5 个 Vitest 测试通过。 · 浏览器包和 npm tarball 构建成功。 · 在 DeepSeek Harness Web 中验证:10 个可见 Shiki 代码块,无 Monaco 节点,无卡住的占位符,无浏览器警告。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-better-markdown 用 markstream-react 替换 DeepSeek Harness Web 的流式 Markdown 渲染链路。 中文 · English dsh-better-markdown 是 DeepSeek Harness Web 客户端插件。安装后,Web 对话中所有带流式状态的 assistant Markdown 都由 markstream-react 解析和渲染;同一消息流结束后继续使用同一个 renderer,不会在完成瞬间切回另一套 Markdown 实现。 markstream-react 是 Simon-He95/markstream-vue monorepo 提供的 React 版本。本插件在 Harness 中使用的是 React package,不会引入 Vue runtime。 为什么使用 Markstream React - 面向流式输出:可持续处理尚未闭合的粗体、代码围栏、列表、表格和数学表达式,适合 LLM token stream。 - 减少完成态切换:流式与 settled assistant message 共用 Markstream renderer,避免完成时替换整棵 Markdown UI。
展开完整文档(README 剩余 1 节)
dsh-better-markdown

用 markstream-react 替换 DeepSeek Harness Web 的流式 Markdown 渲染链路。

中文 · English

dsh-better-markdown 是 DeepSeek Harness Web 客户端插件。安装后,Web 对话中所有带流式状态的 assistant Markdown 都由 markstream-react 解析和渲染;同一消息流结束后继续使用同一个 renderer,不会在完成瞬间切回另一套 Markdown 实现。

markstream-react 是 Simon-He95/markstream-vue monorepo 提供的 React 版本。本插件在 Harness 中使用的是 React package,不会引入 Vue runtime。

为什么使用 Markstream React

- 面向流式输出:可持续处理尚未闭合的粗体、代码围栏、列表、表格和数学表达式,适合 LLM token stream。
- 减少完成态切换:流式与 settled assistant message 共用 Markstream renderer,避免完成时替换整棵 Markdown UI。
- 更丰富的 Markdown:支持常用 Markdown、表格、任务列表、引用、链接、图片、KaTeX 数学公式和 Mermaid 图表。
- 兼容 Harness 滚动区:关闭不适用于聊天内部滚动容器的 viewport lazy mounting,避免可见内容停留在骨架占位状态。
- 完整 Markstream 代码块:fenced code 由 Markstream MarkdownCodeBlockNode 与 stream-markdown 渲染,使用 Shiki 流式高亮,并保留语言标题、复制和展开操作;reasoning、附件、停止状态仍保持 Harness 原行为。
- 安全边界明确:原始 HTML 使用 htmlPolicy="escape";链接、图片和 settled file mention 继续执行 Harness 的限制策略;Mermaid 使用 strict mode。

效果截图

Markstream 代码块

图片、链接与 KaTeX 数学公式

Mermaid 图表

功能范围

| 能力 | 行为 |
| Assistant streaming Markdown | 全部交给 markstream-react |
| Settled assistant Markdown | 继续使用同一个 Markstream renderer |
| Mermaid | 插件内置 mermaid@11.16.1,无需额外安装 |
| Math | KaTeX inline / display math |
| Code fences | 使用 Markstream MarkdownCodeBlockNode + stream-markdown + Shiki;未知语言回退为可见纯文本 |
| Raw HTML | 转义为文本,不注入 DOM |
| Links and images | 仅允许安全的外部协议 |
| Plan review / trajectory 等静态 surface | 继续使用 Harness 内置 MarkdownText;这些 surface 没有统一替换 slot |

工作原理

插件使用 Harness 公开的 client module 与 slot shadowing,不修改 Harness 源码,也不替换全局 React。

Assistant token stream
-> Harness session projection
-> conversation.chat.node / assistant-step
|- priority -100: BetterAssistantNodeView
| -> markstream-react (active)
| - fenced code -> stream-markdown -> Shiki
- priority 0: Harness built-in (fallback)

低优先级 shadow entry 负责正常渲染;如果插件 renderer 抛错或被卸载,Harness 原 renderer 仍在 slot 中并自动接管。

安装

从 npm 安装(推荐)

前置条件:DeepSeek Harness Web 可以正常启动。

dsh plugin --profile web add dsh-better-markdown
dsh --profile web --dump-config
dsh --profile web

更新插件:

dsh plugin --profile web add dsh-better-markdown@latest

从源码安装

前置条件:DeepSeek Harness Web 可以正常启动,Node.js 20+,pnpm 10+。

git clone https://github.com/zerob13/dsh-better-markdown.git
cd dsh-better-markdown
pnpm install
pnpm run check
pnpm run build
dsh plugin --profile web add "$(pwd)"
dsh --profile web --dump-config
dsh --profile web

Windows PowerShell 将 "$(pwd)" 替换为 (Get-Location).Path。

配置输出应包含:

== dsh-better-markdown
- id: better-markdown
name: dsh-better-markdown

打开 Web 后,assistant Markdown 根节点会带有:

直接从 Git 安装

Git dependency 会执行本仓库的 prepare 构建。pnpm 10/11 可能要求在 Web profile 的 pnpm-workspace.yaml 中显式允许:

allowBuilds:
dsh-better-markdown: true

然后安装:

dsh plugin --profile web add git+https://github.com/zerob13/dsh-better-markdown.git
dsh --profile web

建议生产环境固定 commit SHA,而不是长期跟随默认分支。

移除

移除插件:

dsh plugin --profile web remove dsh-better-markdown

卸载会释放 slot shadow 和 Markstream component policy,Harness 内置 renderer 随即恢复。

体积与取舍

- markstream-react: 0.0.55
- mermaid: 11.16.1
- stream-markdown: 0.0.16
- shiki: 4.4.3
- 当前 browser bundle:约 7.40 MB,gzip 约 1.59 MB
- Mermaid 与 Shiki 代码高亮均被打包以保证离线可用;Shiki 使用纯 JavaScript 正则引擎与 34 种常用语言的 fine-grained bundle
- Monaco runtime、D2、Infographic 等可选 peer 没有打包;未知代码语言使用 Markstream 的纯文本回退如果不需要 Mermaid,移除它的 dependency 可以明显减小 bundle,但 Mermaid fence 将无法生成图形预览。

开发

pnpm install
pnpm run check
pnpm run build
pnpm pack --dry-run

维护者发布流程:先让 package.json 版本与 vX.Y.Z tag 保持一致,再发布对应的 GitHub Release。publish.yml 会验证版本、执行测试与构建,并通过 npm trusted publishing 发布公开包;prerelease 不会发布。

主要文件:

- src/client/index.ts:注册 Markstream component policy 和 assistant slot shadow
- src/client/renderer.tsx:assistant node 与 Markdown renderer
- src/client/shiki.ts:单文件插件使用的 fine-grained Shiki bundle
- src/client/styles.css:Harness token 适配
- cordis.patch.yml:插件 bundle row
- tests/plugin.spec.tsx:streaming、fallback、安全与 Mermaid 路由测试

兼容性

- DeepSeek Harness 0.1.0-rc.5 及以上
- React 18 及以上
- 仅替换 Web conversation 的 assistant-step
- 旧版 Harness 如果没有 priority-based slot shadowing,会直接加载失败,避免出现双 renderer

致谢

- DeepSeek Harness
- markstream-vue / markstream-react
- Mermaid

License

MIT
预览分享卡片长什么样 ↓zerob13/dsh-better-markdown
分享 · DeepSeek Harness Hub
zerob13/dsh-better-markdown

用 markstream-react 替换 DeepSeek Harness Web 的流式 Markdown…

这是你的仓库?认领条目

回到顶部