TTNAN/yinshi
TTNAN/yinshi has 73 GitHub stars and 15 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-11 12:54 UTC. Last push 2026-11-05.
吟诗:给古诗自动注上拼音的诗词阅读器。宣纸水墨风设计,接入海量古诗词库,可按诗名、诗人、诗句搜索;支持横排、竖排、田字格三种版式,多音字按统编语文教材读音校正,也可点字改音,并可切换吟诵旧读;附带遮字背诵、飞花令、今日一诗,一键打印、导出图片、复制带拼音文本。适合孩子学古诗、家长辅导和课堂教学,手机电脑都能用。
Measured star growth
- in 24h
- +1
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original吟诗
一张宣纸,一首诗,字上带拼音。给孩子读诗,给自己温诗。

吟诗是一个打开就能用的网页:首页是「今日一诗」,每个字上方标着带声调的拼音,可以横排、竖排、田字格三种方式读,也能遮字背诵、默写、听朗读、玩飞花令和接龙。不用注册,不装软件,所有记录都留在你自己的浏览器里。
小红书版
在小红书里也能用:一个离线的简化版小工具,收录统编课本古诗词 237 首(小学 113、初中 85、高中 39),带拼音,能遮字背、挖空默写、背会打卡,还能生成分享卡。不用登录,没网也能打开。
![]() 用小红书 App 扫码打开 |
![]() |
功能
阅读与拼音
- 今日一诗:内置 72 首小学必背古诗(统编版课本文本),每天轮换一首;逢春节、清明、重阳和二十四节气(按北京时间),优先换上应景的诗。
- 三种版式:横排(拼音在字上方、长句不拆开)、竖排(从右往左或从左往右)、田字格(四线三格拼音格 + 米字虚线田字格,适合描红)。
- 读音更准:课本读音修正(如 朝辞白帝 zhāo、千里江陵一日还 huán)默认打开;吟诵旧读(斜 xiá、衰 cuī)可选;任何一个字都可以点开改读音,按这首诗记住。
- 点词看注释:收录赏析的诗里,难懂的词下面有朱色虚线,点一下先看释义,再选读音。
- 作者与赏析:宽屏时诗笺左边是作者生平(朝代、生卒年、字号、简介、代表作),右边是诗意、情感、创作背景和「相关的诗」;手机上收在诗笺下方,点开再看。
- 平仄标注(参考):五七言绝句、律诗可以在每个字下标出平(—)仄(|),常见入声字按仄声标出。
- 简体 / 繁體 一键切换,注音、注释、赏析一起转换。繁体下每种字体都整首用同一种字:朱雀仿宋、霞鹜文楷、思源宋 / 黑本身收有繁体(Google 简体版少收的几个繁体字由同一设计的 TC 版补上,只在繁体时下载);小薇、毛笔、快乐、行书四种只有简体字,诗里一有它们没有的字,整首换成同类字体(小薇→思源宋体,毛笔、行书→霞鹜文楷,快乐→jf 粉圆体),诗笺下方会注明,不再一首诗里两种字混排。
- 缺字与长标题:古籍里原文缺字的「□」(虚缺号,也认 ▢ ⬜ ◻ ⎕ ■ 等写法)显示成和汉字一样大的缺字格:细线方框、淡墨斜线、正中一个小「缺」字,拼音位留空,横排、竖排、田字格都和别的字对齐不重叠;它不能点,和默写时可以填字的虚线空格一眼就能分开。朗读时跳过,默写不会挖到它。「随机」和「飞花令」会尽量避开有缺字的诗(搜索、链接打开的照常显示)。「词牌·题目」中间的间隔号居中、不留怪空隙;特别长的标题自己分成长短均匀的几行,不再把正文字号拖小。
学习与背诵
- 朗读:用系统自带的中文语音读整首或单句,字随声音逐个点亮;语速 0.5–1.5,可以单句循环。设备上没有中文语音时按钮自动隐藏。
- 遮字背诵:诗句被墨晕遮住,点一句显示、再点遮住;切换版式、简繁、拼音时不会闪出原字。
- 默写:随机挖掉一些字,点空格从四个字里选,或者自己写;写完给出得分,写错的字标红。
- 收藏与背诵打卡:喜欢的诗点「收藏」,背会了点「背会了」,之后按 1、2、4、7、15 天提醒复习,首页会提示今天该复习哪几首。
- 分类找诗:按年级(统编版,只收较确定的篇目)和主题(四季、传统节日、山水田园、思乡、送别、边塞、咏物、爱国、童趣……)浏览课本诗。
学习列表:定向练习(比如「今天的作业」)
- 多个学习列表:新建、改名、删除、上下调整顺序;一键新建「今日作业 MM-DD」。原来的「我的诗单」(收藏)自动变成默认列表「我的诗单」,收藏数据原样保留,诗笺下的「收藏」继续往里放。
- 加诗的三种办法:诗笺下方「加入列表」选列表;搜索结果每首右边的「+」;或者一次粘贴几个诗名(每行一个,可带作者:
静夜思 李白、李白《赠汪伦》),先在课本 72 首和本站的全唐诗 / 全宋诗诗名索引里匹配,逐条显示认出了哪首、哪条没找到。 - 开始练习:按顺序一首一首练,每首按你选的步骤走——朗读 → 看拼音跟读 → 遮字背诵 → 填空默写,上方显示「第 2 / 5 首」和当前步骤;最后点「已会」或「再练」,再练的排到队尾再来一遍。练完给出小结(每首的默写得分、再练次数),点「打卡」记下今天练过;可以顺手把已会的诗放进背诵复习(1、2、4、7、15 天)。
- 分享给孩子 / 学生:一条链接(
#list=…&name=…,只含诗的编号和列表名),对方打开后确认即可导入,适合老师、家长布置作业。 - 打印列表:整张列表的诗依次排在 A4 上,可选拼音、大字、译文、注释。

诗人足迹地图
- 李白、杜甫、苏轼、白居易、王维、陆游、辛弃疾、李清照八位诗人,一生按时间顺序的停留地:选一位诗人,墨色虚线把各站连起来,朱印标出第几站;点一个地方,看那几年的年份、年纪、经历,以及在那里写下的诗,点诗名直接打开读。
- 「总览」把八位诗人到过的地方都标出来,点一个地方看谁在那里写过什么(比如杭州:苏轼、白居易、陆游、李清照)。
- 古地名大字、今地名小字(长安·西安、黄州·黄冈、夔州·奉节、山阴·绍兴……)。底图是一张写意的「山河图」:只画黄河、长江、汉水、淮河等主要河流和几片大湖、几处名山的小记号,不画任何疆界和海岸线;地点按今天城区的近似经纬度落点。行迹与作品归属只收较为公认的,年份多为约数,个别写作地点有不同说法的诗会注明。
- 入口:「诗单 → 分类」里的「诗人足迹」,或作者生平栏里名字旁的「足迹」。地图的脚本和数据只在打开时才下载(合计约 19 KB gzip)。



找诗与游戏
- 搜索:诗名、诗人、诗句都能搜。按诗人搜索时列出「某某的诗」,可以一直加载更多——李白 1000 多首、杜甫近 1500 首。
- 随机:可按朝代、诗 / 词 / 曲、诗人筛选。
- 飞花令:出一个字,随机来一首含这个字的诗,诗里这个字用朱砂色标出。
- 诗词接龙:电脑出一句,你从三句里挑出以上一句最后一个字开头的那句。
个性化与分享
- 8 种诗文字体:仿宋(朱雀仿宋,默认)、宋体、楷体、黑体、小薇、毛笔、快乐、行书;只换中间诗笺上的字,只下载选中的那一种。
- 字号、拼音大小、行距 可调,放大后句子在格内换行、不裁切。
- 7 种纸面:宣纸、素笺、竹简、绢本、青花、夜读(深色)、信笺。纸面只换中间那张诗笺,页面其余部分保持宣纸样子;唯独夜读是整页变暗(顶栏、搜索、侧栏、地图、列表一起变深色,手机地址栏也变深)。纹理都是自己绘制的;还可以上传一张自己的照片当诗笺背景,调节遮罩浓淡,随时移除。
- 设置只管诗笺:字体、字号、纸面都只改中间的诗笺,顶栏、搜索、侧栏、菜单始终是统一的宣纸样子和仿宋字体,换来换去页面也不乱。
- 打印与导出:打印干净的 A4,可勾选拼音、大字、译文、注释、赏析;导出 PNG 图片(跟随纸面,带落款小印);复制带拼音的文本。


隐私
- 不需要账号,没有统计脚本。
- 页面开着时如果网站更新了,切回标签页或点「随机」时会提示「吟诗有新版本」,点一下刷新(只是不走缓存地读一次首页看版本号)。
- 学习列表、收藏、背诵打卡、改过的读音、字体与纸面等设置都只存在你这台设备的浏览器里(localStorage)。分享列表的链接只含诗的编号和列表名。
- 自定义背景图在本机缩小后存进浏览器的 IndexedDB,不会上传到任何地方。
- 搜索、随机、飞花令时,浏览器会直接访问下面列出的公开诗词接口和 CDN(没有任何中转服务器),只发送你输入的查询词。
数据来源与致谢
| 内容 | 来源 | 许可 |
|---|---|---|
| 诗词检索、随机(主诗库) | snowtraces/poetry-source 的公共接口 poetry-api.snowtraces.com |
运行时调用,仓库不含其代码 |
| 唐诗、宋诗 | chinese-poetry/chinese-poetry:仓库只含由它生成的索引(site/data/cp/),诗的正文运行时从 unpkg(备用 raw.githubusercontent.com)读取 |
MIT |
| 备用诗库、单字与飞花令 | 诗泉 palemoky/chinese-poetry-api 的公共实例 poetry.palemoky.com |
运行时调用 |
| 小学必背 72 首 | 统编版课本文本(古诗为公有领域作品) | — |
| 作者生平、诗意赏析、注释、分类、诗人足迹 | 吟诗原创撰写(tools/content/) |
MIT |
| 足迹地图的河流、湖泊 | Natural Earth 1:10m 河流中心线与湖泊(由 tools/build-map.py 简化成 site/data/rivers.json) |
公有领域 |
| 拼音 | pinyin-pro | MIT |
| 简繁转换 | opencc-js(词典来自 OpenCC) | MIT / Apache-2.0 |
| 字体 | 朱雀仿宋(本站托管 v0.212 分片版,含繁体字形;由 tools/build-zhuque.py 按原 中文网字计划 的分片重新切分)、霞鹜文楷、思源宋体 / 思源黑体(Noto Serif SC / Noto Sans SC)、思源宋体 / 黑体 TC、霞鹜文楷 TC、jf 粉圆体(Huninn,繁体下替代快乐体)、站酷小薇(另托管修补版 Yinshi XiaoWei Fix:原字体「回圃圄圊崮徊痼蛔」8 个字轮廓画坏、显示成黑方块,由 tools/build-xiaowei-fix.py 修好)、马善政楷书、站酷快乐体、龙藏体、Noto Serif(拼音) |
SIL OFL 1.1 |
感谢以上项目的作者与维护者。也感谢 tjsky/pinyin-annotator 带来的最初灵感(吟诗是独立重写的项目,不含它的代码)。完整的第三方许可见 LICENSE。
本地运行
网站就是 site/ 目录里的静态文件,不需要构建:
python3 -m http.server -d site 8080 # 然后打开 http://localhost:8080
(直接双击 index.html 时浏览器不允许读取 JSON,需要像上面这样起一个本地服务。)部署到任何静态托管都可以:把 site/ 作为网站根目录。本仓库用 GitHub Actions 发布到 GitHub Pages。
常用维护命令:
sh tools/bump-version.sh # 发版前更新 index.html 里的 ?v= 版本号
node tools/build-cp-index.mjs # 重新生成唐诗宋诗索引(下载 npm 包 [email protected])
python3 tools/content/build.py # 由 tools/content/ 生成作者、赏析、分类数据
python3 tools/content/footprints.py # 生成诗人足迹 site/data/footprints.json
python3 tools/build-map.py # 由 Natural Earth 数据生成足迹地图的山河底图 site/data/rivers.json
python3 tools/build-zhuque.py ZhuqueFangsong-Regular.ttf # 用朱雀仿宋新版重新切分 site/fonts/zhuque-fangsong/(繁体字单独成片)
python3 tools/build-xiaowei-fix.py ZCOOLXiaoWei-Regular.ttf # 重新生成站酷小薇 8 个坏字的修补版 site/fonts/zcool-xiaowei-fix/
诗词接口地址、限流与超时在 site/poem/config.js;读音修正表在 site/poem/poem-readings.json(每条 {"p": "[朝]辞白帝", "r": "zhāo"},用 [ ] 标出要修正的字,整段片段出现时才生效)。
测试
pip install playwright && python3 -m playwright install chromium
python3 tests/e2e.py # 无头浏览器验收(录好的接口数据,不联网);YINSHI_PART=base / v3 / v4 / v5 / v6 / v7 / v8 / v8m / visual 分段(v8 / v8m:缺字格、长标题、繁体字形;v8m 还逐字检查 8 种字体 × 繁体没有黑方块 / 缺字框、整首同一字体)
python3 tests/live_api.py # 真实接口与 CDN:返回结构、跨域头
python3 tests/live_browser.py https://ttnan.github.io/yinshi/ # 真实浏览器直连线上站点
许可
代码与原创内容:MIT © 2026 Caesar (TTNAN),见 LICENSE。
请我喝杯咖啡
如果吟诗帮到了你或孩子,愿意的话可以请我喝杯咖啡 ☕ 微信扫码赞赏即可。

Explore related projects
sindresorhus/awesome
😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]
535,510 starsEbookFoundation/free-programming-books
:books: Freely available programming books
401,447 starsnilbuild/developer-roadmap
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
371,850 starsvinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
334,154 stars
