| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add internal/naming, which renders temporal day names and celebration
display names from the calendar engine's slugs in any language. English is
the built-in baseline; a language is data -- an embedded lang/<code>.ini
(pl shipped) and/or a user file at <config dir>/names/<code>.ini that
overrides it key by key. Names compose from a small vocabulary plus
per-language format templates, so word order and grammatical case can
differ (e.g. Polish genitive "3. Niedziela Okresu Zwykłego"); any string a
language omits falls back to English.
- Move day-name generation out of calendar (calendar.HumanizeSlug removed,
calendar stays a pure engine) into naming.DayName; the English golden
cases carry over verbatim.
- naming.CelebrationName unifies the three duplicated resolvers
(cli/readings/calfeed): name.<lang> -> English -> Latin -> humanized slug.
Saint names stay in the calendar data (name.<lang>), overridable via
calendar layers.
- config: ui_language now accepts any code (lower-cased, not clamped to
en/pl) so names/<code>.ini applies; UI chrome still resolves en/pl and
falls back to English. Add NamesDir(); wire naming.SetUserDir (and the
previously unwired bible.SetUserCorporaDir) in the TUI and web mains too,
so external corpora and name files work across all three binaries.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lectio was MIT, which let anyone take it closed. The concern is not people
selling it -- no licence stops that, and the AGPL does not try to -- but
someone building a proprietary product on it and giving nothing back.
Plain GPL would leave the obvious hole open: lectio-web is a network
service, and hosting is not distribution, so a modified lectio-web could be
run as a paid subscription API without ever publishing a line. AGPL section
13 closes exactly that.
LICENSE is the verbatim FSF text. README carries the standard notice.
Section 13 requires a modified network-reachable version to PROMINENTLY
offer its source to the users interacting with it, so the offer ships with
the code rather than living only in a file nobody fetches:
- GET /source plain text, no template or config dependency, so
it answers even when something else is broken
- page footers every full page (fragments render inside one)
- JSON envelope "source" / "license"
- iCal header X-LECTIO-SOURCE / X-LECTIO-LICENSE
The feed fields are not redundant: an /api/calendar.json consumer or an
.ics subscriber never loads a page, so the footer alone would miss them.
config.SourceURL is the single source of truth, and says in its comment
that a fork running as a service must repoint it -- an offer that leads to
someone else's code is not an offer.
Tests pin all of it. This is a licence obligation, not a feature, so it
should fail loudly if a later change drops it.
|
| |
|
|
|
|
|
|
|
|
| |
Temporal days with no proper name showed a slug-derived string ('triduum fri',
'ordinary 11 tue', 'advent-dec-17'). Add calendar.HumanizeSlug, used by both
celebrationName fallbacks (cli + calfeed), turning slugs into proper liturgical
names: Good Friday, Ash Wednesday, 'Tuesday of the 11th Week in Ordinary Time',
'11th Sunday in Ordinary Time', 'December 17', 'The Most Holy Trinity', and the
EF forms ('4th Week after Pentecost', 'Passion Week', 'Ember Wednesday of
September'). Adds TestHumanizeSlug.
|
| | |
|
| | |
|
| |
|