aboutsummaryrefslogtreecommitdiff
path: root/internal
Commit message (Collapse)AuthorAgeFilesLines
* feat(bible): user corpus discovery + override registryLukasz Kasprzak2026-07-274-2/+165
|
* feat(bible): corpus metadata sidecars + parserLukasz Kasprzak2026-07-277-1/+75
|
* fix(readings): stop auto-rendering from the defective wuj corpusLukasz Kasprzak2026-07-271-3/+8
| | | | | | | | | | | | | | | 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.
* feat(ef): complete offline EF readings — proper ferias, deuterocanon, ↵Lukasz Kasprzak2026-07-276-24/+621
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* chore: bump to 0.32.0 (EF ferial readings)Lukasz Kasprzak2026-07-271-1/+1
|
* feat(cli): EF ferial readings — weekdays repeat the preceding Sunday's MassLukasz Kasprzak2026-07-271-11/+26
| | | | | | 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.
* chore: bump to 0.31.0 (EF temporal Sunday lectionary + cross-chapter citations)Lukasz Kasprzak2026-07-271-1/+1
|
* feat: EF temporal Sunday lectionary (offline Sunday Mass readings)Lukasz Kasprzak2026-07-276-16/+284
| | | | | | | | | 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.
* fix(bible): resolve + format cross-chapter citations (13:22-25; 15:10)Lukasz Kasprzak2026-07-272-6/+38
| | | | | | | 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.
* chore: bump to 0.30.0 (EF feast readings + books.ini multi-language)Lukasz Kasprzak2026-07-271-1/+1
|
* feat: books.toml -> books.ini, multi-language (add Latin dialect), ↵Lukasz Kasprzak2026-07-279-67/+373
| | | | | | | | | | 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.
* feat(cli,caldata): EF feast proper readings — offline text in --liturgyLukasz Kasprzak2026-07-273-4/+69
| | | | | | | 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.
* chore: bump to 0.29.0 (deuterocanon in vul + drb)Lukasz Kasprzak2026-07-271-1/+1
|
* data(bible): close the deuterocanon gap in vul + drb corporaLukasz Kasprzak2026-07-273-2/+7267
| | | | | | | | 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.
* chore: bump to 0.28.0 (EF 1962 computed calendar)Lukasz Kasprzak2026-07-271-1/+1
|
* test(calendar): EF oracle vs missalemeum 2025-2026 (0 season mismatches)Lukasz Kasprzak2026-07-272-0/+4498
| | | | | | 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).
* feat(caldata,cli): embed 1962 EF calendar + form-aware Stack; --liturgy ↵Lukasz Kasprzak2026-07-275-27/+183
| | | | | | | | 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.
* feat(calendar): Compute branches on Form (computeEF via temporalEF/precedenceEF)Lukasz Kasprzak2026-07-272-3/+65
|
* feat(calendar): precedenceEF (1960 occurrence by class + ↵Lukasz Kasprzak2026-07-272-0/+78
| | | | temporal-before-sanctoral)
* feat(calendar): EF (1962) temporal cycle temporalEF + EF seasonsLukasz Kasprzak2026-07-273-9/+192
| | | | | | 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.
* refactor(calendar): Rank int enum -> unified string token (OF unchanged, ↵Lukasz Kasprzak2026-07-272-8/+39
| | | | | | | oracle 0 mismatches) Adds EF rank constants (class-1..4, commemoration); ofRankOrder() for the two ordered comparisons; buildCelebration defaults missing rank to ferial.
* fix(cli): --liturgy signals EF-not-implemented instead of silently returning OFLukasz Kasprzak2026-07-272-0/+25
|
* chore: bump to 0.27.0 (custom calendar layers)Lukasz Kasprzak2026-07-271-1/+1
|
* feat(cli): --cal-new scaffold + --cal-check lint for custom calendar layersLukasz Kasprzak2026-07-274-1/+212
| | | | Also: reject out-of-range MM-DD in resolveDate (strict validation for user data).
* feat(cli): --liturgy uses the config 'use' layer stack (custom calendars ↵Lukasz Kasprzak2026-07-272-1/+29
| | | | take effect)
* feat(config): 'use' layer stack + CalendarsDir()Lukasz Kasprzak2026-07-272-0/+40
|
* feat(caldata): export ParseLayer + LoadLayer + Stack (user calendar layers)Lukasz Kasprzak2026-07-272-2/+97
|
* chore: bump to 0.26.1 (self-documenting config.ini)Lukasz Kasprzak2026-07-271-1/+1
|
* config: self-documenting default config.ini (reference header) as single sourceLukasz Kasprzak2026-07-272-34/+36
| | | | | | | | 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.
* chore: bump to 0.26.0 (offline OF calendar engine); document -L/--liturgyLukasz Kasprzak2026-07-272-1/+2
|
* feat(cli): 'lectio --liturgy/-L' prints the computed liturgical day offlineLukasz Kasprzak2026-07-274-0/+128
| | | | | Uses the pure engine + embedded universal calendar; UI-language names, rank, colour, cycles, and inline proper readings. Added the Assumption's propers.
* fix(ini,calendar): full-line-only comments (preserve ';' in citations); drop ↵Lukasz Kasprzak2026-07-273-21/+22
| | | | superseded ferial from Others
* feat(config): migrate to INI + one-shot TOML conversion + calendar SelectionLukasz Kasprzak2026-07-274-91/+269
| | | | | | | 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.
* style: gofmt temporal.goLukasz Kasprzak2026-07-271-1/+1
|
* test(calendar): regression oracle vs calapi 2020-2040 (0 season mismatches)Lukasz Kasprzak2026-07-275-5/+7775
| | | | | | 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.
* feat(caldata): embed + parse the owned universal Roman calendar (initial ↵Lukasz Kasprzak2026-07-273-0/+325
| | | | coverage)
* fix(calendar): Christmas solemnity in temporal; feasts of the Lord band 5; ↵Lukasz Kasprzak2026-07-273-4/+40
| | | | Sunday band before solemnity-rank fallback
* feat(calendar): Compute — build celebrations, apply precedence + transfer, ↵Lukasz Kasprzak2026-07-273-2/+216
| | | | | | cycles Also: deterministic pick tiebreak by slug.
* feat(calendar): Universal Norms precedence bands + pickLukasz Kasprzak2026-07-272-0/+107
|
* feat(calendar): ordered-stack layer merge (override/suppress/add)Lukasz Kasprzak2026-07-272-0/+86
|
* feat(calendar): temporal cycle (seasons, Sundays, movable solemnities)Lukasz Kasprzak2026-07-272-0/+294
|
* feat(calendar): DateSpec resolution (fixed + easter/christmas offsets + ↵Lukasz Kasprzak2026-07-272-0/+76
| | | | sunday-after)
* feat(calendar): core types + Gregorian ComputusLukasz Kasprzak2026-07-274-0/+204
|
* feat(ini): dependency-free INI reader for config and calendar dataLukasz Kasprzak2026-07-272-0/+123
|
* lectio-ui reader: go-to-chapter jump (c)Lukasz Kasprzak2026-07-244-149/+310
| | | | | | | | | | Inside a book, 'c' opens a centered prompt showing the book's chapter range (e.g. "1-21: ") and accepts a chapter number to jump straight there, instead of scrolling (handy for Psalm 119 etc). Digits only, backspace edits, Enter clamps to the valid range and opens that chapter at its top, Esc cancels. New modeChapterJump + updateChapterJump/jumpToChapter/ viewChapterJump; i18n ReaderJumpChapter/ReaderJumpChapterKeys (en/pl) and 'c' added to the reading keybar. Only offered when the book has >1 chapter.
* i18n: localize remaining web UI chrome (nav, bookmarks, settings)Lukasz Kasprzak2026-07-246-26/+86
| | | | | | | | | The web nav links (settings, bookmarks, home), the /reader bookmark-add form placeholders and button, the /bookmarks filter/empty/delete labels, and every /settings field label were hardcoded English and stayed English under ui_language=pl. Route them all through i18n (en/pl) so the Polish UI is fully localized. No server.go change: every page's data already carries L: i18n.Get(cfg.UILanguage).
* export: localize calendar title (month name via i18n Months + lectionary ↵Lukasz Kasprzak2026-07-245-6/+30
| | | | label); --ui-lang flag overrides interface/export language (cli + web ?lang=); v0.24.0
* export: month calendar PDF (A4 landscape, Monday-first grid, feast name + ↵Lukasz Kasprzak2026-07-248-4/+270
| | | | gospel ref + liturgical colour per day); cli --calendar YYYY-MM; web /calendar + link; readings.GospelCitation; v0.23.0
* export: internal/export (Markdown/Text/ReadingsPDF via pure-Go go-pdf/fpdf + ↵Lukasz Kasprzak2026-07-2411-1/+305
| | | | embedded DejaVu Sans, covers pl/la/gr); cli --md/--pdf/--out; web /export + download links; v0.22.0
* bookmarks: store as universal TSV (header row) with one-time JSON migration; ↵Lukasz Kasprzak2026-07-244-21/+160
| | | | tui note box wraps long notes with hanging indent + hard-break; v0.21.0