feat: color themes, dark mode, HC/sepia themes, moon tooltip, docs update

This commit is contained in:
catarrh committed 2026-08-02 23:45:56 +03:00
1 parent 857adce5da
commit f45791579b
16 files changed
+389 -240

No files matched your search

+13 -23
View File
@@ -8,11 +8,14 @@
## Возможности
- **Calendar** — Просмотр сеток месяцев с литургическими днями, периодами поста, чинами и празднованиями. Поддерживает юлианский календарь с григорианскими эквивалентами.
- **Календарь** — Просмотр сеток месяцев с литургическими днями, периодами поста, чинами и празднованиями. Поддерживает юлианский календарь с григорианскими эквивалентами.
- **Service Reader** — Сборка богослужебных текстов (часов, кафизм) из структурированных шаблонов с условной логикой.
- **Bible Reader** — Чтение Писания на 13 языках (церковнославянский, русский синодальный, KJV, Брентон, Вульгата и др.). Позиция чтения для каждой версии сохраняется между сессиями.
- **Жития святых** — 1203/3046 житий обогащены текстами из Четьи-Миней и Настольной книги Булгакова.
- **Многоязычный интерфейс** — Английский, русский, церковнославянский (со специальными шрифтами для церковнославянского).
- **PWA** — Устанавливается на настольные и мобильные устройства.
- **Цветовые схемы** — Переключение между Стандартной, Тёмной, Сепия и Высокой контрастностью в настройках.
- **PWA + Офлайн** — Устанавливается на устройства. Предзагрузка данных (жития, календарь, переводы Библии) для офлайн-доступа через IndexedDB.
- **Астрономия** — Время восхода/заката и церковная фаза луны (день, тренд, освещённость) в панели дня календаря. Местоположение настраивается.
- **Навигация** — 3 элемента верхнего уровня (Calendar, Library, Settings) с выпадающим меню Library: Библия, Service (Часослов, Сборник, Молитвенное правило, Каноны и акафисты, Паримии, Пареклит, Ирмологий), Праздники (Минея, Постная Триодь).
## Технологический стек
@@ -20,7 +23,7 @@
- [TypeScript](https://www.typescriptlang.org/) — полностью типизированный
- [Vite](https://vitejs.dev/) — инструмент сборки
- [Tailwind CSS v4](https://tailwindcss.com/) — CSS с утилитарными классами
- [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — конвертация устаревшего XML (только ручной режим)
- [vite-plugin-pwa](https://vite-pwa-org.netlify.app/) — PWA + service worker
## Начало работы
@@ -31,15 +34,6 @@ npm run dev
Файлы данных в `static/data/` отслеживаются в git. Единственный игнорируемый файл вывода — `scripts/output/minei.json` (33МБ источник Четьи-Миней).
Для повторного создания из XML-источников Java Ponomar запустите:
```bash
npm run convert # повторная конвертация всех данных из XML
npm run migrate # нормализация к текущему формату
```
Установите `PONOMAR_JAVA_HOME` для указания на локальный клон репозитория Java Ponomar (по умолчанию `../ponomar`).
```bash
npm run build # продуктивная сборка
npm run preview # предпросмотр продуктивной сборки
@@ -48,7 +42,9 @@ npm run preview # предпросмотр продуктивной сборк
## QA / Валидация
```bash
npx tsx scripts/validate-data.ts # Главный валидатор (274 файлов проверено)
npx tsc --noEmit # Проверка типов TypeScript
npm run build # Проверка сборки
npx tsx scripts/validate-data.ts # Главный валидатор
npx tsx scripts/validate-i18n.ts # Полнота i18n (en/ru/cu)
npx tsx scripts/validate-tabs.ts # Согласованность вкладок/шаблонов богослужений
npx tsx scripts/validate-menaion.ts # Валидация данных минеи
@@ -67,9 +63,9 @@ npx tsx scripts/assembler-test.ts # Интеграционные тест
- **Menaion (daily)** — 367 ежедневных записей (одна на каждый день юлианского календаря)
- **Menaion (feasts)** — 34 неподвижных праздника с отдельными богослужениями
- **Canons** — Пареклит (будние дни, 8 гласов × 6 дней = 48), Осмогласник (воскресенье, 8 гласов), Великий канон
- **Services** — 78 богослужений с полными данными (Пасха, расслабленный, Сергий, Покров и др.; Var/I-префикс + простые P-узлы varNodes теперь перехватываются)
- **Services** — 78 богослужений с полными данными
- **Horologion / Sbornik / Prayer Rule / Akathists / Parimii / Paraclete / Irmologion** — коллекции суточного круга
- **Lives** — Жития святых (en/cu/ru, 1190/3046 с обогащённым life.text из Четьи-Миней)
- **Lives** — Жития святых (en/cu/ru, 1203/3046 с обогащённым life.text из Четьи-Миней и Булгакова)
## Структура проекта
@@ -91,11 +87,5 @@ static/
## Документация
- **[DATA_FORMAT.md](DATA_FORMAT.md)** — Комплексная документация формата статических данных на английском языке
- **[DATA_RUS.md](DATA_RUS.md)** — Полная русская документация формата данных и процесса обогащения
Охватывает:
- Модели статических данных, правила маршрутизации и разбор компонентов
- Полный набор инструментов для конвертации, миграции и валидации
- Конвейер обогащения Четьи-Миней и рабочий процесс контроля качества
- Краткий справочник по всем доступным npm-скриптам и командам
- **[DATA_EN.md](DATA_EN.md)** — Комплексная документация формата статических данных на английском языке
- **[DATA_RUS.md](DATA_RUS.md)** — Полная русская документация формата данных и процесса обогащения