aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 19:22:40 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 19:22:40 +0200
commitd5d175118138249fe7d9e85d1bc65fb0b7e3a398 (patch)
tree232c9c709b378acefff08bd7e7d930a7edb861fc /README.md
parenta9faf42cfbb1c060ac69f703f0c78616656566cb (diff)
downloadlectio-d5d175118138249fe7d9e85d1bc65fb0b7e3a398.tar.gz
lectio-d5d175118138249fe7d9e85d1bc65fb0b7e3a398.zip
caldata: allow an external universal sanctorale to override the embedded one
The universal calendar of saints can now be refreshed or replaced without a rebuild: if ~/.config/lectio/sanctorale/of.ini (OF) or ef.ini (EF) is present and parses, caldata.Base uses it instead of the embedded calendar; a missing or malformed file falls back to the embedded default, so the binary stays self-contained and correct out of the box. Local diocesan/national additions keep layering on top via calendars/ + `use` (unchanged). The temporal cycle and precedence rules stay in code -- only the sanctorale is data. - caldata.SetSanctoraleDir hook (mirrors bible/naming/i18n); Base() prefers the external file per form. config.SanctoraleDir(); wired in the CLI, TUI and web entry points. Tests cover override, no-file, and malformed-file fallback. - README: new "Calendar of saints" section (two tiers: overlay via `use`, replace via sanctorale/<form>.ini); config comment notes the override.
Diffstat (limited to 'README.md')
-rw-r--r--README.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/README.md b/README.md
index 5d51e44..924c700 100644
--- a/README.md
+++ b/README.md
@@ -297,6 +297,27 @@ data — no external service:
Switch per run with `--lectionary new|traditional`, or set `lectionary`
in config for a permanent default.
+## Calendar of saints
+
+The universal sanctorale (saints, ranks, colours, names) is embedded and
+oracle-validated, so it works out of the box. Because the Church changes it over
+time, it can be updated or customised without a rebuild, in two tiers — both plain
+INI:
+
+- **Local additions overlay on top.** Drop `~/.config/lectio/calendars/<name>.ini`
+ and enable it with `use = <name>` (comma list, later wins). A layer **adds** a
+ saint, **overrides** any field of an existing one (rank, colour, name, readings),
+ or **suppresses** it (`suppress = true`). This is the place for diocesan/national
+ propers and one-off rank fixes — you only write the deltas.
+- **Replace the whole base.** Drop `~/.config/lectio/sanctorale/of.ini` (Ordinary
+ Form) or `ef.ini` (Extraordinary Form) and it is used *instead of* the embedded
+ calendar — for shipping a full refreshed calendar (regenerate with
+ `scripts/gen-sanctoral.go`). A missing or malformed file falls back to the
+ embedded default, so the tool stays self-contained and correct.
+
+The temporal cycle and the precedence rules (Table of Liturgical Days) are
+computed in code — only the sanctorale is data.
+
## Scripture corpora
Only the Latin **Vulgate** (`vul`) — public domain, lectio's own hand-curation —