Initial commit
This commit is contained in:
commit
41d230d524
163 files changed
+11500
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# Модуль: Настраиваемые списки
|
||||
|
||||
**Ответственность**: формирует многоуровневые номера и маркеры, сохраняя нативную вёрстку `enum`.
|
||||
**Расположение**: `.template/lib/presentation/lists.typ`
|
||||
|
||||
## Публичный интерфейс
|
||||
|
||||
| Символ | Тип | Описание |
|
||||
|--------|-----|----------|
|
||||
| `bullet-list()` | function | Локально применяет геометрию к стандартному маркированному списку |
|
||||
| `numbered-list()` | function | Локально применяет схему и геометрию к стандартному нумерованному списку |
|
||||
| `list-scheme()` | constructor | Создаёт проверенную конфигурацию уровней, разделителей и окончаний |
|
||||
| `list-level()` | constructor | Описывает нестандартный уровень, включая prefix, suffix и width |
|
||||
| `list-numbering()` | function factory | Возвращает функцию нумерации для прямого использования в `enum` |
|
||||
| `list-schemes` | dictionary | Хранит публичные готовые схемы |
|
||||
|
||||
## Инварианты
|
||||
|
||||
- Модуль не заменяет `enum`: переносы страниц, вложенность и многоабзацные элементы остаются ответственностью Typst.
|
||||
- Внутренне `enum.full` всегда включён, чтобы форматтер знал глубину; показ родительских уровней определяет `scheme.full`.
|
||||
- Если массив levels, separators или suffixes короче глубины, повторяется его последнее значение.
|
||||
- Неизвестная именованная схема вызывает понятную ошибку и не подменяется схемой по умолчанию.
|
||||
- Режимы `normal`, `compact` и `flush` меняют только геометрию; `auto` наследует окружающий стиль.
|
||||
- Локальные параметры `bullet-list` и `numbered-list` не должны менять списки за пределами переданного body.
|
||||
|
||||
## Поддерживаемые обозначения
|
||||
|
||||
- арабские числа: `1`;
|
||||
- арабские числа с ведущим нулём: `01` или `list-level("1", width: N)`;
|
||||
- римские числа: `I`, `i`;
|
||||
- латинские буквы: `A`, `a`;
|
||||
- кириллица по ГОСТ: `А`, `а`;
|
||||
- любой строковый или content-маркер;
|
||||
- пользовательская функция `value => content`.
|
||||
|
||||
## Намеренно НЕ обрабатывает
|
||||
|
||||
- собственную раскладку строк и переносы страниц;
|
||||
- скрытое глобальное продолжение счётчика между несвязанными списками;
|
||||
- автоматический выбор схемы по содержимому текста.
|
||||
|
||||
## Заметки для агента
|
||||
|
||||
> Не заменяйте нативный `enum` ручной сеткой или таблицей. Это ухудшит переносы, семантику документа и поддержку многоабзацных пунктов. Новые возможности добавляйте через форматирование массива родительских номеров и локальные set/show rules.
|
||||
Reference in new issue
Block a user