Basic English — 离线单词背诵闪卡
概述
将完整的离线英语单词背诵闪卡 Web 应用部署到用户本地,用户双击 index.html 即可在浏览器中开始背单词,无需服务器、无需网络。
核心功能
- 850 个 Ogden 基础英语词汇,每个词汇含中文释义 + 2 个英文例句
- SRS 间隔重复算法:智能安排复习,遗忘曲线驱动
- 翻转闪卡:正面看单词,翻转看释义和例句,关键词高亮
- 词库管理:支持导入/导出 JSON 词库、多词库切换、手动添加/删除单词
- 学习统计:掌握率、正确率、每日学习活动图
- 完全离线:所有数据内嵌 + localStorage 存储,无任何网络依赖
部署工作流
当用户触发此技能时,按以下步骤操作:
Step 1: 确定目标目录
询问用户想把应用放在哪个目录,或使用以下默认路径:
- Windows:
C:\Users\<用户名>\basic-english\ - macOS:
~/basic-english/ - Linux:
~/basic-english/
如果目标目录已存在,提示用户确认是否覆盖。
Step 2: 复制应用文件
将 assets/ 目录下的 4 个文件复制到目标目录:
| 文件 | 说明 |
|---|---|
index.html |
主页面(内联 Bootstrap CSS) |
style.css |
自定义样式(翻转动画、弹窗、Toast) |
app.js |
核心逻辑(SRS、词库管理、850词数据内嵌) |
words.json |
850 词完整数据(备用,app.js 已内嵌) |
复制命令示例(根据系统选择):
# 检查目标目录是否存在,不存在则创建
mkdir -p <目标目录>
# 复制 4 个文件
cp "<skill_dir>/assets/index.html" "<目标目录>/"
cp "<skill_dir>/assets/style.css" "<目标目录>/"
cp "<skill_dir>/assets/app.js" "<目标目录>/"
cp "<skill_dir>/assets/words.json" "<目标目录>/"
其中 <skill_dir> 为本 Skill 的安装路径,即 ~/.workbuddy/skills/basic-english/。
Step 3: 验证部署
确认 4 个文件都已成功复制,检查文件大小不为 0:
ls -la <目标目录>/
Step 4: 告知用户使用方法
向用户展示以下信息:
- 打开方式:用浏览器直接打开
<目标目录>/index.html即可使用 - 学习流程:
- 看到英文单词 → 点击「显示释义」→ 看到中文释义和例句
- 认识 → 点「✅ 认识」;不认识 → 点「❌ 不认识」
- 系统自动安排下次复习时间
- 词库管理:点击顶部「📚 词库管理」按钮
- 导入 JSON 词库(格式:
[{"word":"apple","meaning":"苹果","examples":["..."]}]) - 切换不同词库
- 手动添加/删除单词
- 导出备份
- 导入 JSON 词库(格式:
- 长按卡片:长按闪卡 1.5 秒可删除当前单词
- 数据存储:所有进度保存在浏览器 localStorage 中,清除浏览器数据会丢失进度
JSON 词库格式
支持的词库 JSON 格式(向后兼容):
// 格式 1: 完整版(推荐)
[{"word": "apple", "meaning": "苹果", "examples": ["I ate an apple.", "The apple is red."]}]
// 格式 2: 无例句
[{"word": "apple", "meaning": "苹果"}]
// 格式 3: 纯单词列表(安装后会自动补全释义)
["apple", "book", "cat"]
技术细节
- 前端:纯 HTML + CSS + JavaScript,无框架依赖
- CSS:内联 Bootstrap 5.3 最小集 + 自定义 style.css
- 数据存储:localStorage(键名
basic_english_progress_v1、basic_english_vocabs_v1、basic_english_active_vocab_v1) - SRS 算法:基于 strength 值(-3 ~ +10)的间隔重复,间隔梯度 [0, 5min, 30min, 2h, 1天, 3天, 7天]
- 离线原理:数据内嵌为 JS 常量(
DEFAULT_WORDS_DATA),不依赖fetch()读取本地文件
常见问题
Q: 打开 index.html 页面空白? A: 确保用现代浏览器(Chrome/Edge/Firefox)直接双击打开,不要用 IE。确保 index.html、style.css、app.js 三个文件在同一目录。
Q: 如何添加自定义词库? A: 准备一个 JSON 文件(参考上方格式),点击「📚 词库管理」→「选择文件导入」即可。
Q: 如何在新设备上使用? A: 将整个目录复制到新设备,用浏览器打开 index.html。但学习进度(localStorage)不会自动迁移,需手动导出/导入。
Q: 如何卸载/删除? A: 直接删除目标目录即可。如需清除学习数据,在浏览器中打开 index.html → 按 F12 → Application → Local Storage → 删除相关键值。