yfwu2020/dsh-reply-visual ↗★ 0
@yfwu2020/dsh-reply-visual
将AI回复的HTML和SVG渲染为右侧栏单页图解 适合希望将AI生成的复杂概念或代码直观可视化的用户。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yfwu2020/dsh-reply-visual说明文档
阅读完整 README ↗配置项
改 profile 的 cordis.patch.yml 里 id: reply-visual 那一行的 config:。
模型与生成
| 键 | 默认 | 说明 |
|---|---|---|
provider / model | 空 | 固定模型路由;留空 = 跟随「设置 → 默认模型」 |
reasoningEffort | low | 画图靠长输出、不靠深推理;要更讲究可调 high |
temperature | 0.4 | 画图要一点自由度;别调到 1 以上 |
maxTokens | 0 | 单页输出上限。默认 0 = 不传这个参数,交给模型/供应商自己的上限(早先默认 8000 会把页面切在 SVG 中间) |
timeoutMs | 180000 | 单次生成超时 |
maxSourceChars | 24000 | 原文上限,超出取头 60% + 尾 40%(结论在尾部,不能砍尾) |
页面渲染与手感
| 键 | 默认 | 说明 |
|---|---|---|
allowScripts | true | iframe 是否放脚本;false = sandbox="" 纯静态 |
wheelSmooth | true | 滚轮走"跟手 + 惯性"(触摸手感);false = 中间段落交回原生滚轮,只在边界做橡皮筋 |
wheelSmoothFactor | 0.22 | 惯性逼近系数(0.02~0.8);越小越"拖沓",越大越"利落" |
elastic | true | 橡皮筋总开关(prefers-reduced-motion 下自动关) |
elasticMax | 140 | 橡皮筋最大可拉距离(像素);0 = 关闭 |
elasticResist | 0.5 | 橡皮筋阻尼(0.05~1,越小越"沉");曲线非线性,越拉越沉 |
elasticStiffness | 0.18 | 回弹刚度(0.005~0.3,越小越软);配 elasticDamping 0.52 时不过冲 |
elasticDamping | 0.52 | 回弹阻尼(0.4~0.98);调高会重新开始过冲、弹两下 |
elasticTop | false | 顶端是否也做橡皮筋(默认关:到顶继续拉没有过拉效果) |
elasticMaxHoldMs | 10000 | 橡皮筋硬上限(0 = 不限):到点强制回弹,继续拉伸不重置 |
elasticGestureGapMs | 120 | 两次滚轮/触摸之间超过它就当作"新的一次操作" → 立刻弹回 |
bottomGap | 0 | 页面底部留白像素(默认关):让最后一行避开右下角胶囊;观感是死空白,所以改用 elastic 解决 |
maxPageBytes | 2000000 | 「页面偏大」的提示阈值(不是拒绝线;只有 >16MB 才拒绝渲染) |
缓存
| 键 | 默认 | 说明 |
|---|---|---|
resultCacheTtlMs | 0 | 回放的时间判据:默认 0 = 不限时(文件在就回放);设正数才会到点强制重新生成 |
maxCacheEntries | 200 | 条数上限:result/ 与 prepared/ 各自保留最新这么多 |
cacheMaxBytes | 33554432 | 缓存总字节预算(32MB):超了从最老的开始删 |
cacheMaxAgeMs | 0 | 按龄清理(0 = 不限龄) |
maxRequestsPerMinute | 20 | 本地限流 |
自定义这两份规范
| 键 | 默认 | 说明 |
|---|---|---|
skillPath | 包内 skills/visual-page/SKILL.md | 可视化规范(做什么 + 环境是什么样) |
designPath | 包内 skills/page-design/SKILL.md | 审美参考(怎么做得好看);填 off = 不注入,留空 = 用包内那份 |