Skip to content

Latest commit

 

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dg-node

Поиск и ридер текстов Пали-канона (SuttaCentral Bilara + переводы проекта DhammaGift). Node.js (Fastify в проде, Express — старый сервер), самодостаточный — всё, что фронтенд реально запрашивает из /assets/... (jQuery, Bootstrap, DataTables, словарь DPD, картинки кнопок, тулзы мультитула), лежит в public/overrides/; siteroot/assets/ (symlink на легаси-репо) остаётся только запасным маунтом для того, чего в public/overrides/ нет (тяжёлые PDF/аудио, тексты).

Архитектура и правила разработки — см. CLAUDE.md.

Установка и запуск

git pull
npm install
npm run build-search-db   # собрать dg.db (SQLite/FTS5) из свежих Bilara-данных
npm start                 # запустить прод-сервер (dg-fastify.js), порт 3000

build-search-db нужно перезапускать при изменении исходных текстов/переводов на диске — сервер каждый раз читает только уже собранный dg.db, не сканирует диск заново.

Пути к данным (SC_BILARA, DG_OFFLINE, офлайн-зеркала) определяются автоматически по окружению (Termux / Windows-разработка / Linux-прод).

unused/dg-light.js/unused/dblight.js (npm run start:express) — старый Express+grep сервер, legacy, в проде не используется (см. CLAUDE.md).

Проверка после деплоя/обновления

curl "http://localhost:3000/search?q=kacchapa&scope=dhamma&langs=ru,en"
curl -I "http://localhost:3000/assets/js/datatables/datatables.min.js"   # 200 из public/overrides/js/datatables, не из легаси-репо
curl -I "http://localhost:3000/dn22"                                  # ридер по чистому URL
curl -I "http://localhost:3000/dn22:10.5"                             # сегментная ссылка (скролл к 10.5)

Глазами в браузере:

  • /nodejs/res/?q=kacchapa&scope=dhamma — поиск, DataTables, экспорт.
  • /dn22 — ридер, полный текст.
  • Переключатель Pāḷi/Рус (три режима: пали+перевод → только пали → только перевод) — должен реально прятать текст (проверять getComputedStyle(el).display), а не только менять CSS-класс.
  • /?q=dn22#12.1 (старый формат) — должен продолжать работать наравне с /dn22:12.1.

Важно при деплое за Apache/PHP

Если публичный dhamma.gift сейчас обслуживается Apache/PHP, а Node — отдельный бэкенд, проксируемый только на /search, то новые роуты (/, /dn22, /assets/*, /api/text/*) снаружи видны не будут, пока правила проксирования не расширят на эти пути тоже. Легаси-репозиторий (/c/soft/dg в деве, соответствующий путь в проде) при этом не трогаем — правим только конфиг проксирования.

Структура

dg-fastify.js         — прод-сервер (Fastify + SQLite/FTS5, dg.db): /search, /api/text/:suttaId,
                        статика (search/, reader/, siteroot/assets/), офлайн-зеркала,
                        чистые URL (/dn22, /dn22:12.1)
unused/dg-light.js    — legacy Express+grep сервер, в проде не используется (см. CLAUDE.md)
unused/dblight.js     — билд-скрипт dg-light.js → dg_db_light.json (легаси, не нужен dg.db)
search/               — страница поиска (DataTables); URL остался /nodejs/res/... (см. CLAUDE.md)
reader/               — ридер (reader-template.html + megareader.js)
configs/              — json-конфиги проекта (openapi, reader/*, search/*), см. CLAUDE.md
docs/                  — документация не для каждой сессии (SPA-планы, backward compat)
siteroot/             — публикация от корня сайта: assets/ (легаси-ассеты), 4nt/config/login/
                        memo/read (легаси-тулзы), см. CLAUDE.md

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages