antfu/furifont
多媒体与设计一款自带注音的日文字体:文字保持纯文本,也能在汉字上方显示假名读音。
如果你发布日文内容,希望在不改标记的情况下显示读音,Furifont 值得一试;但如果你更看重句子语境中的读音准确性,它并不合适。
解决什么问题
你手头有日文内容——学习页面、阅读应用或博客——想在汉字上标出假名。常见做法是用 ruby 标记逐个包住词语,或者用 JavaScript 处理文本;这既增加工作量,也会在复制、粘贴或遇到不认这些标记的渲染环境时出问题。Furifont 改的是渲染这一步:你只需指定字体族,文本保持原样。最终得到的是这样一段文字:词典中收录的词会带小号读音,而底层字符没有被动过。
有什么不同
机制是 OpenType 连字。Furifont 基于 Source Han Sans JP 或 Source Han Serif JP 编译,构建时读取词表,并为每个词画出把读音放在上方的新字形。今日 会变成一个字形,上方带 きょう;较长的词优先于较短的词,因此先处理 日本語,再处理 日本。这与 Fira Code 在代码中用连字的思路相同,只是移到了日文读音上。
好处是部署简单:任何支持自定义字体的环境——网站、电子书阅读器、设计工具——都能显示读音,不需要 <ruby>、插件或脚本。代价作者也写得很直接:字体一次只能看到一段汉字,看不到整句上下文,所以注音可能错误;没有明确读音的汉字会保持无注音。应把它当作学习辅助或方便阅读的叠加层,而不是正确性保证;专有名词、特殊读法和依赖语境的词,最容易让这种基于词典的方式出错。
谁值得试
适合制作日语学习材料或阅读页面、想在不改内容流程的前提下快速加一层注音的人,也适合想通过网站上的 bookmarklet 和用户脚本 给任意网页临时加读音的读者。主要在浏览器里读纯文本、希望随时看到读音的学习者也适用。
不适合需要连续文本中读音准确的人,也不适合错误读音不可接受的排版场景,例如面向高级学习者的教材。它也不是给想逐词控制显示哪些读音的人准备的;字体会按词典原样应用。
使用条件与边界
在网页上,关键设置是行高:README 建议至少 1.6,示例用 1.7,否则注音会被裁掉。字体可从 最新发布 获取,含 Sans 和 Serif、平假名或罗马字版本,以及注音随字重变化的可变字体。许可分开:代码为 MIT,字体为 SIL OFL 1.1,词典数据为 CC BY-SA 4.0;若要再分发定制字体,需要核对词典来源的署名要求。
构建自己的版本——换基础字体、词表、注音字符或字号——需要 Node 22.18 或更高版本,通过 furifont CLI 完成。设置写在配置文件中,默认值在仓库里;设计说明 解释了字形和连字是如何规划的。日常维护主要是更新词典,因为读音来自打包的数据,而不是句子分析。
HotRepo 点评
HotRepo 首次记录时项目仅 12 天,在 TypeScript 的 新项目榜(不是总榜)上以 405 个总 star 排第 24,观测日期为 2026-10-25——只有一个带日期的快照,不是每日增长序列;可比的历史不足以判断热度能否持续。采用前具体要查的是词典对你实际发布词汇的覆盖情况;设计文档 可以帮你在决定前理解读音为什么会出错。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。