Шаблон YHTML-Template представляет собой HTML-код с псевдотегами. Компилятор анализирует шаблоны в исходных HTML-файлах статей и разворачивает их в конкретный код, состоящий как из плоского текста, так и стандартных тегов HTML.
Пусть в исходный файл страницы помещён псевдотег
<!-- TMPL_EVAL expr -->
Тогда на выходе получится страницу с "динамическим" текстом или более сложным куском разметки, полученным в результате оценивания S-выражения Лисп expr.
Текущая версия компилятора включает следующие функции генерации кусков HTML-кода.
anchor-href link &key target
ahref link &key target
help:
, ни знак #,
то строка трактуется как якорь, т.е. она целиком
считается фрагментом, а не путём, и подразумевает схему help
."_popup"
означает искать только во всплывающих заметках,"_self"
, "_parent"
или другое непустое
значение означает искать только в обычных статьях,nil
, то искать везде.Если якорь найден в книге, то возвращается объект типа
ystok.uri:uri, который
может быть использован в качестве значения атрибута href
HTML-элемента A
.
Результат есть спецификация целевой страницы и, возможно,
включает якорь в качестве фрагмента.
Если якорь не найден в книге, возвращается nil
, а в журнал
пишется соответствующее предупреждение.
anchor-content link &key target suffix
acontent link &key target suffix
help:
, ни знак #,
то строка трактуется как якорь, т.е. она целиком
считается фрагментом, а не путём, и подразумевает схему help
."_popup"
означает искать только во всплывающих заметках,"_self"
, "_parent"
или другое
непустое значение означает искать только в обычных статьях;nil
, то искать везде.nil
.Если якорь найден в книге, возвращается псевдоэлемент LHTML вида
(:content . LHTML-список)
Когда для якоря явно задано свойство
text, то результирующий
LHTML-список состоит из строки — значения этого свойства —
или из результата форматирования этой строки с помощью псевдотегов
BBcode.
В противном случае LHTML-списком служит
содержимое HTML-элемента,
определяющего данный якорь.
Если значение suffix истино, к
содержимому якоря присоединяются дополнительные свойства, нампример,
category.
Если значение suffix есть nil
,
вслед за содержимым ничего не выдаётся.
Если якорь не найден в книге, возвращается nil
, а в журнал
пишется соответствующее предупреждение.
anchor-text link &key target
atext link &key target
help:
, ни знак #,
то строка трактуется как якорь, т.е. она целиком
считается фрагментом, а не путём, и подразумевает схему help
."_popup"
означает искать только во всплывающих заметках,"_self"
, "_parent"
или другое
непустое значение означает искать только в обычных статьях;nil
, то искать везде.Если якорь найден в книге, возвращается строка, являющаяся
Если якорь не найден в книге, возвращается nil
, а в журнал
пишется соответствующее предупреждение.
anchor-a link &key class target content text suffix
aa link &key class target content text suffix
help:
, ни знак #,
то строка трактуется как якорь, т.е. она целиком
считается фрагментом, а не путём, и подразумевает схему help
.A
."_popup"
означает искать только во всплывающих заметках,"_self"
, "_parent"
или другое непустое
значение означает искать только в обычных статьях,nil
, то искать везде.A
.t
, либо строка, явно задающая
содержимое генерируемого
элемента A
.nil
.Если якорь найден в книге, то возвращается кусок HTML-кода, состоящий из элемента
<A [class="class"] [target="target"] href="ahref">content-or-text</A>
где ahref — спецификация целевой страницы и, возможно, фрагмента для якоря, вычисленная с помощью функции {(anchor-a "ANCHOR-HREF" :text t)}.
Если в качестве class явно передаётся nil
,
то атрибут class
не выдаётся.
Если class не задан, то по умолчанию в качестве значения атрибута
class
будут перечислены те классы, которые
Если text есть t
, то содержимое будет плоским текстом,
вычисленным с помощью функции {(anchor-a "ANCHOR-TEXT" :text t)}.
Если оба аргумента content и text есть nil
,
то содержимое вычисляется исходя из определения якоря с помощью функции
{(anchor-a "ANCHOR-CONTENT" :text t)}.
Если значение suffix истино, к
содержимому якоря присоединяются дополнительные свойства, нампример,
category.
Если значение suffix есть nil
,
вслед за содержимым ничего не выдаётся.
Если якорь не найден в книге, возвращается nil
, а в журнал
пишется соответствующее предупреждение.