Prime: real content (psalms, Martyrology, Regula) and ordo corrections
Deploy / deploy (push) Failing after 21s
Deploy / deploy (push) Failing after 21s
Pulls in verified content from Divinum Officium rather than placeholders: 17 psalms (2, 6, 7-19, 118, 129), 365 days of the Martyrology, and the full 121-reading Regula cycle, plus the Athanasian Creed. Ordo corrections driven by review against the real engine output: - Capitulum and Preces now pick a Sunday/feast vs. ferial form (calendar/isSundayOrFeast); ferial Preces said every ferial day by choice. - Chapter responsory, hymn doxology, and the opening versicle's Alleluia/Laus tibi all vary by season via a shared resolver (hours/seasonal-propers.ts). - Real Roman Kalends/Nones/Ides Latin dating (calendar/roman-date.ts, verified against 363/365 real Martyrology headings) plus the historical "bis sextus" Feb 29 handling, and the Martyrology's Luna (moon-day) heading (a ported Golden-Number calculation). - Fixed responsory structure (was missing its initial full repeat), weekday psalm antiphons (opening as incipit-or-full by rank, full repeat after the psalms/Creed as its own part, "*" chant mark kept), scripture citations on the capitulum/lectio brevis, and V./R. markers switched from Unicode symbols to plain text for reliable font rendering. - Dropped Pretiosa and the dead-commemoration psalm (129) for time; trimmed section headings down to the ones that are actually named things (Preces, Chapter Office, etc. no longer relabel connective text). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import type { ProperText } from './types';
|
||||
|
||||
// Only the "common" propers store exists so far — sanctoral/temporal propers
|
||||
// (source: 'sanctoral' | 'temporal') are milestone-4 concerns and have no
|
||||
// data directory yet.
|
||||
const modules = import.meta.glob<{ default: ProperText }>('../data/propers/common/*.yml', {
|
||||
eager: true,
|
||||
});
|
||||
|
||||
const commonPropers = new Map<string, ProperText>();
|
||||
for (const mod of Object.values(modules)) {
|
||||
commonPropers.set(mod.default.id, mod.default);
|
||||
}
|
||||
|
||||
export function getCommonProper(id: string): ProperText {
|
||||
const proper = commonPropers.get(id);
|
||||
if (proper) {
|
||||
return proper;
|
||||
}
|
||||
// Same "resolve as pending" convention as psalm/martyrology/regula lookups
|
||||
// — an unauthored id isn't a bug, it's content waiting to be written.
|
||||
return { id, text: {}, status: { la: 'missing', en: 'missing' } };
|
||||
}
|
||||
|
||||
export type { ProperText } from './types';
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { LanguageCode, TranslationStatus } from '../psalter/types';
|
||||
|
||||
/** One fixed (non-day-variable) text used across hours — a hymn, a collect, a
|
||||
* whole Preces block, etc. Keyed by id, matching PropersRef.id. */
|
||||
export interface ProperText {
|
||||
id: string;
|
||||
text: Partial<Record<LanguageCode, string>>;
|
||||
status: Partial<Record<LanguageCode, TranslationStatus>>;
|
||||
/** e.g. "1 Tim 1:17" — set when this proper is a scripture quotation. */
|
||||
citation?: Partial<Record<LanguageCode, string>>;
|
||||
}
|
||||
Reference in New Issue
Block a user