Bundle
dsh-markdown-xyy
版本记录 + Markdown 对话主题排版 —— DeepSeek Harness 插件(动态 define 与常驻安装双通道)
- Source
- mengnanxyyyy
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 9 hours ago
Readme
# dsh-markdown-xyy
**给 DeepSeek Harness 的对话 Markdown 换上主题 —— 4 套内置主题(浅/深双档)+ 用户主题自由定义,顺带把插件迭代记成可回滚的版本台账。**
[](LICENSE)
[](https://www.npmjs.com/package/dsh-markdown-xyy)
[](https://www.npmjs.com/package/dsh-markdown-xyy)
[](https://github.com/mengnanxyyyy/dsh-markdown-xyy)
[](README.md)
[](README.en.md)
[](https://linux.do)
运行在 [DeepSeek Harness](https://github.com/deepseek-ai) 上的 Cordis 插件:不动产品基线主题,用纯 CSS 给对话里的 Markdown 排版与配色换肤——标题、代码块、表格、引用、链接、高亮,浅色深色各一套,跟随系统自动切换。
## 📖 项目缘起
做这个项目的初衷很简单:**原生对话样式在面对大量文本时,并不适合阅读。**
大段对话内容堆在一起时,信息是「平」的——标题、引述、重点、代码全靠默认排版撑着,看得越快越抓不住重点。而我每天都要面对大量对话文本,**把重点信息着色、层次分明**就变得特别重要:扫一眼就能定位关键内容,长对话也能快速读完。
这个项目就是为此而来:给对话里的 Markdown 加一套「阅读辅助」主题——重点突出、排版清晰、深浅双档,同时绝不破坏产品默认主题。
> 本项目由 AI 全程协作完成:核心开发是我的合作伙伴 **deepseek-v4-flash**,四套主题的配色由国际友人 **Gemini** 协助调色打磨。
## 主题预览
| 草莓猛男粉 `strawberry-mocha` | Cyber Titanium · 钛影 `cyber-titanium` |
| :---: | :---: |
|  |  |
| 丝绒草莓甜点 × Catppuccin Mocha 暗夜,标准参考实现 | Space Black 空间黑 × 阳极钛紫 × 电光青 × 冷银 |
| High-Vis Clarity · 高清晰 `high-vis-clarity` | 松烟墨黛 `pine-smoke-ink` |
| :---: | :---: |
|  |  |
| 旧显示器 / 低色域友好:高反差冷白 × 纯天蓝 × 黄金重点 | 徽墨沉香 × 矿物朱砂 × 远山黛蓝 × 宣纸冷白 |
> 预览图存放于 [screenshots/](screenshots/),换图直接覆盖同名文件即可。
## 特性
- **✔️ 4 套内置主题**,每套浅色 / 深色双档,☀️ / 🌙 / 🖥️ 外观三档随系统切换
- **✔️ 主题选择持久化**:选中的主题自动记住(localStorage),刷新、新开页面、重启后原样恢复,多标签页实时同步
- **✔️ 用户主题即放即用**:往 `~/.dsh/web-themes-xyy/` 放一个 CSS 文件就是新主题,无需打包、无需升级插件
- **✔️ 实时主题编辑器**:设置页内新建 / 编辑用户主题,语法高亮 + 一键格式化,保存前双端 CSS 校验
- **✔️ 元素级排版增量覆盖**:`:where()` 零优先级,只兜底裸 Markdown 元素,产品显式样式永远优先
- **✔️ 不可变版本台账**:每个迭代 = 一个不可变 Package,run 卡片内即看当前版本与完整历史,可随时回滚
- **✔️ 常驻安装即用即走**:npm registry 一条命令装好(`dsh plugin add dsh-markdown-xyy`),GitHub 备选,进程重启不丢
## 快速开始
前置:一个可运行的 DeepSeek Harness 环境(`dsh web`)。本项目无运行时依赖,无需安装 npm 包。
**常驻安装(推荐,重启不丢)**
直接在 npm registry 安装(已发布:[dsh-markdown-xyy](https://www.npmjs.com/package/dsh-markdown-xyy)):
```bash
dsh plugin --profile web add dsh-markdown-xyy
```
或跟随 GitHub main 最新(镜像尚未同步 npm 新包时可用):
```bash
dsh plugin --profile web add github:mengnanxyyyy/dsh-markdown-xyy
```
加载后进入 **设置 → 主题设置**:切换「系统自带」或 4 套内置主题,新建 / 编辑用户主题。
## 🎨 自定义主题(让 AI 复制粘贴,3 分钟换肤)
主题本质就是一个 **CSS 文件**:改它 = 换肤,无需改代码、无需升级插件,保存/放文件后刷新即生效。
**方式一:让 AI 改(最快,推荐)**
1. 设置 → 主题设置 →「🆕 新建用户主题」→ 选一个最接近你审美的**底子主题**(默认草莓猛男粉,顶部下拉可换钛影 / 高清晰 / 松烟墨黛);
2. 复制编辑器里的整段 CSS,粘贴给任意 AI(DeepSeek / ChatGPT / Claude);
3. 把需求发给它,例如:
```
你是 CSS 主题专家。这是 DSH 对话 Markdown 主题的完整 CSS,文件结构不能破坏:
[把编辑器里的整段 CSS 粘贴到这里]
帮我改成「赛博朋克」风:① 把 --mdvr-accent 和各处 --dsw-alias-* token 改成霓虹紫+电光青
② 背景改深黑 ③ 代码块加霓虹描边。保持三段式结构(body / body[data-ds-dark-theme] /
:where())和全部变量名:只改值、不动名单,输出完整 CSS 让我直接粘贴回编辑器保存。
```
4. 把 AI 返回的完整 CSS 粘贴回编辑器 →「💾 保存」→ 新主题立刻出现在列表可选用(保存前插件会做 CSS 语法校验,不过会拒绝并提示原因)。
**方式二:手写 / 放文件**
- 主题 = 三段式 CSS:① 浅色档 `body {…}` ② 深色档 `body[data-ds-dark-theme] {…}` ③ 元素定制 `:where()`。参考内置 `plugin/assets/themes/strawberry-mocha.css`(全注释的标准参考实现);
- 放文件即新主题:复制成 `~/.dsh/web-themes-xyy/<你的名字>.css` → 设置页「🔄 刷新用户主题」;
- 90% 的换肤效果来自几个关键变量(完整契约见 [docs/variables.md](docs/variables.md)):
- `--dsw-alias-bg-base` / `--dsw-alias-bg-layer-1` … 背景与表面层次
- `--dsw-alias-brand-primary` 品牌 / 强调主色
- `--mdvr-accent` 主题强调色、`--mdvr-link-*` 链接、`--mdvr-code-*` 代码、`--hl-*` 语法高亮
完整规范:[docs/themes.md](docs/themes.md)|变量契约:[docs/variables.md](docs/variables.md)
## 项目结构
```
dsh-markdown-xyy/
├── README.md / README.en.md # 中 / 英 README
├── AGENTS.md # 面向 Agent 贡献者的项目约定
├── LICENSE # MIT
├── package.json # 常驻安装包清单(main=lib/index.mjs,exports ./client)
├── cordis.patch.yml # dsh bundle 插件行(dsh plugin add 后挂载)
├── screenshots/ # 主题预览图(README 画廊)
├── docs/ # architecture / themes / variables / capabilities / development
├── manifest/
│ └── versions.json # 版本台账持久镜像
├── lib/
│ └── index.mjs # 常驻安装版 Host 半(生成产物)
├── client/
│ └── client.js # 常驻安装版 Client 半(__ModuleLoader__ 注册,生成产物)
├── plugin/
│ ├── host.js # Host 半源码镜像(版本台账 + 主题资产 RPC)
│ ├── client.js # 动态版 Client 半产物(勿手改)
│ ├── src/client.core.js # Client 半源码(唯一的可编辑源)
│ └── assets/ # panel.css / themes/(4 个内置主题)
└── scripts/
├── build-client.js # 动态版产物构建
├── build-installed.js # 常驻版双半产物构建
├── check-release.js # 发布门禁
└── minify.js # define 传输用安全精简
```
## 文档
| 文档 | 内容 |
| --- | --- |
| [docs/architecture.md](docs/architecture.md) | 架构:双半分工 / 版本模型 / 主题管线 / 双通道 |
| [docs/themes.md](docs/themes.md) | 主题系统规范:能力边界 / 文件格式 / 用户主题 |
| [docs/variables.md](docs/variables.md) | 变量契约:L0 平台 token / L1 身份色 / L2 常量 / L3 旋钮 |
| [docs/capabilities.md](docs/capabilities.md) | 能力清单与路线图 |
| [docs/development.md](docs/development.md) | 开发与发布流程(一次迭代 = 一个 Package) |
## 开发
迭代流程 **改 MANIFEST → build → define → run → 验证 → tag** 见 [docs/development.md](docs/development.md);发版前跑发布门禁:
```bash
node scripts/check-release.js
```
## 许可
[MIT](LICENSE) © 2026 dsh-markdown-xyy contributorsInstall
dsh plugin --profile web add github:mengnanxyyyy/dsh-markdown-xyy
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-markdown-xyy from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.