aboutsummaryrefslogtreecommitdiff
path: root/internal
Commit message (Collapse)AuthorAgeFilesLines
* web: HTMX server + lectio-web binaryLukasz Kasprzak2026-07-236-4/+556
| | | | | | | | | | | | | | | | | NewServer wires B1's RenderReadings/Themes/themeCSS/embedded static+ templates FS into an http.ServeMux: GET / (full page), GET /readings (HTMX reading-pane fragment), GET /lookup (bible.Lookup passage search fragment), GET /theme.css (theme stylesheet, falling back through cfg.WebTheme to the built-in default on an unknown name), GET /static/. Run listens on cfg.WebPort (0 = OS-picked free port), prints the URL, best-effort opens a browser, then serves. cmd/lectio-web is the binary entry point (config.Load -> web.Run). Fold-in from the B1 review: hardened themeCSS's name guard to an explicit ^[A-Za-z0-9_-]+$ allowlist (the old filepath.Base/ContainsAny check let ".." through), plus guard-rejection and HTML-escaping regression tests -- B2 is what makes /theme.css?name=<raw> reachable from the network, so it owns closing this out.
* web: HTML render + embedded themesLukasz Kasprzak2026-07-2317-0/+1019
|
* config: add web_theme/web_port fieldsLukasz Kasprzak2026-07-233-0/+31
| | | | | | | | | | | | Add WebTheme (default: "transfiguration") and WebPort (default: 0) to Config for the upcoming lectio-web binary. WebTheme resolves theme names (built-in or user files) later in internal/web; WebPort 0 means auto-pick a free port. - Updated Config struct with new fields - Set defaults in Default() - Updated embedded seed config.toml with documentation - Added TDD tests: TestWebDefaults and TestWebLoadsFromSeed - Existing tests (TestLoadSeeds, TestLoadOverride) still pass
* tui: colored reader + version switchLukasz Kasprzak2026-07-233-0/+423
|
* liturgy: LoadOffline sets PartID (fix offline gospel-only)Lukasz Kasprzak2026-07-232-3/+15
|
* cli: subcommand dispatchLukasz Kasprzak2026-07-234-1/+556
|
* render: gather versions + compare + dedupLukasz Kasprzak2026-07-232-0/+303
|
* readings: lectionary router + part filteringLukasz Kasprzak2026-07-233-0/+179
|
* tradlit: missalemeum 1962 propers -> sectionsLukasz Kasprzak2026-07-233-0/+157
|
* config: TOML load + seedLukasz Kasprzak2026-07-233-0/+246
|
* liturgy: sigla harvest + offline loadLukasz Kasprzak2026-07-233-4/+233
|
* liturgy: fetch + HTML/JSON cacheLukasz Kasprzak2026-07-232-0/+186
|
* liturgy: Section type + HTML parse (fixtures)Lukasz Kasprzak2026-07-235-0/+5835
| | | | | | | | | | | | | | | | Ports parse_sections, html_to_lines, extract_reference from ewangelia.py. Parse(html) prefers the tabnowy0all lectionary tab (falls back to tabstary0all) and errors loudly if the tab is present-but-empty or absent. ExtractCitation(heading) pulls the parenthetical citation. Section gains a PartID field (Addendum A): set from the heading prefix (1. czytanie -> pierwsze_czytanie, a second same-day 1. czytanie -> drugie_czytanie, Psalm -> psalm, Aklamacja -> aklamacja, Ewangelia -> ewangelia; anything else -> ""). Adds testdata/2026-07-22.html (split-feast day, two 1. czytanie sections) and testdata/2026-06-22.html (normal day), copied from ~/.cache/daily-reading/.
* bible: Polish citation -> English ref (with psalm versification)Lukasz Kasprzak2026-07-232-0/+146
|
* bible: reference grammar + LookupLukasz Kasprzak2026-07-232-0/+109
|
* bible: embed corpora + chapter lookupLukasz Kasprzak2026-07-232-0/+90
|
* bible: canonical books + alias resolutionLukasz Kasprzak2026-07-232-0/+140
|
* psalter: port psalm versificationLukasz Kasprzak2026-07-232-0/+74
|
* scaffold: module, mains, Makefile, embedded corporaLukasz Kasprzak2026-07-235-0/+138403