Files
2026-10-09 04:24:38 +00:00

41 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Модуль: Нумерация
**Ответственность**: предоставляет чистые стратегии арабской, многоуровневой и кириллической нумерации без управления counters конкретного профиля.
**Расположение**: `.template/lib/shared/numbering.typ`
## Публичный интерфейс
| Символ | Тип | Описание |
|--------|-----|----------|
| `cyrillic-numbering()` | чистая функция | Преобразует положительный номер в допустимую заглавную кириллическую букву |
| `cyrillic-lower-numbering()` | чистая функция | Формирует строчную кириллическую часть списка |
| `num-11()` | чистая функция | Формирует многоуровневый формат `1.1.` |
| `num-1a()` | чистая функция | Чередует цифровые и кириллические уровни с наследованием |
| `num-1-a()` | чистая функция | Чередует уровни без полного наследования родителей |
| `attachment-numbering()` | чистая функция | Выбирает арабское или кириллическое обозначение из policy |
## Зависимости
| Модуль | Что использует |
|--------|----------------|
| Нет | Модуль состоит из чистых функций и неизменяемых массивов символов |
## Инварианты
- Исключённые ГОСТ-буквы не используются в кириллической последовательности.
- Ноль и отрицательные значения не маскируются неявным fallback, несовместимым с будущими версиями Typst.
- Функции не читают counters самостоятельно и форматируют только переданные числа.
- Один и тот же вход всегда возвращает одинаковую строку.
- Profile renderer управляет reset и scope counters, а не shared-модуль.
## Намеренно НЕ обрабатывает
- Сброс counters при новой главе.
- Выбор numbering policy конкретного документа.
- Формат заголовка приложения и supplement.
- Локализацию на другие языки.
## Заметки для агента
> Typst 0.15 предупреждает о fallback для numbering systems, которые не умеют отображать ноль. Добавьте явные негативные unit tests. Сохраните существующие варианты `num_11`, `num_1a`, `num_1_a` семантически, но публичные имена можно унифицировать, поскольку обратная совместимость не требуется.