3.1 KiB
3.1 KiB
Модуль: Нумерация
Ответственность: предоставляет чистые стратегии арабской, многоуровневой и кириллической нумерации без управления 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семантически, но публичные имена можно унифицировать, поскольку обратная совместимость не требуется.