Earthworm v1.0:把单词一个个敲出来的连词造句英语学习工具

发布时间:2026/9/15 13:29:55
Earthworm v1.0:把单词一个个敲出来的连词造句英语学习工具 Earthworm v1.0把单词一个个敲出来的连词造句英语学习工具【免费下载链接】earthwormLearning English through the method of constructing sentences with conjunctions项目地址: https://gitcode.com/GitHub_Trending/ea/earthwormEarthworm 是一个以连词构句为核心的开源英语学习工具屏幕上给出一句不完整的英语句子学习者逐个敲入缺失的单词系统按单词粒度判定对错。CHANGELOG.md 显示项目于 2024-03-13 发布 v1.0.0这一版一次带出 10 项新功能和 12 项修复把课程数据、输入交互、排行榜三件事同时做完整。这篇文章从代码出发看它是什么、为什么能运转、以及普通开发者如何参与。最核心的交互为什么逐词填句这一节回答Earthworm 靠什么把敲一句英文从一次考试变成有即时反馈的练习。题面输入组件在解决什么游戏入口是 apps/client/components/main/Game.vue输入逻辑集中在 apps/client/components/main/QuestionInput/ 目录。与整句敲完再批改的听写不同Earthworm 把句子拆成单词逐个校验敲错时用户可以从上一个错误单词处删回重敲——这个能力在 CHANGELOG 里是独立的一条功能support to delete back to the previous incorrect word。判定粒度落在单词层正是连词构句的产品含义敲的是词搭的是句。一张字母宽度对照表一个工程细节藏在 questionInputHelper.ts。文件里维护了一张字母→宽度表按字母累加估算一个单词的显示宽度const width word .toLocaleLowerCase() .split() .reduce((totalWidth, letter) totalWidth (letterWidths[letter] || OTHER_LETTER_WIDTH), 0); // 左右留白 return width 1;它在逐字母估算单词在屏幕上的宽度。这段计算对应发布说明里的功能 the word is suggested by the width of the input box#149输入框按宽度提示下一个单词的长短让学习者根据空格宽度猜词。没有这张宽度表提示要么太模糊要么直接泄露答案。55 份课程背后的生产线逐词判定依赖结构化课程数据这一节看数据从哪来、错了怎么修。从 PDF 到 JSON课程内容集中在独立子包 packages/xingrong-courses/data/courses/下是 01.json 到 55.json 共 55 份课程data/pdf/放着对应教材 PDFsrc/parsePDF/是一组把 PDF 解析为结构化数据的脚本。整条链路如下课程文件是项目里的一等公民根 package.json 中db:upload对应首次初始化后上传课程数据README.zh-CN.md 又单列pnpm db:update作为修改课程错误后的标准动作。内容贡献最终都以 JSON 文件和一条数据库命令的形式落地。数据纠错是可追溯的翻阅 CHANGELOG.md最高频的提交类型是课程内容修正fix course 18 the ninety-first field is incorrectupdate course 12-74fix course issue, closes #118。这说明课程错误走的是和代码 bug 相同的流程提 issue、修数据、提交信息里写明课程编号。README 的常见问题一节同样要求改完错误后执行pnpm db:update。这种可追溯性是 55 份课程入库后仍能放心被人改动的前提。排行榜与定时任务学习工具自己长不出习惯这一节看 Earthworm 用什么机制把偶尔打开变成每天打开。Redis 有序集合与每周清零排行榜实现在 apps/api/src/rank/rank.service.ts用户每完成一课Redis 的 ZSet可自动排序的数据结构里三个键——周榜、月榜、年榜——各加一次分。清零逻辑在 cron-job.service.ts周榜在上海时区每周一凌晨 2 点重置private static readonly EVERY_MONDAY_AT_2AM 0 2 * * 1; Cron(CronJobService.EVERY_MONDAY_AT_2AM, { timeZone: TIME_ZONE }) async resetRankListWeekly() { this.rankService.resetRankList(RankPeriod.WEEKLY); }它让竞争周期化而不是终身记账新参与者每周都有起点。CHANGELOG 记录该模块来自 issue #176add scheduled task module and weekly reset ranking function随 v1.0.0 上线。 用户声音即需求信号另一层动机来自社交。评论区数据快照在 apps/client/assets/comments.json用户评论时间点赞数comments.json 快照代表性评价中文摘要cuixiaorui2024-021342不仅是工具更是日常习惯Nauxscript2024-02520希望加入学习后打卡分享hildxd2024-03486一直刷课程而不觉得无聊zuowendong2024-02232一种全新的娱乐方式fengstats2024-02197强烈的成就感统计口径仓库内 comments.json 的 likeCount 字段评论时间由毫秒时间戳换算文件未标注快照时点。其中 Nauxscript 明确留言希望和我一样学习后进行打卡分享这条功能诉求拿到全榜第二的点赞数与排行榜系统指向同一个方向让学习者看见彼此的进度。用户 cuixiaorui 的评论则以 1342 个赞成为文件里记录最高的单条评价日常习惯是这份数据里出现频率最高的词。如何给 Earthworm 提交第一个 PR看懂机制之后参与的门槛在 packages/docs/contribution/index.md 里被拆成了六步Fork → clone 自己的副本 → 建feat/xxx或fix/xxx分支 → push → 回到 Fork 页面点 Compare pull request → 等待合并。文档特别强调不要直接在 main 分支提 PR以免提交记录混杂。需要 clone 仓库时地址是 https://gitcode.com/GitHub_Trending/ea/earthworm。README 另设一道前置要求提交前先跑测试。前端是 Vitest 单测加 Cypress e2eapps/client后端是 Jest 单测加 e2eapps/api需先启动 Docker 里的 testdb 与 testRedis。提交信息的硬校验提交能否入库由一条正则把守逻辑在 scripts/verify-commit.tsconst commitRE /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.\))?: .{1,50}/;它强制type(scope): 描述的格式不合规则直接退出并打印示例。这个脚本通过prepare钩子simple-git-hooks挂在 git 上目的写在报错文案里自动生成 changelog。根 package.json 的changelog命令用 angular 预设运行 conventional-changelogCHANGELOG 里issue 编号 短提交信息的整齐体例就是这套机制的产物。本地部署者付出的成本这个项目免费但把整套环境跑起来并不轻边界需要说清楚。四个必备组件README.zh-CN.md 列出的要求是pnpm ≥ 8、Node.js ≥ 20、Postgres、Redis外加 Docker 来拉起数据库与 Redis 容器用户系统采用 Logto一套开源身份认证服务需先解压仓库根目录的logto_db_init_data.zip恢复初始数据再依次执行pnpm db:init建表、pnpm db:upload灌课程。对只想看代码的读者课程 JSON 与前端组件源码无需启动上述任何环境即可阅读。商业化边界同样是明示的packages/docs/question/index.md 对项目完全免费吗的回答是不完全免费……未来会采用订阅模式。会员功能落在 apps/api/src/membership/ 目录与社区贡献长期共存是理解这个项目的另一半。想直接看课程长什么样打开 packages/xingrong-courses/data/courses/ 目录即可——55 个 JSON 文件就是完整课程不必搭环境任选一份就能读。评论区用户 zuowendong 的原话或许是最好的注脚每天闲下来的时候我都会习惯性地打开这款应用忍不住去挑战一下自己这对我来说是一种全新的娱乐方式【免费下载链接】earthwormLearning English through the method of constructing sentences with conjunctions项目地址: https://gitcode.com/GitHub_Trending/ea/earthworm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询