<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/scripts/gen-deutero.py, branch perf/hoist-date-independent-work</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=perf%2Fhoist-date-independent-work</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=perf%2Fhoist-date-independent-work'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-07-27T14:17:18Z</updated>
<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>
</feed>
