<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/internal/bible/corpora, branch v0.46.1</title>
<subtitle>offline Catholic daily readings and liturgical calendar in Go, with CLI, TUI and web clients</subtitle>
<id>https://git.labunix.xyz/lectio.git/atom?h=v0.46.1</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=v0.46.1'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-07-28T16:01:33Z</updated>
<entry>
<title>bible: embed only the Vulgate by default; other corpora opt-in</title>
<updated>2026-07-28T16:01:33Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T16:01:33Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=5e1664b8008675177a551aff1de371f54d4e20e4'/>
<id>urn:sha1:5e1664b8008675177a551aff1de371f54d4e20e4</id>
<content type='text'>
Split the bundled corpora so the default binary carries only the
public-domain Latin Vulgate. wuj/drb/grb move to corpora_optional/ and are
compiled in only with `-tags fullbible`, or dropped into the user corpora
dir at runtime. This keeps the distributed AGPL binary free of third-party
scripture text -- bible corpora are not covered by lectio's licence.

- bible: read corpus files/metadata from core + optional embed FS
  (embReadCorpus/embCorpusFiles); optionalFS is set only under the tag.
- config: default `versions` now reflects corpora actually available in the
  build (Vulgate first), so a vul-only binary offers no absent versions.
- Makefile: `make build` = vul only; `make build-full` embeds the rest;
  `make test` runs with -tags fullbible; check-corpora validates both dirs.
- tests: corpusmeta asserts on vul (the always-embedded corpus); the
  versions-default expectation follows availableVersions().
</content>
</entry>
<entry>
<title>fix(calendar): OF precedence/transfer + readings resolution; EF Pentecost octave</title>
<updated>2026-07-28T12:35:24Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T12:35:24Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=a80e61963756a28a3963a0442a8ccc1572518373'/>
<id>urn:sha1:a80e61963756a28a3963a0442a8ccc1572518373</id>
<content type='text'>
Fixes found by validating the offline engine per-day vs the LiturgicalCalendar
API (OF) and missalemeum (EF) across 2005-2050. OF calendar is now 0 real
errors in the forward window (season/cycle already perfect).

OF precedence/transfer (calendar):
- Ash Wednesday and Holy Week Mon-Wed are band-2 privileged, so a coinciding
  feast (Chair of St Peter on Ash Wednesday) is suppressed, not observed.
- Solemnities transfer out of Holy Week / the Easter octave: the Annunciation
  defers to the Monday after the 2nd Sunday of Easter; St Joseph is anticipated
  to the Saturday before Palm Sunday; the Nativity of St John the Baptist moves
  to Jun 23 when a Lord's solemnity (Sacred Heart / Corpus Christi) falls Jun 24.
- Within a precedence band, a solemnity of the Lord/BVM outranks a saint's
  (dignity tiebreak) rather than losing an alphabetical slug tie.
- Perpetua &amp; Felicity corrected optional -&gt; obligatory memorial.

OF readings resolution (bible.OFRef + lectionary data):
- Verse-accurate Hebrew-&gt;Vulgate psalm mapping incl. the split psalms
  (9/10, 114/115, 116, 147); "+" verse joins and abbreviated ranges ("127-28")
  normalized; single-chapter books (2/3 John, Jude) get chapter 1.
- Cleaned harvest artifacts from of-lectionary.ini (descriptive-suffix gospels,
  "or Year A" alternates, "*"/"[Vulg.]"/bracket markers, slash abbreviations);
  Joel/Malachi/Zechariah/Esther book-versification citations fixed to Vulgate.
- Split a merged Ps 15:10/11 row in vul.tsv. Result: 0 unresolvable OF readings
  over 2557 rendered days (cycles A/B/C, varied Easters).

EF: the Octave of Pentecost (Whit Monday-Saturday) is red, not white.
</content>
</entry>
<entry>
<title>feat(config): reading_lang/reading_version + ReadingCorpus resolver</title>
<updated>2026-07-27T18:19:00Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T18:19:00Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=42636312160892d1bc6a7f021ce27354f7cbb80d'/>
<id>urn:sha1:42636312160892d1bc6a7f021ce27354f7cbb80d</id>
<content type='text'>
Task 3 of national-bibles. Adds reading_lang (any language code) and
reading_version (explicit corpus code) config fields, setField cases,
renderConfigINI lines + self-documenting header, and Config.ReadingCorpus():
reading_version &gt; reading_lang match &gt; ui_language match &gt; "" (Latin fallback
applied by the caller).

Also adds an `autoselect` corpus-metadata flag (default true), surfaced during
this task: the built-in wuj declares lang=pl, so lang-auto would have
re-selected the incomplete Wujek for Polish users and defeated the wuj-drop.
wuj.ini now sets autoselect=false, so it is reachable only via an explicit
reading_version or --ref; the resolver's language auto-match skips
non-autoselectable corpora. A corrected Wujek drop-in (autoselect defaults
true) auto-serves Polish with zero config.
</content>
</entry>
<entry>
<title>feat(bible): corpus metadata sidecars + parser</title>
<updated>2026-07-27T18:08:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T18:08:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=91b54ab94a0e227eeaf093d34ec2bf2a07978b55'/>
<id>urn:sha1:91b54ab94a0e227eeaf093d34ec2bf2a07978b55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(ef): complete offline EF readings — proper ferias, deuterocanon, Latin fallback</title>
<updated>2026-07-27T14:17:18Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T14:17:18Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=a1e041dfbe55194c7fea0636d38cff33ee28315d'/>
<id>urn:sha1:a1e041dfbe55194c7fea0636d38cff33ee28315d</id>
<content type='text'>
Finish the Extraordinary Form (1962) offline Mass readings so every day of
the year resolves in both English and Polish.

Temporal engine (temporal_ef.go):
- Unique ferial slugs "ef-&lt;season&gt;-&lt;week&gt;-&lt;weekday&gt;" so penitential-season
  weekdays (Lent, Advent, Passiontide, Easter octave) can key their own
  proper Masses; green-season ferias have no entry and fall back to the
  preceding Sunday (the 1962 rule).
- Special "ef-lent-after-ashes-&lt;weekday&gt;" case for the days between Ash
  Wednesday and Lent I, which have their own propers.

Lectionary (tridentine-lectionary.ini, 55 -&gt; 143 entries) via genlect.go:
- Generator now fetches proper-season weekdays and stores a feria only when
  its Mass differs from the preceding Sunday's.
- cleanCite() normalises two missalemeum data glitches: a stray comma
  between book and chapter ("4 Kings, 5:1" -&gt; "4 Kings 5:1") and a
  period-as-separator ("John 20. 19-31" -&gt; "John 20:19-31"), both guarded so
  legitimate multi-chapter citations are untouched.

Citations &amp; corpora:
- books.ini: Douay abbreviations in the [en] dialect (Ex, Ezech, Jonas, and
  3/4 Kings -&gt; canonical 1/2 Kings), so the EF Lenten epistles resolve while
  the display keeps modern sigla.
- drb.tsv: +205 rows backfilling the deuterocanonical Daniel 13-14 (Susanna,
  Bel) and Esther 11-16 (Greek additions) from get.bible douayrheims, which
  the base corpus omitted; scripts/gen-deutero.py documents the fetch.

Rendering (liturgy.go):
- readingLine() falls back to the Latin Vulgate (complete) when the
  vernacular corpus lacks a passage, with a clear note. Covers the Polish
  Wujek deuterocanon gap (no clean public-domain source exists) and any
  future vernacular gap; faithful to the EF as a Latin rite.

Result: 730/730 days resolve for both EN (native) and PL (native + Latin
fallback for 3 deuterocanon days). Version 0.32.0 -&gt; 0.33.0.
</content>
</entry>
<entry>
<title>data(bible): close the deuterocanon gap in vul + drb corpora</title>
<updated>2026-07-27T12:30:55Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-27T12:30:55Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=3aa90a9b8d7623a70e2d3a505bea080ba37c1d67'/>
<id>urn:sha1:3aa90a9b8d7623a70e2d3a505bea080ba37c1d67</id>
<content type='text'>
Added Tobit, Judith, Wisdom, Sirach, Baruch to vul (5) and those + 1-2
Maccabees to drb (7), from get.bible's public-domain Clementine Vulgate /
Douay-Rheims (Clementine versification = the EF citation basis). EF and OF
deuterocanonical citations (e.g. the Assumption's Judith epistle) now resolve
against the corpora. Flipped the gap-documenting test to assert resolution.
</content>
</entry>
<entry>
<title>grb: strip SBLGNT apparatus markers (U+2E00–U+2E0D); render: show scripture ref in traditional headings; v0.12.0</title>
<updated>2026-07-24T12:23:55Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-24T12:23:55Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=a87f2fafbda90cc9eeb32ea856356c34e1d880b0'/>
<id>urn:sha1:a87f2fafbda90cc9eeb32ea856356c34e1d880b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>corpus: fix vul book mislabel 2 King -&gt; 2 Kings (restores Vulgate 2 Kings); v0.11.1</title>
<updated>2026-07-24T11:54:13Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-24T11:54:13Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=e54b24308e42addad396a13f9f53a60e5f6468d5'/>
<id>urn:sha1:e54b24308e42addad396a13f9f53a60e5f6468d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scaffold: module, mains, Makefile, embedded corpora</title>
<updated>2026-07-23T10:34:57Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-23T10:34:57Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=76d88856aa4ef78342d4ffe6bb533c29fe342fc0'/>
<id>urn:sha1:76d88856aa4ef78342d4ffe6bb533c29fe342fc0</id>
<content type='text'>
</content>
</entry>
</feed>
