summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 18:19:08 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 18:19:08 +0200
commit771ec96f07499d6efbcb587f94e30ffcbc4e0e58 (patch)
tree58fcf123609d41f6500b122c3f3afab6123d5cf2
parent539a7c71b60115144959f712ef5966f48c63f9f0 (diff)
downloadlectio-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--NOTICE18
-rw-r--r--README.md82
2 files changed, 87 insertions, 13 deletions
diff --git a/NOTICE b/NOTICE
index a054b68..40cb2b9 100644
--- a/NOTICE
+++ b/NOTICE
@@ -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.
diff --git a/README.md b/README.md
index ee7b507..e344de0 100644
--- a/README.md
+++ b/README.md
@@ -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`.