diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 18:19:08 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 18:19:08 +0200 |
| commit | 771ec96f07499d6efbcb587f94e30ffcbc4e0e58 (patch) | |
| tree | 58fcf123609d41f6500b122c3f3afab6123d5cf2 | |
| parent | 539a7c71b60115144959f712ef5966f48c63f9f0 (diff) | |
| download | lectio-771ec96f07499d6efbcb587f94e30ffcbc4e0e58.tar.gz lectio-771ec96f07499d6efbcb587f94e30ffcbc4e0e58.zip | |
docs: document corpora split, name localisation, and corpora licence
- README: only the Vulgate is embedded by default; new "Scripture corpora"
section explains the fullbible tag and the runtime corpora dir, and new
"Localising day names" section covers ui_language = <code> +
names/<code>.ini for day names and calendar-layer name.<lang> for saints.
License section now states the bible corpora are not covered by the AGPL.
- NOTICE: add a "Scripture corpora -- embedding and licence" section listing
each corpus's provenance (vul/wuj/drb/grb, all public domain) and the
default-embeds-vul-only policy.
| -rw-r--r-- | NOTICE | 18 | ||||
| -rw-r--r-- | README.md | 82 |
2 files changed, 87 insertions, 13 deletions
@@ -50,3 +50,21 @@ The deuterocanonical books added to the Vulgate (vul) and Douay-Rheims (drb) corpora are public-domain texts obtained via get.bible (getbible/v2): the Clementine Vulgate (Clementine Vulgate Project / M. Tweedale, CBCEW- authorized, public domain) and the Douay-Rheims (Challoner), public domain. + +Scripture corpora — embedding and licence +----------------------------------------- +The bible corpora are NOT covered by lectio's AGPL licence. They are separate +public-domain scripture texts, each with its own provenance, redistributed under +its own terms: + + vul Latin Vulgate (Clementine), public domain. + wuj Biblia Jakuba Wujka (1599), Polish, public domain. + drb Douay-Rheims (Challoner), English, public domain. + grb Greek Septuagint / New Testament, public domain. + +Only the Latin Vulgate (internal/bible/corpora/vul.tsv) is embedded in the +default binary, so a build carries no third-party scripture text beyond the +public-domain Vulgate. The remaining corpora live in +internal/bible/corpora_optional/ and are compiled in only with the "fullbible" +build tag, or loaded at runtime from the user corpora dir. Ship a fullbible +binary, or redistribute the optional corpora, only where doing so is permitted. @@ -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`. |
