{"id":34501532,"url":"https://github.com/carlin-rj/word-tool","last_synced_at":"2026-05-28T22:31:59.566Z","repository":{"id":320660050,"uuid":"1082930179","full_name":"carlin-rj/word-tool","owner":"carlin-rj","description":"轻松背单词工具","archived":false,"fork":false,"pushed_at":"2025-12-16T02:23:37.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-26T23:47:21.907Z","etag":null,"topics":["dictation","tool","word"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlin-rj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-25T02:33:33.000Z","updated_at":"2025-12-16T02:23:40.000Z","dependencies_parsed_at":"2025-10-25T05:25:02.704Z","dependency_job_id":"0e0b1233-d022-46f9-9796-64901c90cd29","html_url":"https://github.com/carlin-rj/word-tool","commit_stats":null,"previous_names":["carlin-rj/word-tool"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/carlin-rj/word-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlin-rj%2Fword-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlin-rj%2Fword-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlin-rj%2Fword-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlin-rj%2Fword-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlin-rj","download_url":"https://codeload.github.com/carlin-rj/word-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlin-rj%2Fword-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33629560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dictation","tool","word"],"created_at":"2025-12-24T02:02:30.885Z","updated_at":"2026-05-28T22:31:59.546Z","avatar_url":"https://github.com/carlin-rj.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 单词默写练习系统\n\n一个基于浏览器的单词默写练习工具，支持多种存储方式和离线使用。\n\n## 功能特性\n\n### 核心功能\n- **词库管理**: 支持添加、编辑和管理多个词库标签\n- **两种练习模式**: \n  - 默写模式\n  - 翻译模式\n- **错题本系统**: 自动记录错误单词，支持查看和复习\n- **考试记录**: 保存每次考试的详细记录和统计数据\n- **语音朗读**: 支持单词发音朗读功能\n\n### 存储支持\n- **IndexedDB**: 默认启用，支持大量数据存储\n- **后端API**: 可配置连接后端服务\n\n### 界面特性\n- 响应式设计，支持移动端使用\n- 标签化词库管理\n- 实时练习进度显示\n- 错题本查看和清理\n- 考试历史记录查看\n\n## 技术架构\n\n### 前端技术\n- 纯JavaScript实现（无框架依赖）\n- HTML5 + CSS3\n- 模块化设计\n- 支持ES6特性\n\n### 存储架构\n```\n存储管理层 (storageManager.js)\n├── 适配器层 (storageAdapter.js)\n├── 配置管理 (config.js)\n└── 多种存储引擎支持\n    ├── IndexedDB\n    └── 后端API\n```\n\n## 快速开始\n\n### 运行项目\n1. 克隆项目到本地\n2. 在项目根目录启动HTTP服务器：\n   #### 使用Node.js (需要安装http-server)\n   ```\n   npx http-server -p 8000\n   ```\n   #### 使用Python HTTP服务器\n   ```\n   python -m http.server 8000\n   ```\n4. 在浏览器中访问 `http://localhost:8080`\n\n### 词库格式\n默认从`https://word.iciba.com`复制的单词格式\n词库采用特定格式，示例如下：\n```\naunt [ɑ:nt]  \nn. 阿姨; 姑妈等\ncard [kɑ:d]  \nn. 卡片; 名片; 纸牌\nfold [fəuld]  \nv. 折叠; 折起来; 合拢 n. 褶;...\ngrandfather [ˈɡrændˌfɑ:ðə]  \nn. 祖父; 外祖父\n```\n\n### 使用流程\n1. **词库管理**: 在词库管理界面添加和编辑词库\n2. **标签分类**: 为不同词库创建标签便于管理\n3. **开始练习**: 选择标签开始默写练习\n4. **模式切换**: 可在两种练习模式间切换\n5. **查看统计**: 实时查看练习统计数据\n\n## 配置说明\n\n### 存储配置\n在 `config.js` 中配置存储方式：\n```javascript\nstorage: {\n    // 存储类型: 'indexeddb', 'api'\n    type: 'indexeddb',\n    \n    // 后端API配置（仅在type为'api'时使用）\n    api: {\n        endpoint: '', // 后端接口地址\n        timeout: 5000 // 请求超时时间（毫秒）\n    }\n}\n```\n\n## 文件结构\n```\nword/\n├── index.html          # 主页面\n├── style.css           # 样式文件\n├── script.js           # 主要逻辑\n├── storageManager.js   # 存储管理器\n├── storageAdapter.js   # 存储适配器\n├── config.js           # 配置文件\n└── README.md           # 说明文档\n```\n\n## 开发说明\n\n### 添加新存储方式\n1. 在 `storageManager.js` 中添加新的存储方法\n2. 在 `save`/`load`/`remove` 方法中添加对应分支\n3. 更新 `config.js` 配置选项\n\n### 扩展功能\n- 词库导入/导出功能\n- 更多练习模式\n- 数据统计图表\n- 用户个性化设置\n\n## 浏览器兼容性\n- Chrome 50+\n- Firefox 50+\n- Safari 10+\n- Edge 15+\n\n## 注意事项\n1. IndexedDB在隐私模式下可能不可用\n2. 语音功能依赖浏览器支持\n3. 大量数据建议使用IndexedDB存储\n4. 后端API需要HTTPS支持（生产环境）\n\n## 许可证\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlin-rj%2Fword-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlin-rj%2Fword-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlin-rj%2Fword-tool/lists"}