[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1lzm85mcsru7z":3},{"code":4,"message":5,"data":6,"timestamp":31},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":27,"homepage":28,"updated_at":29,"history":30},"antfu\u002Ffurifont",24,"A Japanese font that shows furigana by itself.","TypeScript",405,3,32,12,[],"A Japanese font that draws furigana into its own glyphs, so plain text shows readings without ruby markup or JavaScript.","Furifont is worth a look if you publish Japanese text and want readings visible without editing the markup. It is less suitable if accurate readings in context matter more than visual convenience.\n\n## The problem\n\nYou have Japanese copy — a study page, a reading app, a blog — and you want furigana above the kanji. The usual path means wrapping each word in ruby markup or running JavaScript over the text, which adds work and breaks whenever content is copied, pasted or rendered by something that ignores your markup. Furifont changes the rendering step instead: you apply a font family and leave the text plain. What you get is text where words from its dictionary appear with small readings above them, while the underlying characters stay untouched.\n\n## What's different\n\nThe mechanism is OpenType ligatures. Furifont is compiled from Source Han Sans JP or Source Han Serif JP, and a build step reads a word dictionary and draws new glyphs in which a word's reading sits above it. 今日 becomes a single glyph with きょう above it, and longer words win over shorter ones, so 日本語 is handled before 日本. This is the same ligature idea Fira Code uses for code, transplanted to Japanese readings.\n\nThe benefit is deployment simplicity: anything that accepts a custom font — a website, an ebook reader, a design tool — can show readings without `\u003Cruby>`, a plugin or a script. The trade-off is stated plainly by the author: a font sees one run of kanji at a time, not the sentence around it, so furigana can be wrong. A kanji without a clear reading is left bare. You should treat the output as a study aid or convenience overlay, not a correctness guarantee; proper names, unusual readings and context-dependent words are where the dictionary-based approach is most likely to disappoint.\n\n## Who should try it\n\nThis fits people who build Japanese learning material or reading pages and want a quick furigana layer without changing their content pipeline, as well as anyone who wants to try readings on arbitrary web pages via the site's [bookmarklet and userscript](https:\u002F\u002Ffurifont.antfu.me\u002F). It also fits learners who mostly read plain text in a browser and want readings on demand.\n\nIt is a poor fit for anyone who needs linguistically accurate readings in running prose, or for production typography where a wrong reading is unacceptable — teaching material for advanced learners, for instance. It also is not aimed at people who want per-word control over which readings appear; the font applies its dictionary as-is.\n\n## Requirements and limitations\n\nOn the web, the main setting is line-height: the README says to use 1.6 or more so the furigana is not clipped, and 1.7 in its example. Builds come from the [latest release](https:\u002F\u002Fgithub.com\u002Fantfu\u002Ffurifont\u002Freleases\u002Flatest) as Sans and Serif, in hiragana or romaji, plus a variable font whose furigana follows the text weight. The license splits: code is MIT, fonts are SIL OFL 1.1, and the dictionary data is CC BY-SA 4.0, so redistributing a customized build means checking the attribution requirements for the dictionary sources.\n\nBuilding your own variant — another base font, word list, furigana letters or sizes — requires Node 22.18 or later and goes through the `furifont` CLI. Settings live in a config file, with defaults in the repository; the [design notes](https:\u002F\u002Fgithub.com\u002Fantfu\u002Ffurifont\u002Fblob\u002Fmain\u002Fdocs\u002Fdesign.md) explain how glyphs and ligatures are planned. Ongoing upkeep mostly means updating the dictionary, since readings come from bundled data rather than from sentence analysis.\n\n## HotRepo's take\n\nHotRepo first tracked the project at 12 days old and recorded it on the NEW-REPOSITORY board (新项目榜, not the overall Trending board) for TypeScript at #24 with 405 total stars on 2026-10-25 — one dated snapshot, not a daily-growth series. There is not enough comparable board history to judge whether interest persists. The specific thing to check before adopting is the dictionary's coverage of the words you actually publish; the [design document](https:\u002F\u002Fgithub.com\u002Fantfu\u002Ffurifont\u002Fblob\u002Fmain\u002Fdocs\u002Fdesign.md) explains why readings can be wrong.",{"slug":19,"name":20},"media","Media & Design",[22,23,24,25,26],"devframe","font","furigana","japanese-learning","ligatures-font","MIT","https:\u002F\u002Ffurifont.antfu.me\u002F","2026-10-25T06:47:18Z",[],1792919681]