summaryrefslogtreecommitdiff
path: root/lib/render/view.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 10:39:47 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 10:39:47 +0200
commit1935f40c156563c134f87093bf6ec8da1cf4fc46 (patch)
tree28e26f391c2b7c034e680b3e46d8dadb000ef7e3 /lib/render/view.ml
parentcd46163fa347bbc49bf8008d70d408f62feabda5 (diff)
downloadcolitur-1935f40c156563c134f87093bf6ec8da1cf4fc46.tar.gz
colitur-1935f40c156563c134f87093bf6ec8da1cf4fc46.zip
fix(naming): the rite prints its display name, not the internal id ef
The booklet's title page and running header read "Ordo 2027 . ef" -- an internal identifier reaching a reader, the same defect class the sanctoral/temporal slugs were already fixed for. lang/la.ini and lang/en.ini each gain a [rite] section mapping the rite id to a reader-facing name, sourced from the Missal's own title page (docs/research/LT.txt:6 "MISSALE ROMANUM", :15 "EDITIO TYPICA") plus the 1962 dating this project uses throughout (rules-register.md, CLAUDE.md) -- both cited in the ini comments, marked PATTERN since the phrase combines two title-page elements rather than quoting one verbatim heading. Lang.t gains a rite table/lookup (same total, miss-echoes-the-key contract as every other lookup here); View.of_days exposes rite_name alongside the existing rite field, which stays the stable key exactly as slug is kept beside name. Every shipped template that printed {{rite}} now prints {{rite_name}} instead. test_lang_coverage.ml gains a coverage assertion over every rite id the engine can emit -- one today -- so a second rite module (OF) landing without a matching [rite] entry fails loudly instead of printing its own bare id. Goldens regenerated through the Test_view.view_of path test_render_golden.ml itself uses (English with a Latin fallback), not the CLI (whose --lang default is plain Latin and would have pinned output the tests never produce). test/cli.t's own JSON prefix assertion updated to match: rite_name is a real new key in that generic view dump, sitting right after rite.
Diffstat (limited to 'lib/render/view.ml')
-rw-r--r--lib/render/view.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/render/view.ml b/lib/render/view.ml
index bbb8c7d..7bd5416 100644
--- a/lib/render/view.ml
+++ b/lib/render/view.ml
@@ -191,6 +191,12 @@ let of_days ~lang ~vocab ~rite ~year days =
in
T.Obj
[ ("rite", str rite);
+ (* The reader-facing display name (lang/*.ini's own [rite] section,
+ Defect 1) -- [rite] itself stays the stable internal key, exactly
+ as [slug] is kept beside [name] on a day/commemoration. Every
+ template that used to print the bare id ("ef") now prints this
+ field instead. *)
+ ("rite_name", str (Lang.rite lang rite));
("year", str (string_of_int year));
("term", term_value lang);
("weekday_headings", weekday_headings lang);