dsh-Recite
一个带左侧栏入口的 DSH 插件:把专业课笔记拆成知识卡片,逐张抽卡背诵,用「熟悉 / 模糊 / 忘记」记录掌握情况,按天数安排抽背,并用日历记录每天的打卡。界面采用 Apple 风格的现代简洁设计:系统无衬线字体、大圆角、柔和阴影和充足留白。
安装
- 克隆或下载本仓库到本地。
- 用 DSH 的插件安装功能(
plugin_manager install_bundle)指向本目录,也就是包含package.json的目录。 - 安装后刷新页面(F5),左侧栏出现 dsh-Recite。
仓库内
package.json使用本地包名@local/recite-cards,这不影响从 GitHub 克隆后在本地安装。
入口
- 左侧栏面板图标(在「插件」「定时任务」之后,id 为
recite)。 - 主面板标题:dsh-Recite。
如果刚安装后没有看到图标,刷新一次页面(F5)即可加载最新的客户端代码。
界面风格
- 全局使用
-apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif,正文 16px、主标题 24px、辅助文字 13px,行高 1.6。 - 主要卡片和面板使用 24px 圆角,按钮与输入框使用 12px 圆角。
- 阴影统一为柔和的
0 4px 24px rgba(0, 0, 0, 0.04),减少硬边框和浓重投影。 - 卡片内部留白 24px,模块之间留白 32px;窗口变窄时自动收紧。
使用流程
- 打开左侧栏「dsh-Recite」→「导入」。
- 上传
.docx/.txt/.md文档,或直接粘贴文字,点「自动拆分知识点」。 - 在预览里取消勾选拆分不准确的条目,选择「追加」或「替换」,导入。
- 到「今日复习」的「今日背诵内容」先温习,再点「开始检验」;也可以直接到「抽卡背诵」。
- 卡片正面出现时先自己回忆,再点「显示答案」;然后如实选择:
- 熟悉:默认 6 天后再抽背;
- 模糊:默认 4 天后再抽背;
- 忘记:默认 3 天后再抽背。 这是抽背模式的固定天数,可在「导入 → 复习设置」里改成任意天数。
- 「今日复习」会按到期时间列出今天要复习的卡片,并加上每天的新卡上限。
- 「卡片库」可按分区筛选、搜索、编辑或删除卡片。每张卡片右侧有「查看」按钮,答案会在卡片标题下方原地展开;编辑也在同一位置展开,不会用弹窗遮住右侧书库,方便对照原文补充。「导入 → 数据备份」可导出 / 导入 JSON。
快捷键:空格显示答案,1 熟悉、2 模糊、3 忘记。
今日背诵内容(先温习再检验)
- 在「今日复习」页打开「今日背诵内容」,点「选择内容」。
- 在弹窗里按关键词、分类、分区筛选,勾选想背的卡片;支持「全选当前结果」「自动选到期 + 新卡」「只选当天到期」「清空选择」。
- 保存后,区域里会列出当天内容。点单条的「温习」展开答案;「展开全部答案」可以一次看全。
- 区域内部有两个模式,不再单独占一块:
- 我的计划:显示你为今天挑选的卡片;温习完点「开始检验」,抽卡只包含这些卡片。
- 推荐复习:直接显示系统按到期时间和新卡上限推荐的内容;点「按推荐复习」开始。
- 「更换内容」随时调整;「清空今日选择」后仍可切到「推荐复习」。
除了今天,也可以直接安排之后的任意一天:
- 在首页「打卡日历」或「未来 7 天」里点某一天,选择那天的背诵内容;
- 每天的计划独立保存,到那天会自动成为「今日背诵内容」。
首页日历与时间表
打卡日历和未来 7 天并排放在同一个横向区域里:左侧日历占约 60%,右侧占约 40%,两块各自独立,中间留 32px 空隙;窄屏会自动上下叠放。打开右侧书库、主区域被压缩时,两栏底端仍保持齐平,未来 7 天会自动收紧行距,不出现突出部分。
- 打卡日历:月视图,每天显示「已打卡 ✓」「已安排 N 张」「到期 N 张」三类标记;可以切换月份。
- 连续打卡 / 累计打卡:按卡片复习记录自动统计;连续打卡截至今天(今天还没抽背时截至昨天)。
- 未来 7 天:列出每天已安排的卡片数和到期数,可直接「安排 / 调整」,今天还可以一键「开始」。
书库与阅读器
插件页面右侧可以展开书库分栏,一边抽背一边查原文;会记住上次的展开状态。首次打开时桌面默认展开,手机默认收起。
- 展开 / 收起:收起时屏幕最右侧有一个半透明
<<浮动箭头,点击后书库从右侧滑入,主面板会同步平滑让位;展开后书库左边缘会出现半透明>>箭头,点击即可收起。打开 / 关闭都有 0.5s 的渐进入场 / 退场动画;顶栏书本图标也可以切换。 - 上传书本:阅读器顶部点「+」上传
.txt/.md/.docx;也可以在「导入」页上传文档,解析时会自动把原文加入书库。之前已经导入过的文档不会自动出现,把原文档在阅读器里再上传一次即可,不会重复生成卡片。 - 切换书本:阅读器顶部同一行,左边是占满剩余宽度的书名下拉框,右边是上传 / 删除两个按钮;书名过长时会完整悬浮显示。搜索框比书名下拉框更窄、更扁,给书名留出空间。
- 搜索定位:在搜索框输入关键词,阅读器会自动滚动到第一处命中并高亮;命中多处时,上方小窗会列出「找到 N 处」,点任意一条可跳到对应位置,也可以用搜索框右侧的
‹/›或计数前后翻。选中任意一条,或点击小窗以外的区域,预览小窗会自动收起;搜索框右侧的箭头按钮可以手动展开 / 收起预览。 - 全文滚动:阅读器不是只截取一段,整本书在一个独立滚动区里,像 PDF 阅读器一样上下滑动。
- 复制:正文可以直接选中复制,也可以点「复制全文」。删除需要连续点击两次确认。
书库文件保存在 %USERPROFILE%\.dsh\recite-cards\books\ 下,每本书一个 JSON 文件;和卡片数据分开,不影响抽背进度。
抽背节奏
默认是「几天一次」的抽背模式,而不是当天高频重复:
- 熟悉 → 6 天后
- 模糊 → 4 天后
- 忘记 → 3 天后
适合在完成每天正式背书任务之后,用插件做一次抽背检查。三个天数都可以在「导入 → 复习设置」里改。
修改间隔只影响之后的抽背;如果想让现有卡片立刻按新间隔安排,点「按新间隔重排全部卡片」——所有已经抽过的卡片会从今天起按新间隔重排,未学习的新卡不变。
指令助手
面板右下角有一个圆形悬浮按钮,点开后在屏幕中央打开对话窗口。可以直接用一句话完成任务:
排期 / 计划
预定明天的背诵内容(自动按到期 + 新卡安排)安排明天 游戏说/安排周三 艺术起源查看明天/查看 2026-11-09把游戏说加到明天/从明天移除 游戏说/清空明天今日内容/开始复习/温习 游戏说
改卡片
把游戏说的答案改成 …把游戏说的正面改成 …把游戏说的分类改成 艺术起源给游戏说的答案加一句 …
外观 / 设置
主题色 rgb(120, 80, 200)/背景色 230 240 250换主题 薄荷绿设置新卡 30设置间隔 6 4 3(熟悉 / 模糊 / 忘记,单位天)重排卡片打开卡片库/打开导入/打开外观
查询 / 搜索
统计/进度搜索 艺术起源把游戏说设为熟悉帮助查看全部指令
输入不是指令的关键词时,会按关键词搜索卡片,并给出「开始检验 / 加入今天」按钮。助手是插件内的本地指令解析,不联网、不调用模型,响应即时。
知识点拆分规则
空行是唯一的知识点边界:一个空行分隔出来的段落 = 一张卡片。
段落内的
1.2.3.、(1)、①、定义:、代表人物:、观点:、评价:都保留在同一张卡片背面,不会因为编号而被拆碎。段落首行如果是标题(例如
游戏说(选择+简答)或一、游戏说),标题成为卡片正面,其余内容全部进入背面;(选择+简答)这类题型标记会自动去掉。没有标题时,
名词:释义的冒号前部分、或问:/答:的题目会成为正面。只有一整段全部是互不相关的「名词:释义」行时,才会拆成多张卡片,例如:
教育心理学:研究学校教育情境中学与教的心理规律的学科。 学习:由经验引起的行为或行为潜能的相对持久的变化。同一段里挤了多道
答:(多道简答题之间没有空行)时,会按题号自动分开。解析完成后会单独列出「忽略的段落」:这些段落没有被识别成卡片(例如只有一行标题、只有标签没有内容、格式不完整)。默认不导入,你可以逐段勾选后整段加入,导入后再到卡片库编辑。
与已有卡片正面重复的内容会单独显示为「跳过 N 张重复」,不会混进「忽略的段落」。
外观主题
「外观」页签提供 9 种主题:
- 跟随 DSH、雾霭蓝、薄荷绿、蜜桃橙、薰衣草、樱粉、暖沙、海盐青、石墨蓝灰。
也可以自定义 RGB:
- 主题色:按钮、进度条、选中态、图表、顶栏图标和「已掌握」分区使用;
- 背景色:页面顶部的柔和光晕使用;
- 两者都按 R / G / B 三个 0–255 的通道编辑,点「应用自定义主题」生效;
- 「由主题色生成背景色」可一键得到同色系的淡色背景;
- 主题会跟随卡片数据保存,刷新页面或重启后保持。
语义色(忘记红、模糊黄、熟悉绿)不随主题变化,避免检验时看错状态;浅色主题色会自动改用深色文字,保证按钮对比度。
分区规则
- 未学习:还没抽过。
- 忘记区 / 模糊区 / 熟悉区:按最近一次检验结果归档。
- 已掌握:达到第 5 阶以上且近期掌握度 ≥ 80%。
掌握度是按最近若干次结果做时间衰减加权计算的平均分(熟悉 1、模糊 0.5、忘记 0),用于排序和展示。
数据
- 卡片、复习进度、每天的安排(
plans)和外观主题由 Host 半保存在:%USERPROFILE%\.dsh\recite-cards\state.json(若设置了DSH_PROFILE_DIR,则保存在该 profile 目录下)。 - 书库原文保存在同一目录下的
books\<id>.json,每本书一个文件。 - 浏览器 localStorage 里另有一份缓存,仅在插件服务不可用时兜底。
- 建议定期在「导入 → 数据备份」导出 JSON。
给 Agent 的导入工具
插件注册了 recite_cards 工具:
action=add:传入cards: [{ front, back, category? }],按 front 去重后写入;action=list/action=stats:查看卡片和统计;action=clear+confirm="CLEAR":清空。
上传文档后,Agent 也可以先用自己的文件读取能力解析文档,再调用这个工具直接生成卡片。
文件说明
| 文件 | 作用 |
|---|---|
package.json |
Bundle 清单:Host 入口、dsh.client、locale 和图标导出 |
cordis.patch.yml |
向 profile 插入 recite-cards 行 |
index.js |
Host:状态读写、docx 文本提取、/recite/api/* 路由、recite_cards 工具 |
client.js |
Client:左侧栏图标、主面板、抽卡与复习调度、导入解析、卡片库 |
locale/*.json |
插件管理页的标题与描述 |
icon.svg |
插件管理页图标 |
No comments yet. Be the first to write one.