dsh-fishpai 1.0.2
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/LICENSE +22 -0
- package/NOTICE.md +46 -0
- package/README.md +169 -0
- package/cordis.patch.yml +10 -0
- package/lib/client.js +2770 -0
- package/package.json +65 -0
- package/plugin/core/diff.mjs +208 -0
- package/plugin/core/markdown.mjs +450 -0
- package/plugin/core/notes.mjs +151 -0
- package/plugin/core/patch.mjs +93 -0
- package/plugin/core/render.mjs +906 -0
- package/plugin/core/runtime.mjs +83 -0
- package/plugin/core/theme-info.mjs +80 -0
- package/plugin/core/theme-spec.mjs +276 -0
- package/plugin/host/assets.mjs +120 -0
- package/plugin/host/custom-theme.mjs +121 -0
- package/plugin/host/routes.mjs +494 -0
- package/plugin/host/store.mjs +719 -0
- package/plugin/host/tools.mjs +573 -0
- package/plugin/index.mjs +127 -0
- package/plugin/vendor/highlight.min.js +1213 -0
- package/plugin/vendor/hljs-map.json +202 -0
- package/plugin/vendor/markdown-it.min.js +2 -0
- package/plugin/vendor/themes.js +414 -0
- package/skills/fishpai/SKILL.md +146 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ye4wzp (MoPai 墨排 / mopai-markdown — the rendering core this project derives from)
|
|
4
|
+
Copyright (c) 2026 OMSociety (FishPai 鱼排 — the DeepSeek Harness plugin)
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# 起源与第三方许可(NOTICE)
|
|
2
|
+
|
|
3
|
+
鱼排(FishPai,仓库 `OMSociety/dsh-fishpai`)是 [MoPai 墨排 / mopai-markdown](https://github.com/ye4wzp/mopai-markdown)
|
|
4
|
+
的 **fork**,在保持上游 MIT 许可与版权声明的前提下,重构为 DeepSeek Harness(DSH)插件。
|
|
5
|
+
|
|
6
|
+
## 1. 上游
|
|
7
|
+
|
|
8
|
+
| 项 | 内容 |
|
|
9
|
+
|---|---|
|
|
10
|
+
| 上游仓库 | https://github.com/ye4wzp/mopai-markdown |
|
|
11
|
+
| 上游作者 | [@ye4wzp](https://github.com/ye4wzp) |
|
|
12
|
+
| 许可 | MIT |
|
|
13
|
+
| 本仓库 fork 自 | `main`(fork 时的上游 HEAD) |
|
|
14
|
+
| 上游原样保留位置 | `legacy-site/`(去掉 `screenshots/`,其余原样:`index.html`、`css/`、`js/`、`docs/`、`DESIGN.md`、`README*.md`、`tests/` 等) |
|
|
15
|
+
|
|
16
|
+
鱼排直接复用了上游两项核心资产,均为 MIT:
|
|
17
|
+
|
|
18
|
+
1. **主题定义** —— 上游 `js/themes.js` 复制为本仓库 `plugin/vendor/themes.js`(换行符归一为 LF;
|
|
19
|
+
另外**有意删除了两套主题**:「金融时报(ft)」与「Medium」——前者靠整页异色底立身、公众号文章不要
|
|
20
|
+
整页底色,后者与「纽约时报」只剩字号与字体栈的差别)。上游那 13 套的原版文件仍在 `legacy-site/js/`,
|
|
21
|
+
需要逐字节比对时看那边。
|
|
22
|
+
2. **渲染管线设计** —— 「先渲染 HTML,再给每个标签内联主题样式」「复制到公众号时把代码块内
|
|
23
|
+
span 的计算样式内联」「h4–h6 套 h3 样式」「外链转文末参考资料」等行为与验收标准。
|
|
24
|
+
|
|
25
|
+
## 2. 打包进本仓库的运行时依赖
|
|
26
|
+
|
|
27
|
+
| 文件 | 版本 | 许可 | 版权 |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| `plugin/vendor/markdown-it.min.js` | markdown-it 14.1.0 | MIT | © markdown-it contributors |
|
|
30
|
+
| `plugin/vendor/highlight.min.js` | highlight.js 11.9.0 (git f47103d4f1) | BSD-3-Clause | © 2006-2023 highlight.js contributors |
|
|
31
|
+
| `plugin/vendor/themes.js` | 上游同步(移除两套主题,见上) | MIT | © 2026 [@ye4wzp](https://github.com/ye4wzp) |
|
|
32
|
+
| `plugin/vendor/hljs-map.json` | — | MIT(本仓库整理) | 从真实浏览器导出的 highlight.js token 计算样式表 |
|
|
33
|
+
|
|
34
|
+
`markdown-it` 与 `highlight.js` 的运行时代码随本插件一起分发,故在此保留其声明。
|
|
35
|
+
BSD-3-Clause 要求保留版权声明与免责声明;两处声明均完整保留在对应 `.min.js` 文件的首部注释中。
|
|
36
|
+
|
|
37
|
+
## 3. 刻意**未**引入的东西
|
|
38
|
+
|
|
39
|
+
| 项目 | 原因 |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `wechatsync/Wechatsync` 及其派生的 `article-syncjs` | 上游为 GPL-3.0,派生物**没有**许可证文件(默认保留全部权利)。鱼排不做多平台分发。 |
|
|
42
|
+
| `DOMPurify` | 许可为 `(MPL-2.0 OR Apache-2.0)`,MPL 是文件级 copyleft。鱼排的渲染在宿主侧完成,预览走沙箱 iframe,不需要它。 |
|
|
43
|
+
|
|
44
|
+
## 4. 本仓库新增部分的许可
|
|
45
|
+
|
|
46
|
+
新增代码同样以 MIT 发布,版权归 [@OMSociety](https://github.com/OMSociety)。完整条款见 `LICENSE`。
|
package/README.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/OMSociety/dsh-fishpai/main/logo.png" alt="鱼排 FishPai" width="190">
|
|
3
|
+
<h1>鱼排 FishPai</h1>
|
|
4
|
+
<p>公众号排版工作台,长在 DeepSeek Harness 的右侧栏里。</p>
|
|
5
|
+
<p>人在侧栏改字、加批注与占位;模型用<strong>块级 diff</strong> 看懂你改了什么、想要什么;成品仍由你复制粘贴进公众号编辑器。</p>
|
|
6
|
+
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://github.com/OMSociety/dsh-fishpai/releases"><img src="https://img.shields.io/github/v/tag/OMSociety/dsh-fishpai?color=4f6ef7&label=version" alt="Version"></a>
|
|
9
|
+
<a href="https://github.com/deepseek-ai/dsh"><img src="https://img.shields.io/badge/DSH-%3E%3D0.1.5--rc.2-4f6ef7" alt="DSH"></a>
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/github/license/OMSociety/dsh-fishpai?color=4f6ef7" alt="License"></a>
|
|
11
|
+
<a href="https://github.com/OMSociety/dsh-fishpai/stargazers"><img src="https://img.shields.io/github/stars/OMSociety/dsh-fishpai?color=4f6ef7" alt="Stars"></a>
|
|
12
|
+
<a href="https://github.com/OMSociety/dsh-fishpai/issues"><img src="https://img.shields.io/github/issues/OMSociety/dsh-fishpai?color=4f6ef7" alt="Issues"></a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<a href="#这是什么">这是什么</a> • <a href="#核心特性">核心特性</a> • <a href="#效果">效果</a> • <a href="#快速开始">快速开始</a> • <a href="#模型工具">模型工具</a> • <a href="#面板快捷键">面板快捷键</a> • <a href="#开发">开发</a> • <a href="#许可证与作者">许可证与作者</a>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
## 这是什么
|
|
19
|
+
|
|
20
|
+
**鱼排**把 Markdown 排成**内联样式 HTML**:整段粘进微信公众号编辑器就得到成品排版。
|
|
21
|
+
|
|
22
|
+
它同时是一个**人在回路里的改稿台**——面板与模型看的是同一篇文档,谁改了什么一目了然。
|
|
23
|
+
|
|
24
|
+
渲染内核与主题来自 [MoPai 墨排 / mopai-markdown](https://github.com/ye4wzp/mopai-markdown)(MIT),
|
|
25
|
+
本仓库把同一套管线重构为 DSH 插件。署名与许可链条见 [`NOTICE.md`](NOTICE.md)。
|
|
26
|
+
|
|
27
|
+
## 核心特性
|
|
28
|
+
|
|
29
|
+
| 特性 | 说明 |
|
|
30
|
+
|---|---|
|
|
31
|
+
| **Markdown 快捷键** | 选中后 `Ctrl/⌘+B` 加粗、`+I` 斜体、`+K` 链接、`+Alt+1/2/3` 标题、`+Shift+8/7` 列表;列表里回车自动续写 |
|
|
32
|
+
| **图片直接粘进来** | 截图 `Ctrl/⌘+V` 粘入(也可以拖进来)→ 存到文档同级的 `assets/`,正文自动插入引用,预览立刻可见 |
|
|
33
|
+
| **实时预览 + 手机宽度** | 打字 300ms 后预览跟着变;栏位够宽左右并排,窄了自动单栏;可切 375px 看公众号真实观感 |
|
|
34
|
+
| **批注与占位** | 光标所在段落加批注(模型下次 `fishpai_read` 就能看到);正文里写 `<!-- 鱼排: 这里补个过渡 -->` 也一样;点批注「定位」直接选中它引用的那段 |
|
|
35
|
+
| **块级 diff 与局部改稿** | 模型只改该改的块,你的其它改动原样保留;写入必须带 `base_revision`,不符**先拒**并回带"自你上次写入以来的改动" |
|
|
36
|
+
| **冲突不丢字** | 模型与你同时改时给出「用我的覆盖 / 看 AI 的版本」,采用 AI 版会先把你的草稿存进历史 |
|
|
37
|
+
| **主题与主题色** | 11 套主题,按"是否适合公众号"分组;主题色只对「默认公众号」生效(用不上的取色行会自动隐藏),有风险的主题直接提示原因;另有工作目录级的「自定义主题」(模型可在内置主题上只改几个槽位) |
|
|
38
|
+
| **复制与导出** | 复制为 `text/html` + `text/plain` 双格式;本地图片内嵌 base64,粘过去**不用手动重传**;也能导出成自包含 `.html` |
|
|
39
|
+
| **五个模型工具** | `fishpai_open` / `read` / `write` / `render` / `theme`,配一份教模型怎么用的技能 |
|
|
40
|
+
|
|
41
|
+
## 效果
|
|
42
|
+
|
|
43
|
+
<table>
|
|
44
|
+
<tr>
|
|
45
|
+
<td width="64%" align="center"><img src="https://raw.githubusercontent.com/OMSociety/dsh-fishpai/main/docs/panel-fishpai.png" alt="鱼排编辑器面板:左侧源码、右侧实时预览" width="540"></td>
|
|
46
|
+
<td width="36%" align="center"><a href="https://raw.githubusercontent.com/OMSociety/dsh-fishpai/main/docs/wechat-fishpai.jpg"><img src="https://raw.githubusercontent.com/OMSociety/dsh-fishpai/main/docs/wechat-fishpai.jpg" alt="复制后粘进公众号编辑器的实际效果" width="235"></a></td>
|
|
47
|
+
</tr>
|
|
48
|
+
<tr>
|
|
49
|
+
<td align="center">面板截图:左边写 Markdown,右边实时预览;主题、字体、字号、脚注开关都在顶部一行</td>
|
|
50
|
+
<td align="center">粘贴进公众号后并发布后的实机截图</td>
|
|
51
|
+
</tr>
|
|
52
|
+
</table>
|
|
53
|
+
|
|
54
|
+
同一份 HTML 用「导出 HTML」存成文件、在浏览器里打开,看到的就是面板右侧那个样子。
|
|
55
|
+
|
|
56
|
+
## 快速开始
|
|
57
|
+
|
|
58
|
+
**方式一:从 GitHub 装(推荐)**
|
|
59
|
+
|
|
60
|
+
```powershell
|
|
61
|
+
# 1) 先停掉 dsh web(运行中的服务会锁住依赖,装完再起)
|
|
62
|
+
dsh plugin --profile web add "github:OMSociety/dsh-fishpai#v1.0.2"
|
|
63
|
+
# 2) 重新启动 dsh web
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**方式二:clone 到本地再装**
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
git clone https://github.com/OMSociety/dsh-fishpai D:\WorkSpace\dsh-fishpai
|
|
70
|
+
dsh plugin --profile web add "github:OMSociety/dsh-fishpai"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
> 装好后**刷新一下浏览器页面**,右侧栏就会多出「鱼排编辑器」入口(官方右侧栏的 `+` 菜单 / 引导页里也能找到)——只重启宿主不够,客户端产物是页面加载时取的。
|
|
74
|
+
> 本插件零运行时依赖,不受 `minimumReleaseAge` 影响;客户端产物 `lib/client.js` 已入库,不需要本地构建。
|
|
75
|
+
|
|
76
|
+
**装完怎么用**
|
|
77
|
+
|
|
78
|
+
1. 让模型 `fishpai_open` 打开一篇 Markdown → 右侧栏应**自动弹出**鱼排并显示正文与预览
|
|
79
|
+
2. 在面板里打字 → 预览跟着变;选中文字按 `Ctrl/⌘+B` → 变成 `**加粗**`,`Ctrl+Z` 能撤销
|
|
80
|
+
3. 截图后 `Ctrl/⌘+V` → 正文出现 ``,预览里能看到图,文档同级多出 `assets/` 目录
|
|
81
|
+
4. 光标放在某段上点「+批注」写一句要求,再到正文里写一行 `<!-- 鱼排: 这里补个过渡 -->`
|
|
82
|
+
5. 让模型 `fishpai_read` → 它应当说出**你改了哪一块、批注要求什么、占位在哪一行**
|
|
83
|
+
6. 让模型 `fishpai_write`(`mode: "patch"`)→ 只有那块变了,你其它改动原样保留
|
|
84
|
+
7. 点「复制到公众号」→ 粘进公众号编辑器,版式正确(标题 / 列表 / 引用 / 表格 / 信息卡片)
|
|
85
|
+
|
|
86
|
+
## 模型工具
|
|
87
|
+
|
|
88
|
+
| 工具 | 作用 | 关键参数 |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| `fishpai_open` | 打开 / 新建文档,并在右侧栏弹出面板 | `path`(可省扩展名,自动补 `.md`)、`markdown`(新建时写正文)、`theme` |
|
|
91
|
+
| `fishpai_read` | **改稿前必做**:读块级 diff、批注、占位、图片提醒与块 id | `doc_key`、`include` |
|
|
92
|
+
| `fishpai_write` | 改稿。必须带 `base_revision`;优先按块改 | `doc_key`、`base_revision`、`mode`(`patch` / `replace`)、`patches[{block_id 或 block_index, op, markdown}]` |
|
|
93
|
+
| `fishpai_render` | 导出可粘贴 / 归档的自包含 HTML(本地图片内嵌 base64) | `out_path`(可省扩展名)、`theme`、`theme_spec`(临时自定义主题,不落盘)、`publish`(`false` = 预览原样形态)、`embed_images` |
|
|
94
|
+
| `fishpai_theme` | 工作目录级的**「自定义主题」**(一套,`set` / `show` / `clear`):模型在某套内置主题上只覆盖想改的槽位,面板主题列表里就是那一个占位 | `action`、`theme_spec` |
|
|
95
|
+
|
|
96
|
+
模型的标准动作顺序是 **`open` → 等你改 → `read` → `write` → 你点复制**;技能 `fishpai`
|
|
97
|
+
(随插件注册)里写明了这套纪律与排版口径,模型会在需要时自己读。
|
|
98
|
+
|
|
99
|
+
## 面板快捷键
|
|
100
|
+
|
|
101
|
+
| 快捷键 | 作用 | 快捷键 | 作用 |
|
|
102
|
+
|---|---|---|---|
|
|
103
|
+
| `Ctrl/⌘ + B` | 加粗 | `Ctrl/⌘ + Alt + 1/2/3` | 一级 / 二级 / 三级标题 |
|
|
104
|
+
| `Ctrl/⌘ + I` | 斜体 | `Ctrl/⌘ + Alt + 0` | 正文(去掉标题) |
|
|
105
|
+
| `Ctrl/⌘ + E` | 行内代码 | `Ctrl/⌘ + Shift + .` | 引用 |
|
|
106
|
+
| `Ctrl/⌘ + K` | 链接 | `Ctrl/⌘ + Shift + 8` / `+ 7` | 无序 / 有序列表 |
|
|
107
|
+
| `Ctrl/⌘ + Shift + X` | 删除线 | `Tab` / `Shift + Tab` | 缩进 / 反缩进 |
|
|
108
|
+
| `Ctrl/⌘ + S` | 保存 | `Ctrl/⌘ + Shift + C` | 复制到公众号 |
|
|
109
|
+
| `Ctrl/⌘ + V` | 粘贴图片(或拖进来) | `Ctrl/⌘ + Enter` | 添加批注(在批注框里) |
|
|
110
|
+
|
|
111
|
+
编辑器右上角的「快捷键」按钮里就是这份表(Mac 显示 `⌘`、Windows 显示 `Ctrl`)。
|
|
112
|
+
|
|
113
|
+
## 数据放在哪
|
|
114
|
+
|
|
115
|
+
| 位置 | 内容 | 说明 |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| 你指定的 `.md` | 文档正文 | 普通 Markdown,任何编辑器都能改;鱼排不往正文里塞标记 |
|
|
118
|
+
| `.fishpai/docs/` | 没指定路径时新建的文档 | `fishpai_open` 省略 `path` 就落在这里,按标题命名 |
|
|
119
|
+
| `<文档同级>/assets/` | 粘贴进来的图片 | 相对路径引用(`assets/xxx.png`),文档搬走图也跟着走 |
|
|
120
|
+
| `.fishpai/state/` | 主题、revision、baseline、批注 | 按文档路径哈希命名;删掉会丢批注、历史与「模型上次写入的基线」(正文不动,但模型暂时看不出你改了什么) |
|
|
121
|
+
| `.fishpai/history/` | 历史快照(最多 50 份) | 面板「历史」抽屉里可一键回滚 |
|
|
122
|
+
| `.fishpai/theme.json` | 「自定义主题」(工作目录级,只有一套) | `fishpai_theme set` 写、`clear` 删;改坏了静默退回「默认公众号」 |
|
|
123
|
+
| `.fishpai/.gitignore` | 忽略 `state/`、`history/`、`theme.json` | 插件自建,只追加缺失的行(你写的改动一字不动);正文与图片是否入库由你自己决定,主题想跟仓库走就用 `git add -f` |
|
|
124
|
+
|
|
125
|
+
## 开发
|
|
126
|
+
|
|
127
|
+
```powershell
|
|
128
|
+
npm install # 只有 devDependencies(esbuild / typescript / @types/react / @types/react-dom / @deepseek-ai/cordis)
|
|
129
|
+
npm test # 全量回归:golden + 站点对照 + 块/diff/批注/补丁 + 宿主红线 + 微信兼容层 + 主题规格 + 图标双版本对照 + bundle + 快捷键 + 挂载 + 客户端 store 时序
|
|
130
|
+
npm run typecheck # 客户端 TSX 类型检查
|
|
131
|
+
npm run build # 重新打包 lib/client.js(改完客户端必须跑,并提交产物)
|
|
132
|
+
npm run check:build # 确认 lib/ 无漂移
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
目录与「改东西去哪」:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
plugin/index.mjs 宿主入口:注册工具 + /fishpai/api 路由 + fishpai 技能
|
|
139
|
+
plugin/core/ 渲染内核(ESM,零依赖):runtime / markdown / render / diff / notes / patch / theme-info / theme-spec
|
|
140
|
+
plugin/host/ 宿主侧:工具契约、HTTP 路由、文档存储、图片、自定义主题
|
|
141
|
+
plugin/vendor/ 上游 themes.js + markdown-it 14.1.0 + highlight.js 11.9.0 + hljs-map.json
|
|
142
|
+
client/ 客户端源码(TSX → esbuild 打成 lib/client.js)
|
|
143
|
+
lib/client.js 客户端 bundle(入库;dsh plugin add 不做构建)
|
|
144
|
+
skills/fishpai/ 鱼排技能:教模型怎么选主题、怎么按块改稿
|
|
145
|
+
legacy-site/ 上游 SPA 原样留存,便于复核渲染一致性
|
|
146
|
+
test/ golden、站点对照、块/diff/批注/补丁、宿主红线、微信兼容层、主题规格、图标双版本对照、bundle 形态、快捷键、真实 Cordis 挂载、客户端 store 时序
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
用微信官方校验器复验(需要本机 Chrome,不进依赖):
|
|
150
|
+
|
|
151
|
+
```powershell
|
|
152
|
+
git clone --depth 1 https://github.com/wechatjs/verify-article-structure-spec "$env:TEMP\was"
|
|
153
|
+
cd "$env:TEMP\was\cli"; $env:PUPPETEER_SKIP_DOWNLOAD='true'; npm install
|
|
154
|
+
$env:PUPPETEER_EXECUTABLE_PATH='C:\Program Files\Google\Chrome\Application\chrome.exe'
|
|
155
|
+
npx tsx src/index.ts <导出的 article.html> --json # isValid: true 即通过
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## 支持与致谢
|
|
159
|
+
|
|
160
|
+
- 如果这个插件对你有帮助,欢迎点亮 Star,有问题和建议请提交 [Issue](https://github.com/OMSociety/dsh-fishpai/issues) 或 [Pull Request](https://github.com/OMSociety/dsh-fishpai/pulls)。
|
|
161
|
+
- 想改主题或加一套自己的:主题定义集中在 `plugin/vendor/themes.js`,加完跑 `npm run test:golden:regen` 重生成 golden
|
|
162
|
+
|
|
163
|
+
- [MoPai 墨排 / mopai-markdown](https://github.com/ye4wzp/mopai-markdown)(MIT):渲染管线、主题、以及"复制到公众号"的整套行为都来自这里
|
|
164
|
+
- [markdown-it](https://github.com/markdown-it/markdown-it)(MIT)与 [highlight.js](https://github.com/highlightjs/highlight.js)(BSD-3-Clause):随包内嵌的 vendor 资产
|
|
165
|
+
- [DeepSeek Harness](https://github.com/deepseek-ai/dsh):插件、右侧栏与技能的宿主
|
|
166
|
+
|
|
167
|
+
## 许可证与作者
|
|
168
|
+
|
|
169
|
+
[MIT](LICENSE)。上游 `mopai-markdown` © 2026 [@ye4wzp](https://github.com/ye4wzp);本仓库新增部分 © 2026 [@OMSociety](https://github.com/OMSociety)。
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# DSH bundle layer: mount the host plugin that registers the fishpai tools,
|
|
2
|
+
# the /fishpai/api routes, and the bundled `fishpai` skill.
|
|
3
|
+
#
|
|
4
|
+
# `name` is the module specifier DSH imports (the vendor/loader resolves
|
|
5
|
+
# `options.name`), so it must be the published package name, not the repo name.
|
|
6
|
+
# The same package also declares its browser half through `dsh.client` +
|
|
7
|
+
# `exports["./client"]`, which the client module loader serves as one bundle.
|
|
8
|
+
- insert:
|
|
9
|
+
- id: fishpai
|
|
10
|
+
name: dsh-fishpai
|