Skip to content

lukelzlz/high-school-chinese-recitation-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

高中语文背诵工具

一个纯前端、可直接部署的高中语文背诵练习小工具。

功能

  • 按篇目选择和搜索
  • 逐句背诵
  • 错字高亮对比
  • 随机提示字
  • 正确率统计
  • 手写输入(Canvas 画板 + Workers AI 识别)
  • 本地记录:
    • 使用次数
    • 总输入字数
    • 最近使用篇目
  • 移动端友好
  • 无需后端,默认离线可用(手写识别需网络)

技术路线

这个项目刻意保持为纯静态站点

  • 无 npm
  • 无构建工具
  • 无数据库
  • 无账号系统
  • 无上传原文到服务器

这样做的好处:

  1. 可以直接丢到 GitHub Pages
  2. 可以直接丢到 Cloudflare Pages
  3. 不容易超出 Cloudflare 免费层限制
  4. 用户输入内容默认只保存在本地,不上传

目录结构

.
├── public/
│   ├── index.html
│   ├── styles.css
│   ├── app.js
│   └── data/
│       └── texts.js
├── worker/
│   └── index.js
├── wrangler.toml
├── wrangler.jsonc
└── schema.sql

部署

GitHub Pages

  1. 创建公开仓库
  2. 上传这些静态文件
  3. 在仓库 Settings → Pages 中启用 Pages
  4. 选择从主分支部署

Cloudflare Pages

  1. 新建 Pages 项目
  2. 连接 GitHub 仓库
  3. 构建命令留空
  4. 输出目录填 /
  5. 直接部署

Cloudflare Workers Static Assets

如果要走 Workers,也可以把这些文件作为静态资源直接托管。

推荐使用 wrangler.jsonc 配置,静态文件放在 public/ 目录,Worker 代码放在 worker/ 目录:

  • assets.directory 指向 ./public/
  • main 指向 worker/index.js
  • run_worker_first = true 确保 API 路由由 Worker 处理

支持的后端功能:

  • POST /api/stats — 记录背诵统计
  • GET /api/stats — 全站统计
  • GET /api/stats/me?uid=xxx — 个人统计
  • POST /api/recognize — 手写文字识别(Workers AI 多模态模型)

为什么默认不用 Workers 记统计

因为统计这种东西最容易白白消耗免费额度。

如果每次输入、每次提示、每次切句都请求一次 Workers API:

  • 请求数会快速上涨
  • 还会增加延迟
  • 对这种小工具没必要

所以默认方案是:

  • 本地 localStorage 统计
  • 不上传原文
  • 不上传逐句输入

这是最省资源也最稳的方式。

可选增强方案

如果以后要加 Cloudflare Workers 统计,建议只记录聚合数据:

  • 总访问次数
  • 总开始次数
  • 总完成次数
  • 总输入字数(仅聚合值)

不要记录:

  • 用户原始输入内容
  • 背诵文本原文
  • 用户身份信息

并且建议:

  • 只在进入页面时上报一次
  • 完成全文时上报一次
  • 不要每次按键都请求

这样基本不容易打爆免费层。

内容说明

当前内置的是一批常见高中语文背诵篇目与节选,后续还可以继续补全和校对。

License

MIT

About

高中语文背诵工具:纯静态、可部署到 GitHub Pages / Cloudflare Pages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors