Files
test/.template/development/modules/numbering.md
T
2026-10-09 04:24:38 +00:00

3.1 KiB
Raw Blame History

Модуль: Нумерация

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