Язык атрибутов шаблона
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Язык атрибутов шаблона (TAL) — это язык шаблонов, используемый для создания динамических HTML и XML страниц . Его основная цель — упростить сотрудничество между программистами и дизайнерами. Это достигается путем встраивания операторов TAL в допустимые теги HTML (или XML), с которыми затем можно работать, используя общие инструменты проектирования.
TAL был создан для Zope , но используется Python и в других проектах на основе .
Атрибуты
[ редактировать ]Используются следующие атрибуты, обычно с префиксом " tal:
":
- определять
- создает локальные переменные, действительные в элементе, несущем атрибут (включая содержащиеся элементы)
- состояние
- решает, отображать ли тег (и весь содержащийся в нем текст)
- повторить
- создает переменную цикла и повторяет тег, повторяя последовательность, например, для создания списка выбора или таблицы
- содержание
- заменяет содержимое тега
- заменять
- заменяет тег (и, следовательно, не может использоваться вместе с контентом или атрибутами)
- атрибуты
- заменяет заданные атрибуты (например, используя
tal:attributes="name name; id name"
атрибутам name и id поля ввода можно установить значение переменной "name
") - пропустить день
- позволяет опустить начальный и конечный тег и отображать содержимое только в том случае, если данное выражение истинно.
- при ошибке
- в случае возникновения ошибки этот атрибут работает как тег содержимого.
Если тег имеет более одного атрибута TAL, они оцениваются в указанном выше (достаточно логичном) порядке.
В случаях, когда нет тега, который мог бы принять атрибуты, можно использовать специальные теги TAL, что делает " tal:
" префикс не обязателен. например:
<tal:if condition="context/itemlist">
...
</tal:if>
приведет к тому, что код внутри tal:if
теги, которые будут использоваться всякий раз, когда контекст (независимо от того, какой контекст определяет сервер приложений, например объект) содержит переменную " itemlist
" с истинным значением, например список, содержащий хотя бы один элемент. Идентификатор, следующий за двоеточием, является произвольным; он просто должен присутствовать и быть одинаковым для открывающего и закрывающего тега.
МЕТАЛЛ
[ редактировать ]Язык атрибутов шаблона расширения макросов (METAL) дополняет TAL, предоставляя макросы , которые позволяют повторно использовать код в файлах шаблонов. Оба были созданы для Zope , но используются Python и в других проектах .
METAL дополняет TAL возможностью повторного использования кода. Это позволяет разработчику определять и использовать макросы, которые, в свою очередь, могут иметь слоты ; при использовании макроса для слота можно указать вариационный контент.
При создании XML- документов необходимо указать пространство имен XML.
( xmlns:metal="http://xml.zope.org/namespaces/metal"
).
МЕТАЛЛИЧЕСКИЕ атрибуты
[ редактировать ]Распознаются следующие атрибуты, обычно требующие „ metal:
«префикс:
- определение макроса
- создает макрос
- определить-слот
- создает слот внутри макроса
- использовать-макрос
- использует макрос (обычно задаваемый через выражение пути TALES)
- заполнить слот
- при использовании макроса заменяет содержимое данного слота по умолчанию
- расширение-макрос
- начиная с Zope v3: расширяет макрос, сравнимый с созданием подклассов , путем переопределения слотов
Обычно одновременно используется только один из них.
В случаях, когда отсутствует тег, который мог бы принять атрибуты, а также в особых случаях, когда требуется более одного атрибута METAL, можно использовать специальные теги METAL, делая префикс «metal:» необязательным. Например, (нарисовано с Roundup учетом ):
<html metal:define-macro="icing">
...
<metal:myslot define-slot="optional-form">
...
</html>
<html metal:use-macro="templates/page/macros/icing">
<form metal:fill-slot="optional-form" action="."
tal:attributes="action context/designator">
...
</form>
</html>
Использование
[ редактировать ]TAL/TALES/METAL используются в следующих проектах:
- Zope (сервер веб-приложений)
- Сводка новостей (отслеживание проблем)
Другие реализации
[ редактировать ]Помимо оригинальной реализации Zope , существуют (не исчерпывающие):
Питон
[ редактировать ]- SimpleTAL
- OpenTAL
- ZPT, автономная версия шаблонов страниц Zope.
- Chameleon, быстрая реализация шаблонов страниц Zope.
С#
[ редактировать ]- ШарпТАЛ
Иди (Взрослея)
[ редактировать ]- tal, встроенная реализация TAL, TALES и METAL на Go
JavaScript
[ редактировать ]- template-tal , Реализация TAL для NodeJs
- он стоял
- Дистальный
- Вердикт
- ЗПТ-JS
Ява
[ редактировать ]- JPT: Java шаблоны страниц
- JavaZPT
- ZPT-Java
Перл
[ редактировать ]- PETAL, Perl язык атрибутов шаблонов
- Шаблон-TAL
Раку
[ редактировать ]- Flower — в Raku с некоторыми расширениями Petal и PHPTAL. реализация TAL
PHP
[ редактировать ]- PHPTAL
- Твитал
- Бисквит
- zTAL
XSL
[ редактировать ]Общий Лисп
[ редактировать ]- TALCL: библиотека, реализующая язык шаблонов TAL для Common Lisp.
Подобные реализации
[ редактировать ]- ATal – не совсем реализация TAL, но вдохновлена концепциями TAL.
- Thymeleaf — не реализация TAL, а аналогичный язык «естественных шаблонов».
Ссылки
[ редактировать ]Внешние ссылки
[ редактировать ]- Справочник по шаблонам страниц Zope (книга Zope)