feat: color themes, dark mode, HC/sepia themes, moon tooltip, docs update
This commit is contained in:
1 parent
857adce5da
commit
f45791579b
16 files changed
+389
-240
No files matched your search
@@ -11,17 +11,19 @@ Derived from the original [Java Ponomar application](https://github.com/typiconm
|
||||
- **Calendar** — View month grids with liturgical days, fasting periods, ranks, and commemorations. Supports Julian calendar with Gregorian equivalents.
|
||||
- **Service Reader** — Assembles liturgical services (Hours, Kathismata) from structured templates with conditional logic.
|
||||
- **Bible Reader** — Read scripture across 13 versions (Church Slavonic, Russian Synodal, KJV, Brenton, Vulgate, etc.). Per-version reading position persists across sessions.
|
||||
- **Saint Lives** — 1203/3046 lives enriched with texts from Chetyi-Minei and Bulgakov's Desktop Book.
|
||||
- **Multi-language UI** — English, Russian, Church Slavonic (with dedicated Slavonic fonts).
|
||||
- **PWA** — Installable on desktop and mobile devices.
|
||||
- **Navigation** — 3 top-level items (Calendar, Library, Settings) with Library dropdown: Bible, Service (Horologion, Sbornik, Prayer Rule, Canons & Akathists, Parimii, Paraclete, Irmologion), Feasts (Menaion, Lenten Triodion).
|
||||
- **Color Themes** — Switch between Default, Dark, Sepia, and High Contrast themes in settings.
|
||||
- **PWA + Offline** — Installable on desktop and mobile. Preload data (lives, calendar, Bible translations) for offline use via IndexedDB cache.
|
||||
- **Astronomy** — Sunrise/sunset times and ecclesiastical moon phase (day, trend, illumination) displayed in the calendar day detail panel. Location configurable in settings.
|
||||
- **Navigation** — 3 top-level items (Calendar, Library, Settings) with Library dropdown: Bible, Service (Horologion, Sbornik, Prayer Rule, Canons & Akathists, Parimii, Paraclete, Irmologion), Feasts (Menaion, Lenten Triodion).
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- [TypeScript](https://www.typescriptlang.org/) — fully typed
|
||||
- [Vite](https://vitejs.dev/) — build tool
|
||||
- [Tailwind CSS v4](https://tailwindcss.com/) — utility-first CSS
|
||||
- [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — legacy XML conversion (manual only)
|
||||
- [vite-plugin-pwa](https://vite-pwa-org.netlify.app/) — PWA + service worker
|
||||
|
||||
## Getting Started
|
||||
|
||||
@@ -32,13 +34,6 @@ npm run dev
|
||||
|
||||
Data files in `static/data/` are tracked in git. The only gitignored output is `scripts/output/minei.json` (33MB Chetyi-Minei source).
|
||||
|
||||
```bash
|
||||
npm run convert # re-convert all data from XML
|
||||
npm run migrate # normalize to current format
|
||||
```
|
||||
|
||||
Set `PONOMAR_JAVA_HOME` to point at a local clone of the Java Ponomar repository (defaults to `../ponomar`).
|
||||
|
||||
```bash
|
||||
npm run build # production build
|
||||
npm run preview # preview production build
|
||||
@@ -47,7 +42,9 @@ npm run preview # preview production build
|
||||
## QA / Validation
|
||||
|
||||
```bash
|
||||
npx tsx scripts/validate-data.ts # Main validator (274 files checked)
|
||||
npx tsc --noEmit # TypeScript type checking
|
||||
npm run build # Build verification
|
||||
npx tsx scripts/validate-data.ts # Main data validator
|
||||
npx tsx scripts/validate-i18n.ts # i18n completeness (en/ru/cu)
|
||||
npx tsx scripts/validate-tabs.ts # service tab/template consistency
|
||||
npx tsx scripts/validate-menaion.ts # menaion data validation
|
||||
@@ -66,9 +63,9 @@ npx tsx scripts/assembler-test.ts # service assembler integration tests
|
||||
- **Menaion (daily)** — 367 daily entries (one per Julian calendar day)
|
||||
- **Menaion (feasts)** — 34 fixed feasts with dedicated services
|
||||
- **Canons** — Paraclete (weekday, 8 tones × 6 days = 48), Octoechos (Sunday, 8 tones), Great Canon
|
||||
- **Services** — 78 data-backed services with full.json (Pascha, Paralytic, Sergius, Pokrov, etc.; Var/I-prefix + bare P-prefix varNodes now intercepted)
|
||||
- **Services** — 78 data-backed services with full.json (Pascha, Paralytic, Sergius, Pokrov, etc.)
|
||||
- **Horologion / Sbornik / Prayer Rule / Akathists / Parimii / Paraclete / Irmologion** — daily-cycle collections
|
||||
- **Lives** — Saint lives (en/cu/ru, 1190/3046 with life.text enriched from Chetyi-Minei)
|
||||
- **Lives** — Saint lives (en/cu/ru, 1203/3046 with life.text enriched from Chetyi-Minei and Bulgakov)
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -79,7 +76,7 @@ src/
|
||||
main.ts — Entry point
|
||||
scripts/ — Data conversion, migration, validation, enrichment, and CLI tools
|
||||
static/
|
||||
data/ — Liturgical data as JSON (tracked in git, generated from Java XML via npm run convert)
|
||||
data/ — Liturgical data as JSON (tracked in git)
|
||||
fonts/ — Church Slavonic fonts
|
||||
icons/ — PWA icons
|
||||
```
|
||||
@@ -90,11 +87,5 @@ Same as the original Java project.
|
||||
|
||||
## Documentation
|
||||
|
||||
- **[DATA_FORMAT.md](DATA_FORMAT.md)** — Comprehensive static data format documentation in English
|
||||
- **[DATA_RUS.md](DATA_RUS.md)** — Complete Russian documentation of data format and enrichment process
|
||||
|
||||
Covers:
|
||||
- Static data models, routing rules, and component breakdown
|
||||
- Complete tool inventory for conversion, migration, and validation
|
||||
- Chetyi-Minei enrichment pipeline and quality assurance workflow
|
||||
- Quick reference for all available NPM scripts and commands
|
||||
- **[DATA_EN.md](DATA_EN.md)** — Comprehensive static data format documentation in English
|
||||
- **[DATA_RUS.md](DATA_RUS.md)** — Complete Russian documentation of data format and enrichment process
|
||||
Reference in new issue
Block a user