weibaohui/dsh-code-poem

dsh-code-poem

dsh 插件 · 代码如诗:4598 条古诗词/成语/龙文鞭影典故随机成笺,随会话事件自动浮现

Uncategorizeddeepseek-harnessdsh

@weibaohui/dsh-code-poem

代码如诗:4598 条古诗词、成语与《龙文鞭影》典故随机成笺——右下角浮着一只可拖拽的线装书小宠(同 dsh-xiuxian 的宠物形式),写代码的间隙它自己一跳,为你翻开一张宣纸诗笺,赠你一句古人的话。

点书翻笺 · 滚动读释义 · 拖角调大小 · 拖书搬家

事件联动

诗笺通过会话事件流感知你在做什么,在恰好的时机送上一张:

会话事件诗笺缘起
回合结束【功行圆满,且读一句——】
工具报错【路遇荆棘,诗以解之——】
回合中止【收势小憩,翻页片刻——】
道友提问(25% 概率)【道友起意,赠笺一张——】

防打扰三件套:90 秒内最多自动浮现一次、14 秒无操作自动收起、页脚 🔔 随时可关联动。

核心功能

  • 随机诗笺:右下角线装书小宠,点一下书儿跳起、翻开诗笺;每次内容随机,近期 10 条不重复;按住可把书拖到任意位置,卡片跟随
  • 随机范围设置:⚙ 打开勾选面板,勾哪几类就出哪几类(带各类条数),localStorage 持久化;将来加学科知识点自动出现在列表里
  • ❤ 收藏:喜欢的句子点爱心收藏(localStorage 持久化);⭐ 打开收藏夹,点击回看、✖ 取消
  • 固定尺寸卡片:卡片默认 352×460 不随内容变长,正文区滚动看全部——原文、释义、白话解说、古注、出处、故事、注释、赏析;右下角拖拽可调大小(自动记住),✕ 收起与 ❤ 收藏、🎲 换一条等操作同在底部一条工具栏
  • 宣纸美学:米色宣纸卡片、楷体墨字、朱砂印章类别戳(诗/词/文/语/典)、双线装裱边框,在暗色 Web UI 里恰如一张真笺
  • 低频批量拉取:每 5 分钟(或回合开始时)一次批量取 30 条存本地池,事件触发与换笺都从池里消费,几乎不产生请求压力

安装

dsh plugin --profile web add @weibaohui/dsh-code-poem -w

装完重启 dsh web 即生效。数据集已随包内置(6.8MB),无需任何配置。

使用

  1. 打开 Web UI → 右下角找到 线装书小宠,点它翻开诗笺(首次自动抽一条);拖住书可挪位置
  2. 🎲 换一条:从当前过滤类别里再抽一张
  3. ❤ 收藏:遇到心动句子点一下;⭐ 打开收藏夹回看全部收藏
  4. 滚动阅读:解释、典故、赏析都在卡片内滚动查看;拖卡片右下角可调大小(下次沿用),✕ 收起
  5. ⚙ 勾选随机范围;🔔 开关事件联动

示例

场景你会看到的诗笺
测试全绿,回合结束【功行圆满】诗笺:「青山依旧在,几度夕阳红」
构建、测试一路报错【路遇荆棘】典故笺:塞翁失马——"路遇荆棘,诗以解之——"
长回合跑完想歇口气【收势小憩】词笺:晏殊《浣溪沙》"无可奈何花落去,似曾相识燕归来"
刚提了一个问题(偶发)【道友起意】成语笺:管中窥豹——"从竹管小孔里看豹……"

数据集说明

data/entries.json 随包自带 4598 条,统一 schema(id / kind / title / sub / author / front / digest / sections):

  • 典故 2064:《龙文鞭影》初集+二集逐四字句,含白话释义(乔天一译注本)、古注(杨臣诤增订·李恩绶校补)、简注
  • 成语 1930:《中华成语故事大全集》+《中华成语典故大全》两书合并,含释义/出处/故事/注释/溯源/用典
  • 诗词文 604:陈引驰《你应该熟读的中国古诗/古词/古文》,含注释与赏析

schema 与三个上游知识库("一条目一 md + 变更记录")解耦:scripts/export_data.py 负责把三种 md 版式解析成统一格式,上游任何修订重跑导出即可,插件侧不感知来源差异。

数据更新后可 curl "http://127.0.0.1:19080/dsh-code-poem/api/reload" 热刷新,或用插件配置 dataDir 指向外部数据集。

开发

npm run export:data   # 从三个本地知识库重新导出数据集
npm run build:client  # 重建 client/bundle-mc.js
npm run check         # 语法检查
npm test              # smoke 测试

HTTP API(/dsh-code-poem/api/*):/draw 随机抽一条、/bundle?n=30 批量抽取、/entry?id= 取整条、/feed?after=N 会话事件流、/status、/reload。

联系我 :飞书群