Связывание шаблонных переменных на каждой итерации цикла по (под)заголовкам.
[функция] toc-children &key heading-class depth referrer suffix
H
i
с помощью атрибута class="css-class"
.
Умолчание есть :all
.t
.Список ассоциативных списков, связывающих шаблонные переменные, для всех подзаголовков, вложенных в компонент referrer. Список отсортирован в "естественном" порядке вхождения статей в книгу.
В качестве referrer можно указать одну из специальных переменных:
*current-chapter*
*current-topic*
По умолчанию, если текущая статья является начальной в разделе,
в качестве компонента принимается *current-chapter*
,
иначе *current-topic*
.
Собираются все подзаголовки, разница уровней которых с уровнем заголовка
самого component не превышает depth.
Образец heading-class сопоставляется со значением атрибута class
элементов H
i
.
Он задается в синтаксисе языка Лисп согласно следующему правилу:
pattern ::= nil | keyword | string | (not pattern) | (and pattern...) | (or pattern...)
Причем
"*"
и :all
сопоставляются с любым значением атрибута class="css-class"
, в том числе, пустым;nil
и :none
сопоставляются с пустым значением атрибута, т.е. когда он не задан или есть
пустая строка "";
"css-class"
может содержать несколько имён классов, разделённых пробелами.Если вложенные подзаголовки отсутствуют внутри component,
возвращается пустой список ()
, т.е. nil
.
Если значение suffix истино, значение
шаблонной переменной
item-content
будет включать и текст заголовка, и дополнительные свойства, нампример,
category.
Если значение suffix есть nil
,
вслед за содержимым ничего не выдаётся.
На начальной странице раздела верхнего уровня часто размещают его краткое оглавление. Для этого в исходный код страницы нужно поместить шаблон следующего вида:
<ul> <!-- TMPL_LOOP (toc-children) --> <li><a href="{item-uri}" class="{item-class}" title="{item-description}">{item-content}</a></li> <!-- /TMPL_LOOP --> </ul>