Правила: уточнения карт в Markdown и соглашения о формате блоков

cards-faq.md — «Уточнение карт» (декабрь 2020): общие положения и уточнения
по картам четырёх фракций, 93 блока. README.md — формат для #7/#10: маркер
блока с постоянным id и страницей PDF, kind для примеров, подписей и
связанных тем, словарь значков.

#6

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
This commit is contained in:
2026-09-19 11:51:49 +03:00
co-authored by Claude Opus 5
parent f7f74fee8c
commit 275d64e379
2 changed files with 633 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
# Правила Forbidden Stars в Markdown
Текст правил, разбитый на логические блоки. Из него строится поиск по правилам (веха v1.6):
на блоки навешиваются теги и синонимы (#7), затем их индексирует Meilisearch (#10).
| Файл | Источник | Страниц | Блоков |
|---|---|---|---|
| [rules.md](rules.md) | буклет «Правила игры» — `fs_rules_rus_web.pdf` | 16 | 184 |
| [reference.md](reference.md) | буклет «Справочник» — `fs_reference_rus_web.pdf` | 20 | 427 |
| [cards-faq.md](cards-faq.md) | «Уточнение карт», декабрь 2020 — `Уточнение_карт_Forbidden_Stars_декабрь2020.pdf` | 12 | 93 |
PDF в репозитории нет: они лежат вложениями в задаче #6. Правила и справочник — сканы без
текстового слоя, их текст распознан вручную по страницам. У «Уточнения карт» текстовый слой
есть, он взят за основу и сверен со страницами. Что не перенесено (обложки, художественный
текст, содержание), сказано в шапке каждого файла.
## Блок
Блок — наименьшая единица поиска: абзац под заголовком источника, пункт списка статьи
справочника или одна карта в уточнениях. Блок начинается маркером — HTML-комментарием,
который при отображении не виден:
```markdown
<!-- block: rules.battle.retreat.attacker; page: 15 -->
#### Атакующий отступает
Когда атакующий отступает, он должен переместить…
```
- **Граница блока — маркер.** Блок тянется до следующего маркера. Заголовок внутри блока
относится к нему. Если у абзаца нет своего заголовка, блок начинается прямо с текста.
- **Контекст блока** — цепочка заголовков над ним: `#` — файл, `##` — раздел или статья
глоссария, `###`/`####`/`#####` — подразделы. Первый блок раздела несёт его заголовок.
- **Нумерованные шаги** (подготовка к игре, шаги битвы) — отдельные блоки, заголовок шага
сохраняет номер источника: `### 2. Раунд битвы`, `#### а. Выберите Боевую Карту`.
- **Список** остаётся одним блоком вместе с вводной фразой, если пункты не имеют смысла
по отдельности. В справочнике каждый пункт статьи — самостоятельное правило, поэтому
каждый пункт — свой блок.
### Поля маркера
| Поле | Обязательно | Значение |
|---|---|---|
| `block` | да | постоянный id блока, уникальный во всей папке |
| `page` | да | страница PDF; `4-5`, если блок переходит на следующую страницу |
| `kind` | нет | тип не-правила (см. ниже); без `kind` блок — правило |
### Id
`<файл>.<раздел>[.<подраздел>…]` — латиница в нижнем регистре, слова через дефис, смысловые
английские слаги: `rules.orders.advance.limits`, `ref.retreats.defender.not-attacker-system`,
`faq.eldar.combat.psychic-lance`. Префикс: `rules.`, `ref.`, `faq.`. Вложенность id повторяет
вложенность заголовков, но не обязана совпадать с ней буквально.
**Id постоянны.** К ним привязываются теги, синонимы и ссылки «см. также» (#7), а через
них — поисковый индекс. Исправлять текст блока можно свободно. Id переименовывать нельзя:
новый блок получает новый id, а id удалённого блока больше не используется.
### `kind`
| Значение | Что это |
|---|---|
| `example` | врезка «Пример…» — иллюстрирует правило, но и сама может его уточнять |
| `caption` | подпись к схеме или иллюстрации. Если схема без подписи несёт информацию (например, раскладка тайлов), её описание составлено при переносе и выделено курсивом |
| `related` | строка «Связанные темы» из справочника — готовые связи между статьями |
## Текст
- Дословно, включая опечатки и авторскую пунктуацию источника. Ссылки «см. … на стр. N» —
номера страниц буклета.
- Переносы склеены, колонки и врезки выведены в порядке чтения.
- Выделение источника сохранено: жирный — `**…**`, курсив — `*…*`.
- Художественный текст (лор) не переносится.
## Значки
Значки внутри текста передаются словом в квадратных скобках. При отображении их можно
заменить картинкой, а для поиска они остаются словами.
| Запись | Значок |
|---|---|
| `[атака]`, `[защита]`, `[мораль]` | боевой значок на любом компоненте (мораль — боевой дух, аквила) |
| `[куб: атака]`, `[куб: защита]`, `[куб: мораль]` | значок на грани боевого куба |
| `[куб]` | куб, который нужно бросить |
| `[жетон: атака]`, `[жетон: защита]` | боевой жетон (значок в круге) |
| `[ресурс: кузница]`, `[ресурс: запасы]`, `[ресурс: подкрепление]`, `[ресурс: процветание]` | значок ценного ресурса на знамени мира |
| `[приказ: развертывание]`, `[приказ: планирование]`, `[приказ: доминирование]`, `[приказ: продвижение]` | жетон приказа |
## Проверка
Формальная проверка файлов (выполнялась при переносе, в репозиторий не входит): у каждого
маркера корректный формат, id уникален и имеет префикс своего файла, страница — в пределах
PDF, у каждого блока есть текст, каждая непропущенная страница дала хотя бы один блок, в
тексте только значки из таблицы выше, нет висячих переносов.