Модульная веб-база и набор инструментов для Space Stories Marine Corps.
Приложение показывает опубликованные данные из
DeferW/ssmc-wiki-data и не разбирает
игровые YAML самостоятельно.
Полное руководство по архитектуре и разработке: Markdown · DOCX.
- каталог снаряжения с поиском, категориями и адаптивной карточкой предмета;
- характеристики оружия, боеприпасов, брони, обвесов, хранилищ, медицины, связи и учебных предметов;
- каталог химических реагентов с поиском, рецептами, дозами и эффектами;
- планировщик приготовления химии в 100u-мензурках или баке до 1000u с разбиением на партии и точной последовательностью режимов химмастера;
- кликабельные связи между предметами;
- локальный CFG положения карточки;
- тестовый admin-редактор категорий с групповыми правками и сохранением через Cloudflare Worker;
- заглушки зарегистрированных будущих модулей без перехода на 404.
src/
admin/equipment/ admin API, черновик и admin-страница каталога
modules/
registry.tsx единый реестр и маршруты модулей
equipment/ рабочий модуль каталога
chemistry/ каталог реагентов и планировщик приготовления
pages/ главная, placeholder и 404
styles/ общая тема, страницы и responsive-правила
docs/ руководство контрибьютора
public/ статические ассеты
Новый модуль создаётся как src/modules/<module-id>/. Его карточка и маршрут
объявляются одной записью в src/modules/registry.tsx:
status: "planned"открываетPlaceholderPage;status: "active"вместе сComponentвключает готовую страницу.
URL модуля имеет вид /<module-id>, без промежуточного /module.
Production читает data/catalog/catalog.json из ssmc-wiki-data.
data/catalog/index.json является диагностическим файлом сборщика и не является
контрактом сайта.
Модуль химии читает data/chemistry/catalog.json. URL источников задаются
независимо, поэтому каталог и химия могут публиковаться и обновляться отдельно:
$env:VITE_CATALOG_DATA_ROOT="https://example.org/data/catalog/"
$env:VITE_CHEMISTRY_DATA_ROOT="https://example.org/data/chemistry/"Для локального источника задайте корень, обязательно с / в конце:
$env:VITE_CATALOG_DATA_ROOT="http://127.0.0.1:4173/catalog-data/"vite.config.ts проксирует /catalog-data на http://127.0.0.1:4174 и
/admin-api на Cloudflare Worker.
Требуются Node.js 22 и npm.
npm ci
npm run devПроверки перед commit/PR:
npm run lint
npm run test
npm run builddist/ и node_modules/ не коммитятся.
Цветовые токены находятся в src/styles/base.css:
- зелёный — действия, выбор, успешное состояние и обычный акцент;
- жёлтый — только редакторская отметка
EDITEDи статус «В разработке»; - красный — только настоящие ошибки;
- белые и приглушённые зелёно-серые оттенки — текст и вторичная информация.
Не добавляйте произвольные цветовые литералы в стили компонента: используйте существующие CSS-переменные.
Маршрут: #/equipment/admin.
Страница доступна всем в тестовом режиме. Категории можно менять до ввода
пароля: черновик сохраняется локально. Пароль требуется только для полной
перезаписи config/catalog-overrides.json через Worker и не записывается в
localStorage.
Скрытые — полноценная категория override. Такие предметы отсутствуют в
обычной выдаче, но остаются доступными по прямой ссылке и через связи других
предметов.
Текущая защита операции записи и требования к будущей закрытой admin-версии
описаны в src/admin/README.md.