diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 19:22:40 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 19:22:40 +0200 |
| commit | d5d175118138249fe7d9e85d1bc65fb0b7e3a398 (patch) | |
| tree | 232c9c709b378acefff08bd7e7d930a7edb861fc /README.md | |
| parent | a9faf42cfbb1c060ac69f703f0c78616656566cb (diff) | |
| download | lectio-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.md | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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 — |
