diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 82 |
1 files changed, 69 insertions, 13 deletions
@@ -3,10 +3,12 @@ `lectio` is a self-contained Go rewrite of the Python `daily-reading` tool (`ewangelia.py`). It **computes** the day's Catholic liturgical calendar and readings entirely offline — Ordinary Form (modern) or Extraordinary Form -(1962) — and shows the text across four public-domain scripture corpora with +(1962) — and shows the text across public-domain scripture corpora with correct psalm versification. There is no network dependency at all: the -calendar, the lectionary citations, and the scripture corpora are all -embedded in the binary. +calendar and the lectionary citations are embedded in the binary. Only the +Latin Vulgate corpus is embedded by default, so the shipped binary carries no +third-party scripture text; the other translations are opt-in (see +[Scripture corpora](#scripture-corpora)). Three binaries share the same config and reading pipeline: @@ -42,8 +44,9 @@ lectio --version | -v lectio help | -h | lectio <cmd> -h ``` -Versions (all embedded, public-domain): `wuj` (Wujek), `vul` (Wulgata), -`grb` (Grecki), `drb` (Douay-Rheims). +Versions (public-domain): `vul` (Wulgata, embedded by default), plus `wuj` +(Wujek), `grb` (Grecki), `drb` (Douay-Rheims) — opt-in (see +[Scripture corpora](#scripture-corpora)). Flags: @@ -183,7 +186,7 @@ set. An invalid file falls back to defaults with a warning on stderr. ```toml schema_version = 1 lectionary = "new" # "new" (Ordinary Form) or "traditional" (Extraordinary Form, 1962) -versions = ["wuj", "vul", "grb", "drb"] # compare set + TUI cycle order +versions = ["wuj", "vul", "grb", "drb"] # compare set + TUI cycle order; default = corpora available in the build (vul only unless you add more) default_version = "vul" # TUI start / `lectio show` default width = 0 # CLI wrap width; 0 = detect terminal all = false # default to all parts (true) or just the gospel (false) @@ -258,11 +261,13 @@ and overrides any built-in theme of the same name. ## Offline by design -Everything ships in the binary — there is no cache, no harvest step, and no -network access. For any date, `lectio` computes the liturgical day (season, -precedence, calendar of saints) and resolves its reading citations from the -embedded lectionary tables, then renders the verse text from an embedded -scripture corpus. Reading citations are stored in English-canonical form; the +Everything the engine needs ships in the binary — there is no cache, no harvest +step, and no network access. For any date, `lectio` computes the liturgical day +(season, precedence, calendar of saints) and resolves its reading citations from +the embedded lectionary tables, then renders the verse text from a scripture +corpus — the embedded Latin Vulgate, or another corpus you compiled in or +dropped into the corpora dir (see [Scripture corpora](#scripture-corpora)). +Reading citations are stored in English-canonical form; the Psalms are renumbered per corpus (Hebrew→Vulgate for `wuj`/`vul`/`grb`, kept modern for `drb`), and the citation shown in the heading is formatted in your sigla dialect (`sigla_style` / `ui_language`). @@ -274,8 +279,10 @@ which carries the full canon. > The modern Polish text (Biblia Tysiąclecia) is copyrighted and cannot be > embedded; the public-domain Polish corpus is Wujek (`wuj`), which is -> ~16th-century and incomplete. Set `reading_version = "wuj"` for Polish text, -> or keep the default Latin Vulgate for a complete, consistent reading. +> ~16th-century and incomplete. Add `wuj` (build with `make build-full`, or drop +> `wuj.tsv`/`wuj.ini` into your corpora dir — see [Scripture corpora](#scripture-corpora)) +> and set `reading_version = "wuj"` for Polish text, or keep the default Latin +> Vulgate for a complete, consistent reading. ## Lectionaries @@ -290,6 +297,50 @@ data — no external service: Switch per run with `--lectionary new|traditional`, or set `lectionary` in config for a permanent default. +## Scripture corpora + +Only the Latin **Vulgate** (`vul`) — public domain, lectio's own hand-curation — +is embedded in the default binary. The other translations (`wuj`, `drb`, `grb`) +are kept out of the shipped binary so it carries no third-party scripture text, +and they are **not covered by lectio's licence** (see [License](#license)). Add +them in either of two ways: + +- **Compile them in** — `make build-full` (or `go build -tags fullbible ...`) + embeds `wuj`, `drb` and `grb` alongside the Vulgate. Do this only where you may + redistribute those corpora. +- **Drop them in at runtime** — place `<code>.tsv` and `<code>.ini` in your + corpora dir (`~/.config/lectio/corpora/`). The repo ships the files under + `internal/bible/corpora_optional/`; copy the ones you want. A corpus found + there is used by all three binaries without a rebuild and overrides an embedded + corpus of the same code. + +Add your own translation the same way: a tab-separated `<code>.tsv` +(`book⇥abbr⇥booknum⇥chapter⇥verse⇥text`) plus a `<code>.ini` sidecar (`lang`, +`name`, `psalm_system`); validate with `lectio --corpus-check <path>`. A version +code lectio can't find renders as `(not in <code>)` — it never fails the day. + +## Localising day names + +`ui_language` accepts **any** code. It sets the language of the **day and saint +names** in the daily view, independently of the reading text. (The UI chrome — +button labels, keybar — is English or Polish; any other code falls back to +English chrome.) + +- **Day names** (e.g. "3rd Sunday in Ordinary Time") are generated. English is + built in and Polish ships with lectio: `ui_language = pl` → + "3. Niedziela Okresu Zwykłego". To add or customise a language, drop a + `<code>.ini` into your names dir (`~/.config/lectio/names/`) and set + `ui_language = <code>`. It overrides the English baseline key by key — translate + only what you want; the rest stays English. Use the shipped + `internal/naming/lang/pl.ini` as a template: it maps weekdays, months, season + names, ordinals and a few format templates, so word order and grammatical case + can follow the target language. +- **Saint names** live in the calendar data (`name.<lang>`). English and Latin + are complete; Polish is partial. To supply or override a saint's name in your + language, add a calendar layer (`~/.config/lectio/calendars/<layer>.ini`) with + `name.<code> = …` entries and enable it via `use`. A name lectio lacks in your + language falls back to English, then Latin, then the generated day name. + ## License Copyright (C) 2026 Łukasz Kasprzak @@ -310,4 +361,9 @@ Because this is the **Affero** GPL, section 13 applies to `lectio-web`: if you run a modified version and let people reach it over a network, you must offer those users the source of your modified version. +The AGPL covers lectio's own code and data. It does **not** cover the bible +corpora: the embedded Latin Vulgate and the opt-in `wuj`/`drb`/`grb` are separate +public-domain scripture texts with their own provenance, redistributed under +their own terms, not lectio's. See `NOTICE`. + Full text in `LICENSE`; third-party data attributions in `NOTICE`. |
