diff --git a/apps/web/docs/fonts.md b/apps/web/docs/fonts.md index 8741294..27d65c9 100644 --- a/apps/web/docs/fonts.md +++ b/apps/web/docs/fonts.md @@ -16,6 +16,8 @@ Checked 2026-10-20. | `SortsMillGoudy-Regular.woff`, `SortsMillGoudy-Italic.woff` | Sorts Mill Goudy Regular / Italic (v003.101) | Copyright (c) 2010, Barry Schwartz (chemoelectric@chemoelectric.org) | SIL OFL 1.1 | https://github.com/google/fonts/blob/main/ofl/sortsmillgoudy/OFL.txt | Keep | | `YanoneKaffeesatz-Light.woff`, `YanoneKaffeesatz-Regular.woff`, `YanoneKaffeesatz-Bold.woff` | Yanone Kaffeesatz Light / Regular / Bold (v1.003) | Copyright 2010 The Yanone Kaffeesatz Project Authors (https://github.com/yanone/kaffeesatz) | SIL OFL 1.1 | https://github.com/google/fonts/blob/main/ofl/yanonekaffeesatz/OFL.txt | Keep | | `ShadowsIntoLight.woff2` | Shadows Into Light (v001.000) | Copyright (c) 2010, Kimberly Geswein (kimberlygeswein.com) | SIL OFL 1.1 | https://github.com/google/fonts/blob/main/ofl/shadowsintolight/OFL.txt | Keep | +| `SGBatang-Regular.woff2`, `SGBatang-Bold.woff2` | SG Batang: subset of KoPub Batang Regular / Bold (v1.01), renamed | Copyright 2014 Ministry of Culture, Sports and Tourism and Korea Publishers Society, Reserved Font Name 'KoPub Batang' | SIL OFL 1.1 | https://github.com/google/fonts/tree/main/ofl/kopubbatang | Keep | +| `NotoSerifDevanagari-Regular.woff2`, `NotoSerifDevanagari-Bold.woff2` | Noto Serif Devanagari, static subsets of the variable font | Copyright 2022 The Noto Project Authors | SIL OFL 1.1 | https://github.com/google/fonts/tree/main/ofl/notoserifdevanagari | Keep | The copyright lines above are copied from each family's upstream `OFL.txt` in the google/fonts repository. They are not all in the font files themselves: the Sorts Mill @@ -28,10 +30,39 @@ copies did not meet that condition. `public/css/webfont/OFL.txt` now sits beside fonts (and is served at `/css/webfont/OFL.txt`) with the three copyright lines followed by the full OFL 1.1 text, as Google Fonts packages it per family. +## Language fonts + +Checked 2026-11-01 against `scripture_versions`: 89 English versions, 7 Korean (`KRBOM`, `KRSEB`, +`KLB`, `KRLDS`, `ERKRB`, `KRBOM67`, `KRREB`) and 1 Hindi (`HIBOM`). `versions.css` declares the faces, +which browsers download only on pages that use them. + +Korean used to ask for KoPub Batang at `fonts.gstatic.com/ea/kopubbatang/v3/`. Those files now +return 404, although Google's CSS at `fonts.googleapis.com/earlyaccess/kopubbatang.css` still lists +them, so each device fell back to its own system font. `KLB` and `KRREB` were not in the rule at all. +The fonts are now self-hosted, so a third party cannot take them away again. `scripts/build-fonts.py` +rebuilds them from the google/fonts sources. + +KoPub licensing: Google's copy is under the OFL, and "KoPub Batang" is a Reserved Font Name. A subset +is a Modified Version, so these files and the CSS family are named `SG Batang`. KOPUS's own download +page for the later KoPubWorld release says serving a font from a server for a web service needs +separate approval. These files do not come from that release. Do not swap them for a KoPubWorld +download without that approval. + +The Korean subset holds the 2,350 KS X 1001 syllables plus every syllable the Korean versions use +(1,425 distinct), about 225 KB per weight. `body` uses `word-break: keep-all`, so Korean lines break +between words; it does not affect English. In Korean versions synthesized bold and oblique are off, +because Hangul has no true italic: headnotes are upright. + +Pages with no version class (parallel view) get these fonts through the `body` stack. Those faces +(`SG Hangul`, the same files as `SG Batang`, and `Noto Serif Devanagari`) have a `unicode-range`, so +a page downloads them only if it has such characters. + ## Served privately The site's text font is the owner's licensed "Goudy Scripture" (one file, `scripture.woff2`: -weight 400, upright, 563 glyphs including Latin Extended and Cyrillic). The owner is licensing +upright, 563 glyphs including Latin Extended and Cyrillic). Its metadata is mixed (usWeightClass +400, but the Bold subfamily and style bits) and its outlines are heavy, about as heavy as Goudy +Old Style Bold, so nothing should thicken it further. The owner is licensing it (decision 2026-10-20). A licence lets the site serve the font to visitors; it does not allow publishing the file in this public repository or in the Docker image. So the file is never committed or built into the image, and the app only points at it. @@ -49,7 +80,7 @@ emits, after the stylesheets, a `