尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

企业网盘选型指南:避开容量陷阱,聚焦权限、协同与安全

企业网盘选型指南:避开容量陷阱,聚焦权限、协同与安全

先给结论:大多数企业选企业网盘,一开始就容易选错方向。他们盯着容量、单价和销售给的演示视频反复比对,最后往往签了容量最大的那个,上线后却发现员工根本不爱用。我参与过多轮企业网盘的选型、迁移和上线推广,从需求…

📅 2026/9/15 13:29:58
微信小程序贪吃蛇源码详解:从状态机到渲染实战

微信小程序贪吃蛇源码详解:从状态机到渲染实战

简介:一份基于微信小程序开发的贪吃蛇游戏完整源代码,面向微信小程序初学者、前端开发者以及对休闲游戏实现感兴趣的学习者,用来理解小程序项目结构、游戏循环与常见交互设计。资源包共22个文件,压缩后约414KB,主要包含…

📅 2026/9/15 13:24:57
Astryx 主题规范(Theme Specifications):主题包决策的知识契约与 Neutral 实战解析

Astryx 主题规范(Theme Specifications):主题包决策的知识契约与 Neutral 实战解析

Astryx 主题规范(Theme Specifications):主题包决策的知识契约与 Neutral 实战解析 【免费下载链接】astryx An open source design system thats fully customizable and agent ready 项目地址: https://gitcode.com/GitHub_Trending/as/a…

📅 2026/9/15 13:24:57
MORE NEWS

更多资讯

📰

20 行代码构建向量索引:CocoIndex 数据索引实战指南

20 行代码构建向量索引:CocoIndex 数据索引实战指南 【免费下载链接】cocoindex Incremental engine for long horizon agents 🌟 Star if you like it! 项目地址: https://gitcode.com/GitHub_Trending/co/cocoindex CocoIndex 是一个开源的数据…

📰

gstack /benchmark-models 指南:如何同题对比 Claude、GPT、Gemini 的延迟、成本与质量

gstack /benchmark-models 指南:如何同题对比 Claude、GPT、Gemini 的延迟、成本与质量 【免费下载链接】gstack Use Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA…

📰

家政派单系统PHP源码解析与策略模式重构

简介:本资源是一套基于PHP开发的家政服务行业实战项目源码,面向Web开发初学者与中级PHP工程师,聚焦订单调度、用户服务与派单逻辑等典型业务场景,助力掌握Web系统从需求到落地的完整开发流程。压缩包共5081个文件,主体…

📰

深度相机与YOLO V5融合:实时目标检测与测距实战(一)

做机器人的朋友应该都有过这种经历:视觉模块只给你输出一个2D的检测框,告诉你“这里有个目标”,但你伸过去抓的时候,发现高度、远近全靠猜。YOLO这类目标检测算法擅长回答“是什么、在哪一片像素上”,它不回答“距离多…

📰

在 cuda-samples 中用 libNVRTC 实现设备端断言调试:simpleAssert_nvrtc 运行时编译实战解析

在 cuda-samples 中用 libNVRTC 实现设备端断言调试:simpleAssert_nvrtc 运行时编译实战解析 【免费下载链接】cuda-samples Samples for CUDA Developers which demonstrates features in CUDA Toolkit 项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-s…

📰

Unity 交互视频开发实战:从热区触发到分支叙事与多平台部署

做交互视频这事,我前后折腾过两个完整项目,一个是品牌方的产品互动广告,一个是带有分支剧情的小型互动短剧。刚开始我也以为这就是“视频播放器 盖几个按钮”的活儿,真正动手才明白,它是在视频工程、UI事件系统、状态…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬