aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md82
1 files changed, 69 insertions, 13 deletions
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`.