dsh-md-plus 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,33 +1,61 @@
1
- # 更新日志
2
-
3
- ## 0.3.1 —— 2026-10-28
4
-
5
- - 修掉宿主原生按钮已有 SVG 图标时,插件又叠加一层复制图标造成的重复显示;插件按钮仍插在原生换行与复制按钮之间。
6
- - 测试补到 55 条,新增全屏打开、尺寸恢复、Esc 关闭与重复图标回归用例。
7
-
8
- ## 0.3.0 —— 2026-10-28
9
-
10
- - mermaid 卡片新增「全屏查看」:复杂时序图、长流程图不再挤在聊天栏里看。覆盖层默认适应整图,支持滚轮缩放、拖拽、双击适应和 Esc 关闭。
11
- - 全屏里的缩放范围与聊天内分开:聊天内保持 1–6 倍,全屏可以缩到 10%,方便先看全局再放大细节。
12
- - 测试补到 54 条,新增全屏打开、尺寸恢复与 Esc 关闭用例。
13
-
14
- ## 0.2.1 —— 2026-10-16
15
-
16
- - 修掉「同一份代码显示两遍」:`DSH_LANGS` 还是老版本的语言表,`dart`、`scala`、`vue`、`powershell`、`csv`、`diff` 等 66 个别名被当成「DSH 不认识」,插件抢先补了一层高亮;随后 DSH 的懒加载语法到位、React 把 plain `<pre>` 换成自己的高亮节点,插件那份副本成了野节点留在原地,于是两份都在。现在语言表对齐 108 条别名。
17
- - 加了一层兜底:DSH 接管某块后,插件撤掉自己插的副本(清 `data-md-plus` 标记)。语言表以后再落后也不会留永久双份,最多白干一次。
18
- - README:修正「`dart` 不在 DSH 语言表里」的错误说法,示例换成 DSH 真不认的 `gdscript`。
19
- - 测试扩到 53 条,新增「DSH 接管后不留副本」的回归用例;补高亮的用例换成插件独有语言,不再拿 `dart` 当反例。
20
-
21
- ## 0.2.0 —— 2026-10-08
22
-
23
- - 修掉 mermaid 围栏在 DSH 0.2.0-rc.2 上画不出来(issue #1):头部语言名被占位文案「代码块」顶掉,插件读不到围栏语言;现在认不出标签就看正文的类型声明。
24
- - 修掉渲染失败在页面底部堆积「炸弹图」,也不再让 mermaid 的错误卡片被当成图。
25
- - 修掉 ≥4 列的表格出血到面板宽、右边被裁掉、滚动条要悬停才出现的问题:现在跟正文同宽,超出在表内横滚。
26
- - mermaid 引擎 11.17.0 → 12.1.0:新增 usecase-beta / agentflow-beta,旧图种实测无回归;运行时约 3.4 MB → 5.0 MB。
27
- - 测试扩到 52 条,测试与预览页改用聊天区的真实头部形状。
28
- - 注意:mermaid 12 的新图种标识符只认字母数字下划线,中文要写进标签,`actor Customer("用户")` 可以。
29
- - 注意:DSH 0.2.0-rc.2 上「给 DSH 不认识的语言补高亮」仍然失效,得靠宿主露出语言名,详见 README。
30
-
31
- ## 0.1.0 —— 2026-09-29
32
-
33
- 首次发布:代码块卡片重做、补 Shiki 语法高亮、自带 mermaid 渲染、表格样式重做。
1
+ # 更新日志
2
+
3
+ ## 0.4.1 —— 未发布
4
+
5
+ - 修复 DSH 代码块头部只显示占位文案时读不到真实围栏语言、补高亮失效的问题:现在会从宿主的 React fiber 读取真实 `lang`,读不到再退回正文嗅探,并把头部语言名显示成真实语言。
6
+ - 修复 `graph = nx.Graph()`、`pie = 3.14`、`timeline = []` 等普通代码被误判成 mermaid 图的问题:只嗅探第一行有效内容,并排除赋值和调用形态。
7
+ - 修复代码块折叠在 DSH 上不触发:DSH 的代码内容容器是 `display:contents`,插件没有可测量的盒子;现在给代码内容建立真实的块级盒模型。
8
+ - 修复表格吸顶:给表格容器增加纵向滚动上限,表头在容器内滚动时保持可见。
9
+ - 修复卸载/重载后高亮副本、折叠按钮和 `data-md-plus*` 属性残留,避免同一份代码显示两遍,重装后也能重新处理。
10
+ - 修复鼠标滚轮在 1 倍图表上拦截页面滚动:未放大且未按住 Ctrl/Meta 时放行;全屏查看仍可滚轮缩放。
11
+ - 修复切换主题后代码视图中的 mermaid 图不重画的问题。
12
+ - 修复设置面板「恢复默认」把折叠阈值写成 0、代码字号与宿主行高不匹配、字号输入越界后静默回退的问题。
13
+ - 修复 mermaid 渲染失败后仍显示无效缩放/全屏按钮的问题,失败块现在显示「重试」;运行时脚本加载失败也不再永久缓存失败结果。
14
+ - 测试补到 72 条,新增 React fiber 语言识别、mermaid 误判、代码折叠盒模型、卸载清理、滚轮放行、代码视图主题重画、设置默认值等回归用例。
15
+
16
+ ## 0.4.0 —— 2026-10-28
17
+
18
+ - Mermaid 全屏工具栏新增「下载 SVG / 下载 PNG」,可以直接把图带进文档或演示文稿。
19
+ - 代码块、表格和 Mermaid 图卡增加长内容折叠:超过阈值显示「展开 / 收起」,避免长日志和长表格撑满聊天。
20
+ - Mermaid 新增蓝色 / 中性 / 森林 / 高对比四套配色,头部调色按钮循环切换并记住选择;全屏和导出沿用当前配色。
21
+ - 修掉普通代码块头部同时出现宿主原生换行和插件换行两颗按钮的问题:DSH 已有原生换行按钮时插件不再注入自己的换行按钮,旧宿主才补一颗。
22
+ - 复制图标兜底收窄到旧版没有 SVG 的复制按钮,避免原生按钮再叠加图标。
23
+ - 表格:表头改为吸顶,长表往下滚时列名不丢;每张表上方右侧新增「CSV / Markdown」复制按钮,自动处理引号、逗号和竖线转义。
24
+ - 图片:旧宿主没有原生预览按钮时,Markdown 正文图片才由插件点击放大;新版 DSH 已有 `imageButton` 原生预览,链接图片也保留自身点击,避免和原生 `ImageLightbox` 重复弹层。
25
+ - 新增设置面板(右下角齿轮):Mermaid 配色、代码字号、图表默认视图、代码块 / 表格 / 图表的折叠阈值都能调,设置存在本地。
26
+ - 修掉设置面板「保存」按钮悬浮时被通用按钮 hover 规则盖掉底色、文字看不见的问题;三个折叠阈值下方补上「按高度判断」的小字说明。
27
+ - 全站按钮与提示文案支持中英文,跟随页面 `<html lang>` 自动切换。
28
+ - 表格复制按钮用 `<caption>` 承载,宽度跟表格对齐;同时去掉表格自身的 `overflow:hidden`,避免破坏表头吸顶。
29
+ - 测试补到 65 条,新增导出按钮、配色切换、长代码 / 长表格折叠、表头吸顶、CSV / Markdown 复制、图片放大与原生预览避让、设置保存和英文界面用例。
30
+
31
+ ## 0.3.1 —— 2026-10-28
32
+
33
+ - 修掉宿主原生按钮已有 SVG 图标时,插件又叠加一层复制图标造成的重复显示;插件按钮仍插在原生换行与复制按钮之间。
34
+ - 测试补到 55 条,新增全屏打开、尺寸恢复、Esc 关闭与重复图标回归用例。
35
+
36
+ ## 0.3.0 —— 2026-10-28
37
+
38
+ - mermaid 卡片新增「全屏查看」:复杂时序图、长流程图不再挤在聊天栏里看。覆盖层默认适应整图,支持滚轮缩放、拖拽、双击适应和 Esc 关闭。
39
+ - 全屏里的缩放范围与聊天内分开:聊天内保持 1–6 倍,全屏可以缩到 10%,方便先看全局再放大细节。
40
+ - 测试补到 54 条,新增全屏打开、尺寸恢复与 Esc 关闭用例。
41
+
42
+ ## 0.2.1 —— 2026-10-16
43
+
44
+ - 修掉「同一份代码显示两遍」:`DSH_LANGS` 还是老版本的语言表,`dart`、`scala`、`vue`、`powershell`、`csv`、`diff` 等 66 个别名被当成「DSH 不认识」,插件抢先补了一层高亮;随后 DSH 的懒加载语法到位、React 把 plain `<pre>` 换成自己的高亮节点,插件那份副本成了野节点留在原地,于是两份都在。现在语言表对齐 108 条别名。
45
+ - 加了一层兜底:DSH 接管某块后,插件撤掉自己插的副本(清 `data-md-plus` 标记)。语言表以后再落后也不会留永久双份,最多白干一次。
46
+ - README:修正「`dart` 不在 DSH 语言表里」的错误说法,示例换成 DSH 真不认的 `gdscript`。
47
+ - 测试扩到 53 条,新增「DSH 接管后不留副本」的回归用例;补高亮的用例换成插件独有语言,不再拿 `dart` 当反例。
48
+
49
+ ## 0.2.0 —— 2026-10-08
50
+
51
+ - 修掉 mermaid 围栏在 DSH 0.2.0-rc.2 上画不出来(issue #1):头部语言名被占位文案「代码块」顶掉,插件读不到围栏语言;现在认不出标签就看正文的类型声明。
52
+ - 修掉渲染失败在页面底部堆积「炸弹图」,也不再让 mermaid 的错误卡片被当成图。
53
+ - 修掉 ≥4 列的表格出血到面板宽、右边被裁掉、滚动条要悬停才出现的问题:现在跟正文同宽,超出在表内横滚。
54
+ - mermaid 引擎 11.17.0 → 12.1.0:新增 usecase-beta / agentflow-beta,旧图种实测无回归;运行时约 3.4 MB → 5.0 MB。
55
+ - 测试扩到 52 条,测试与预览页改用聊天区的真实头部形状。
56
+ - 注意:mermaid 12 的新图种标识符只认字母数字下划线,中文要写进标签,`actor Customer("用户")` 可以。
57
+ - 注意:DSH 0.2.0-rc.2 上「给 DSH 不认识的语言补高亮」仍然失效,得靠宿主露出语言名,详见 README。
58
+
59
+ ## 0.1.0 —— 2026-09-29
60
+
61
+ 首次发布:代码块卡片重做、补 Shiki 语法高亮、自带 mermaid 渲染、表格样式重做。
package/README.md CHANGED
@@ -1,47 +1,17 @@
1
1
  # dsh-md-plus
2
2
 
3
- 给 DeepSeek Harness Web / Desktop 的 Markdown 显示增强插件,做四件事:重做代码块卡片、给 DSH 不认识的语言补语法高亮、自己渲染 mermaid 图形、重做表格样式。
3
+ 给 DeepSeek Harness Web / Desktop 的 Markdown 阅读增强插件:重做代码块卡片、给 DSH 不认识的语言补语法高亮、自己渲染 mermaid 图形、重做表格样式并支持复制、图片点击放大,以及一个调整显示参数的设置面板。
4
4
 
5
- ![dsh-md-plus 显示效果预览](<docs/preview.png>)
5
+ [![dsh-md-plus 显示效果预览](<docs/preview.png>)](https://josephhy.github.io/dsh-md-plus/docs/showcase/)
6
6
 
7
- ## 它解决什么
7
+ ## 功能
8
8
 
9
- ### 代码块样式
10
-
11
- DSH 原生的头部是「小灰字 + 文字复制按钮」,没写语言时左边空一片,卡顶到第一行代码之间还留着大段空白。重做成一张完整的卡片:
12
-
13
- | 元素 | 改前 | 改后 |
14
- |---|---|---|
15
- | 头部左侧 | 空(无语言时) | `</>` 图标 + 语言名,无语言显示 `Plain text` |
16
- | 头部右侧 | 文字「复制」 | 图标按钮:不换行 + 复制 |
17
- | 顶栏背景 | 与卡片之间有一条白带 | 与卡片同色 |
18
- | 卡顶到代码 | 一大段空白 | 约一行代码高 |
19
-
20
- 样式是纯 CSS 打在 `.md-code-block` 上,所以所有语言(包括 DSH 自己高亮的 JSON/TS/Python)都吃同一套外观。想调间距,改 `src/client.js` 里 banner 的 `padding` 末位和 pre 的 `padding` 首位。
21
-
22
-
23
-
24
- ### mermaid 图形
25
-
26
- mermaid 围栏由插件渲染成 SVG,头部右侧可在「图形 / 代码」之间切换,复制按钮复制的仍是图源。配色和节点圆角在 `src/mermaid-theme.js`。
27
-
28
- 复杂时序图、长流程图可以点右上角的全屏图标:在覆盖层里默认「适应整图」,也支持滚轮缩放、拖拽和双击适应,按 Esc 关闭。聊天内的普通缩放仍然保留。
29
-
30
- 认图先看头部语言名(`mermaid` / `mmd` / `mermaidjs`),认不出再看正文里的类型声明(`flowchart`、`graph`、`sequenceDiagram` 等)。0.2.0-rc.2 上头部是占位文案,走的就是正文这条。
31
-
32
- ### 表格样式
33
-
34
- DSH 原生表格无边框、分隔线半透明、表头没底色,首列还贴着左边缘。重做成:
35
-
36
- | 元素 | 取值 |
37
- |---|---|
38
- | 表头底 / 字 | `#f7f7f7` / `#181818` 加粗 |
39
- | 边框 | `#ebebeb` 1px,只有横线 |
40
- | 圆角 | 外 8px / 内 7px,只收外圈四角 |
41
- | 首 / 末列内边距 | 16px(DSH 原本清零) |
42
- | 悬停行 | `#fafafa` |
43
-
44
- 深色主题另有一套(`#1f1f1f` 表头 / `#2f2f2f` 线)。抓手用结构选择器 `div:has(> table)` 而不是 DSH 的哈希类名,DSH 换哈希也不失效。
9
+ - **代码块**:统一成完整卡片,头部显示 `</>` 图标和语言名(无语言显示 `Plain text`),保留宿主原生的换行与复制按钮,顶栏与卡片同色。
10
+ - **Mermaid**:围栏渲染成 SVG,可在「图形 / 代码」间切换;支持全屏查看(滚轮缩放、拖拽、双击适应、Esc 关闭)、四套配色,以及下载 SVG / PNG。
11
+ - **长内容折叠**:代码块、表格、图表超过阈值自动折叠,底部出现「展开 / 收起」,长日志和长表格不会撑满聊天。
12
+ - **表格**:浅色 / 深色两套样式,表头吸顶;每张表上方右侧有「CSV / Markdown」复制按钮。
13
+ - **图片放大**:只在旧宿主没有原生预览按钮时兜底,点击图片打开暗色预览,Esc 或点遮罩关闭;新版 DSH 的原生预览、头像、图标、代码块和链接里的图片都不接管。
14
+ - **设置面板**:右下角齿轮可调 Mermaid 配色、代码字号、图表默认视图和三类折叠阈值,阈值下方会注明按高度判断。设置存在 `localStorage`,界面文案跟随页面 `<html lang>` 切换中英文。
45
15
 
46
16
  ## 安装与卸载
47
17
 
@@ -52,27 +22,25 @@ dsh plugin --profile desktop remove dsh-md-plus
52
22
 
53
23
  ## 开发
54
24
 
25
+ 需要 Node.js ≥ 22.19。
26
+
55
27
  ```powershell
56
28
  npm install # 顺带跑 prepare → build
57
29
  npm run build # 产出 lib/ 下四个文件
58
- npm run check # 语法检查 + 53 条测试
30
+ npm run check # 语法检查 + 72 条测试(先 build 再跑,check 不含 build)
59
31
  npm run preview # 生成 preview.html(含真渲出来的 mermaid 图)
60
32
  npm run shot # 用 headless Chrome 把 preview.html 截成 docs/preview.png
61
33
  ```
62
34
 
63
- 测试跑的是 `lib/` 里的产物,所以先 `npm run build` 再 `npm test`(`npm run check` 不含 build)。
64
-
65
- 测试和预览页里的代码块都按聊天区的真实头部形状搭(`CodeToolbar`,语言名走占位回退)。
35
+ ## 已知限制
66
36
 
67
- ## 已知边界
68
-
69
- - 0.2.0-rc.2 起,头部那行语言名由宿主决定显示什么:认这门语言就显示语言名,不认就显示本地化占位文案(中文「代码块」)。认不出来就读不到围栏语言,插件无法转化,且还不报错。mermaid 这条改看正文:跳过 `%%` 注释和开头的 `---` frontmatter,正文里有行以 mermaid 类型关键字开头就当图。这条只管认图,不参与补高亮的判断。
70
- - 同一个原因让补高亮在 0.2.0-rc.2 上基本失效:`gdscript`、`nushell` 这类 DSH 不认的语言,头部是占位文案,插件问不到 Shiki 该用哪套语法,只能没颜色。反过来 DSH 认得的那 108 种(`dart`、`vue`、`scala` …)由 DSH 自己上色,插件不碰。
71
- - `DSH_LANGS` 是 DSH `LANG_ALIASES` 的快照(对齐 108 条)。DSH 加语言后这份快照会落后,落后只会让它多管一门 DSH 也在管的高亮 —— 撤回兜底能保证不出现双份,但会白干一次高亮;想干净就跟着同步。
37
+ - DSH 0.2.1-rc.4 的头部语言名由宿主决定:不认识的围栏只显示占位文案「代码块」。插件会从宿主的 React fiber 里兜底读取真实语言,读不到时才退回正文嗅探;宿主改 React 结构后这条兜底可能失效。
38
+ - `DSH_LANGS` 是 DSH 语言表的快照(108 条)。宿主加语言后这份快照会落后,落后只会多一次无效处理,不会出现双份高亮。
72
39
  - mermaid 12 的新图种(`usecase-beta`、`agentflow-beta`)标识符只认字母数字下划线,中文得写进标签:`actor Customer("用户")` 可以,`actor 用户` 会解析失败。
73
40
  - 高亮约 6.4 MB、mermaid 约 5.0 MB,按需下载,第一次用到时多花约 100ms 解析。
74
- - 依赖宿主 `.md-code-block`、`[data-code-block-content]`、`[data-code-block-banner]`、`data-streaming` 这几个钩子,DSH 改了要跟着改 `src/client.js` 顶部的常量和 `MMD_TYPE`。
75
- - 目前只管代码块、mermaid 和表格。
41
+ - 依赖宿主 `.md-code-block`、`[data-code-block-content]`、`[data-code-block-banner]`、`data-streaming` 等钩子,以及 React fiber 里的 `lang`;DSH 改版后要同步调整 `src/client.js`。
42
+
43
+ 目前只影响代码块、mermaid、表格、正文图片和显示设置,不改 Markdown 的解析结果。
76
44
 
77
45
  ## 许可证
78
46