Milestone 0/1: shell, calendar/psalter/hours scaffold, Prime
Deploy / deploy (push) Failing after 1m8s
Deploy / deploy (push) Failing after 1m8s
Client-side-first PWA (Vite/TS, no backend) per the approved plan: day- navigable shell listing all 8 hours, Prime fully resolves via the calendar -> psalter -> ordo pipeline, the other 7 hours are registered but flagged not-implemented. Sanctoral/temporal calendar data uses a day -> id indirection layer (saints, easter-offsets, fixed-date-calendar) so reassigning a feast to a different day is a data edit, not a code change. Docker (Caddy-serving-static) + Gitea CI workflow scaffolded to match the eec/drip/bookshop operational pattern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Offsets in days from Easter Sunday (0). Negative = before Easter, positive
|
||||
# = after. Covers the whole Easter-anchored span: Septuagesima through the
|
||||
# last Sunday of Trinitytide. A temporal-id's *name* (and hence whether it
|
||||
# reads "trinitytide" or "time after pentecost") lives here as data, not as
|
||||
# a compiled TS enum — see calendar/types.ts's Season type.
|
||||
#
|
||||
# PLACEHOLDER: only a handful of anchor points, to prove the shape. The full
|
||||
# set of Sundays/ferias between anchors is content-authoring work for
|
||||
# milestone 4.
|
||||
offsets:
|
||||
-63: septuagesima-sunday
|
||||
-56: sexagesima-sunday
|
||||
-49: quinquagesima-sunday
|
||||
-46: ash-wednesday
|
||||
0: easter-sunday
|
||||
39: ascension-thursday
|
||||
49: pentecost-sunday
|
||||
56: trinity-sunday
|
||||
@@ -0,0 +1,18 @@
|
||||
# Fixed civil-calendar dates (MM-DD) that anchor part of the temporal cycle
|
||||
# and don't move with Easter at all — unlike easter-offsets.yml.
|
||||
#
|
||||
# Deliberately NOT covering Advent or the Sundays after Epiphany here, even
|
||||
# though they're "near" these fixed points — both have a wrinkle that isn't
|
||||
# a plain fixed date:
|
||||
# - Advent's start is "the Sunday nearest Nov 30" (equivalently, the 4th
|
||||
# Sunday before Christmas) — a nearest-weekday-to-a-fixed-date rule, not
|
||||
# a fixed date or a numeric offset.
|
||||
# - Epiphanytide's *start* is fixed (Jan 6), but its *length* is secretly
|
||||
# Easter-dependent: how many Sundays after Epiphany you get before
|
||||
# Septuagesima cuts in varies with how early Easter falls that year —
|
||||
# i.e. this file's fixed end and easter-offsets.yml's Septuagesima
|
||||
# start have to arbitrate a boundary at resolution time.
|
||||
# Both are milestone 4 occurrence-resolution logic, not data-file entries.
|
||||
dates:
|
||||
"12-25": christmas-day
|
||||
"01-06": epiphany
|
||||
@@ -0,0 +1,9 @@
|
||||
# PLACEHOLDER — demonstrates the saint-record shape only. Not a real saint,
|
||||
# not a real rank, not a real day assignment (see sanctoral-calendar.yml for
|
||||
# where this id gets pointed at a day). Which day(s) point here can change
|
||||
# freely without ever touching this file.
|
||||
id: example-confessor
|
||||
name: "Example Confessor (placeholder)"
|
||||
rank: placeholder # real rank scheme is a milestone 4 decision, not made yet
|
||||
common: common-of-a-confessor-not-bishop
|
||||
propers: null # set to a propers id once/if this saint has a full proper
|
||||
@@ -0,0 +1,12 @@
|
||||
# Maps a calendar day (MM-DD — the sanctoral cycle repeats every civil year
|
||||
# regardless of weekday, unlike the temporal cycle) to the saint-id(s)
|
||||
# celebrated that day. This indirection is the whole point: to move a saint
|
||||
# to a different day, edit this mapping. The saint's own record
|
||||
# (data/calendar/saints/<id>.yml) never changes — it's the same record
|
||||
# whichever day points at it.
|
||||
#
|
||||
# PLACEHOLDER: "01-01" -> example-confessor is fake data proving the shape,
|
||||
# not a real calendar assignment. Real sanctoral content-authoring
|
||||
# (a pre-1910-leaning calendar, per the plan) is a separate task.
|
||||
days:
|
||||
"01-01": [example-confessor]
|
||||
@@ -0,0 +1,14 @@
|
||||
# PLACEHOLDER structure: proves the fixed-parts + weekday-variable-psalm
|
||||
# pipeline works. The hymn/chapter/prayer textRefs don't resolve to real
|
||||
# text yet (data/propers/ doesn't exist yet) — they render as "pending"
|
||||
# in the UI. Real content is a separate task from this scaffolding.
|
||||
id: prime
|
||||
parts:
|
||||
- kind: hymn
|
||||
textRef: { source: common, id: hymn-iam-lucis-orto-sidere }
|
||||
- kind: variable
|
||||
resolve: by-weekday
|
||||
- kind: chapter
|
||||
textRef: { source: common, id: prime-chapter-ferial }
|
||||
- kind: prayer
|
||||
textRef: { source: common, id: prime-collect }
|
||||
@@ -0,0 +1,27 @@
|
||||
# Vulgate/Gallican numbering. PLACEHOLDER content: only verses 1-2 are
|
||||
# filled in, to prove the loading/rendering pipeline end to end. Marked
|
||||
# `draft` (not `verified`) because this hasn't been checked against a
|
||||
# primary source yet — real content acquisition (from Divinum Officium
|
||||
# and/or period breviaries, per the plan's content-sourcing note) is a
|
||||
# separate task from this scaffolding work.
|
||||
number: 1
|
||||
verses:
|
||||
- n: 1
|
||||
text:
|
||||
la: "Beatus vir, qui non abiit in consilio impiorum, et in via peccatorum non stetit, et in cathedra pestilentiae non sedit;"
|
||||
en: "Blessed is the man who hath not walked in the counsel of the ungodly, nor stood in the way of sinners, nor sat in the chair of pestilence."
|
||||
status:
|
||||
la: draft
|
||||
en: draft
|
||||
- n: 2
|
||||
text:
|
||||
la: "Sed in lege Domini voluntas ejus, et in lege ejus meditabitur die ac nocte."
|
||||
en: "But his will is in the law of the Lord, and on his law he shall meditate day and night."
|
||||
status:
|
||||
la: draft
|
||||
en: draft
|
||||
- n: 3
|
||||
text: {}
|
||||
status:
|
||||
la: missing
|
||||
en: missing
|
||||
@@ -0,0 +1,16 @@
|
||||
# PLACEHOLDER distribution: real Benedictine Prime actually distributes
|
||||
# multiple fixed psalms plus a rotating section of Ps 118 across the week,
|
||||
# and the user has modifications in mind on top of that — none of that is
|
||||
# designed yet. This file exists only to prove the (hourId, weekday) -> psalm
|
||||
# numbers lookup works end to end, using the one psalm we have sample data
|
||||
# for. Expect this file to be rewritten entirely once real content-authoring
|
||||
# starts (see plan: "psalter modifications are edits to this data, not
|
||||
# engine changes").
|
||||
prime:
|
||||
sunday: [1]
|
||||
monday: [1]
|
||||
tuesday: [1]
|
||||
wednesday: [1]
|
||||
thursday: [1]
|
||||
friday: [1]
|
||||
saturday: [1]
|
||||
Reference in New Issue
Block a user