scripture: add a dedicated non-Psalm scripture store, migrate pure-scripture readings
Deploy / deploy (push) Successful in 46s

Adds src/scripture/ (types.ts, index.ts), a verse-addressable store mirroring
psalter/index.ts's own pattern exactly -- getScriptureVerses(book, chapter,
range) -- for non-Psalm scripture (Wisdom, Canticles, Ezekiel, Acts, Joel,
etc.). Kept as its own module, not folded into the Psalter, per 2026-08
discussion ("the psalms kind of work differently even if the logic is the
same, they do need their own store").

Octave readings can now declare `passages: [{ book, chapter, verses }]`
instead of embedding text -- each entry becomes its own paragraph, letting a
reading built from several verse ranges keep its original paragraph breaks.
getOctaveReading resolves either shape (embedded text or passages) into the
same OctaveReadingText callers already expect, so nothing downstream needs
to know which was used. Scope, per discussion: only readings that are
Scripture start to finish get this treatment -- prose that merely quotes a
verse or two (most of the patristic sermons pulled so far) keeps its
quotations embedded inline, as before.

Migrates the 9 already-committed octave readings that are pure Scripture
(Wisdom 4:7-20, Canticles 1 and 8, seven different Ezekiel excerpts across
All Saints' octave -- one of which, day 7, genuinely spans two chapters --
and Acts 19/Joel 2 for Pentecost's octave) to the new passages notation,
verified to resolve to character-identical text as before.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 10:06:10 -04:00
parent 589c4be0d7
commit 49bd7f7858
30 changed files with 1003 additions and 284 deletions
+38
View File
@@ -0,0 +1,38 @@
# Song of Songs (Vulgate "Canticum Canticorum," cited "Cant"), chapter 8.
# Verses 5-10 only -- transcribed from what was already pulled for the
# Assumption's octave day 8 Matins reading (Divinum Officium, Monastic
# Tridentinum 1617, live prayMatutinum query 2025-08-22), not the whole
# chapter.
book: cant
chapter: 8
verses:
- n: 5
text:
la: "Quæ est ista quæ ascendit de deserto, deliciis affluens, innixa super dilectum suum? Sub arbore malo suscitavi te; ibi corrupta est mater tua, ibi violata est genitrix tua."
en: "Who is this that cometh up from the desert, flowing with delights, leaning upon her beloved? Under the apple tree I raised thee up: there thy mother was corrupted, there she was defloured that bore thee."
status: { la: verified, en: verified }
- n: 6
text:
la: "Pone me ut signaculum super cor tuum, ut signaculum super brachium tuum, quia fortis est ut mors dilectio, dura sicut infernus æmulatio: lampades ejus lampades ignis atque flammarum."
en: "Put me as a seal upon thy heart, as a seal upon thy arm, for love is strong as death, jealousy as hard as hell, the lamps thereof are fire and flames."
status: { la: verified, en: verified }
- n: 7
text:
la: "Aquæ multæ non potuerunt extinguere caritatem, nec flumina obruent illam. Si dederit homo omnem substantiam domus suæ pro dilectione, quasi nihil despiciet eam."
en: "Many waters cannot quench charity, neither can the floods drown it: if a man should give all the substance of his house for love, he shall despise it as nothing."
status: { la: verified, en: verified }
- n: 8
text:
la: "Soror nostra parva, et ubera non habet; quid faciemus sorori nostræ in die quando alloquenda est?"
en: "Our sister is little, and hath no breasts. What shall we do to our sister in the day when she is to be spoken to?"
status: { la: verified, en: verified }
- n: 9
text:
la: "Si murus est, ædificemus super eum propugnacula argentea; si ostium est, compingamus illud tabulis cedrinis."
en: "If she be a wall: let us build upon it bulwarks of silver: if she be a door, let us join it together with boards or cedar."
status: { la: verified, en: verified }
- n: 10
text:
la: "Ego murus, et ubera mea sicut turris, ex quo facta sum coram eo, quasi pacem reperiens."
en: "I am a wall: and my breasts are as a tower since I am become in his presence as one finding peace."
status: { la: verified, en: verified }