| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 > reading_lang match > ui_language match > "" (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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
6 TDD tasks: sidecars+meta parser, user-dir discovery+override registry,
reading_lang/reading_version config+resolver, --corpus-check validator,
wire resolver into rendering + surface user corpora, scripts+Makefile.
Code verified against internal/ini ([]Section) and configPath() helper.
|
| |
|
|
|
|
|
| |
psalm_system becomes stored+validated metadata only; per-corpus psalm
numbering application is deferred to the future psalm-readings work (offline
lectionary has no psalm parts yet, so wiring now would be dead code). Testing
updated for reading_lang + the deferred psalter.
|
| |
|
|
|
|
| |
reading_lang (any language code) drives corpus auto-selection; empty follows
ui_language. Resolver: reading_version > reading_lang match > ui_language match
> Latin vul. traditional_lang dropped from selection entirely (scraper-only).
|
| |
|
|
|
|
|
|
|
| |
A corpus = <code>.tsv (6-col verse text) + <code>.ini (metadata) pair,
serving both compile-in (glob go:embed + Makefile validate/embed) and
runtime drop-in (~/.config/lectio/corpora/, overrides built-ins). Offline
reading selection becomes config-driven (reading_version > lang-auto > Latin
fallback); traditional_lang stays deprecated/scraper-only. Adds
lectio --corpus-check validator with a coverage report vs the Latin vul.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Wujek (wuj) corpus is missing the deuterocanonical Daniel 3:24-90 (Song
of the Three), Daniel 13-14, and Esther 10:4-16:24, plus ~400 verses its
builder (parse_bwujek.py) dropped or mis-numbered (e.g. Matthew 5:13/39 are
in the source HTML but absent from wuj.tsv). Rendering computed readings from
it silently produced gaps.
vernacularVersion() now renders Polish from the complete Latin Vulgate (vul)
instead of wuj; English stays on Douay-Rheims (complete after the deuterocanon
backfill). wuj remains embedded for explicit `--ref -b wuj` and version
comparison -- it just isn't auto-selected for computed reading text. A properly
formatted Polish Bible can later be dropped in as a user corpus (the
national-bibles feature) to restore native Polish rendering.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Latin fallback
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-<season>-<week>-<weekday>" 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-<weekday>" case for the days between Ash
Wednesday and Lent I, which have their own propers.
Lectionary (tridentine-lectionary.ini, 55 -> 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" -> "4 Kings 5:1") and a
period-as-separator ("John 20. 19-31" -> "John 20:19-31"), both guarded so
legitimate multi-chapter citations are untouched.
Citations & corpora:
- books.ini: Douay abbreviations in the [en] dialect (Ex, Ezech, Jonas, and
3/4 Kings -> 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 -> 0.33.0.
|
| | |
|
| |
|
|
|
|
| |
dayReadings() falls back, for an EF weekday with no proper Mass, to the
preceding Sunday's temporal lectionary (the 1962 green-season rule). Lenten/
Advent proper ferias show the Sunday's readings pending their own data.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Unique temporal-day slugs (season-sunday-week); scripts/genlect.go generates
tridentine-lectionary.ini from missalemeum keyed by slug (55 entries: the
Sundays of the whole EF year). caldata.TemporalReadings(form,slug) lookup;
--liturgy resolves proper-of-feast else the temporal cycle and renders the text.
bible.ParseRef strips abbreviation dots (1 Cor. -> 1 Cor). 52/53 Sundays fully
resolve offline.
|
| |
|
|
|
|
|
| |
normalizeSigla treats ';' as a group separator so SplitRef resolves each
chapter; FormatRef renders multi-chapter refs per chapter in the dialect's
sigla. Restored the full Assumption (Judith 13:22-25; 15:10) and St Lucy
(2 Cor 10:17-18; 11:1-2) epistles.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
config-scoped citation display
books.ini with [en]/[pl]/[la]; parseBooks reads INI (bible drops go-toml).
Latin dialect resolves EF citations (Eccli->Sirach, Apoc->Revelation, Luc...);
sigla_style gains 'latin'. Reading citations now DISPLAY in the configured
sigla (FormatRef(SiglaLang)), not raw English. One-shot books.toml->books.ini
user migration (go-toml now config-only). Web settings editor -> books.ini.
|
| |
|
|
|
|
|
| |
Added 1962 Epistle+Gospel citations (from missalemeum) to the 15 EF feasts;
--liturgy now resolves + renders the reading text via the corpora (drb/wuj),
incl. deuterocanon (Assumption's Judith epistle). Cross-chapter citations use
their primary range pending multi-chapter parser support.
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
| |
temporalEF validated against Divinum Officium data. Season-mapping handles the
Whit octave (Paschaltide), the Christmas vigil (Advent), and the resumed
Epiphany Sundays (within Time after Pentecost).
|
| |
|
|
|
|
|
|
| |
computes EF
caldata.Tridentine()/Base(form); Stack(form,dir,use); runLiturgy drops the EF
guard and uses the form's base; rankLabel shows I-IV class; display omits OF
cycles + strips ef- slug prefix for EF.
|
| | |
|
| |
|
|
| |
temporal-before-sanctoral)
|
| |
|
|
|
|
| |
8 EF seasons by date boundary (Septuagesima, Passiontide, Time after Epiphany/
Pentecost + shared); major feasts of the Lord; Christ the King = last Sun of
October. ParseRank accepts EF ranks.
|
| |
|
|
|
|
|
| |
oracle 0 mismatches)
Adds EF rank constants (class-1..4, commemoration); ofRankOrder() for the two
ordered comparisons; buildCelebration defaults missing rank to ferial.
|
| | |
|
| |
|
|
|
|
|
|
| |
Form-aware single engine (sel.Form 'old' -> EF): shared Computus/merge/INI/
result + custom layers; new temporalEF (1962 seasons incl. Time after
Pentecost, Septuagesima, octaves), precedenceEF (1960 rubrics, I-IV class),
embedded 1962 sanctoral. Rank int enum -> unified string token. Validated vs
the missalemeum per-date API. EF day-identity now; propers later.
|
| | |
|
| | |
|
| |
|
|
| |
Also: reject out-of-range MM-DD in resolveDate (strict validation for user data).
|
| |
|
|
| |
take effect)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
renderConfigINI now emits a top-of-file reference block listing each option's
allowed values (full-line comments; ascension/corpus_christi note the
'following Sunday' transfer). seedIfMissing generates from renderConfigINI, so
the seed, migrated configs, and web-settings saves all carry the same header;
dropped the separate embedded config.ini.
|
| | |
|
| |
|
|
|
| |
Uses the pure engine + embedded universal calendar; UI-language names, rank,
colour, cycles, and inline proper readings. Added the Assumption's propers.
|
| |
|
|
| |
superseded ferial from Others
|
| |
|
|
|
|
|
| |
config.Load/Save now read/write config.ini; a pre-existing config.toml is
converted once (old file kept, reversible). New [calendar] section
(epiphany/ascension/corpus_christi) + Config.Selection() feeding the engine.
Config struct API unchanged, so daily-readings and web /settings keep working.
|
| | |
|
| |
|
|
|
|
| |
Caught + fixed an Advent-start bug: anchor on Christmas Eve, not Dec 25, so
years where Dec 25 is a Sunday don't lose the first week of Advent. Rank-class
diffs (324) are informational — the initial sanctoral dataset is partial.
|
| |
|
|
| |
coverage)
|
| |
|
|
| |
Sunday band before solemnity-rank fallback
|
| |
|
|
|
|
| |
cycles
Also: deterministic pick tiebreak by slug.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
sunday-after)
|