ЗАМЕЧАНИЕ: Эта документация не является полной и местами может
содержать неточности.
Библиотека шаблонов 'html' поставляется как часть Template Toolkit.
Ее можно найти в подкаталоге 'templates' установочного каталога.
use Template;
my $tt2 = Template->new({
INCLUDE_PATH => '/usr/local/tt2/templates',
});
Для переносимости можно использовать метод класса
'Template::Config->instdir()' , чтобы определить каталог,
в который установлена библиотека 'templates'.
use Template;
my $tt2 = Template->new({
INCLUDE_PATH => Template::Config->instdir('templates'),
});
После этого у вас есть доступ к библиотеке html, например:
[% INCLUDE html/header %]
Обратите внимание, что некоторые из более базовых элементов не предоставляют
обычные теги HTML. Во многих случаях более целесообразно использовать обычную
HTML разметку, чем более сложные конструкции из шаблонных элементов.
Сравните например,
<table>
. . .
</table>
и
[% WRAPPER html/table %]
. . .
[% END %]
Тем не менее, использование шаблонных элементов для генерации лежащего
в основе HTML имеет свои важные достоинства, особенно когда конструкции
становятся все более сложными и более магическими.
Смотрите подкаталог 'examples' каталога дистрибутива, чтобы получить больше
примеров и ясности в использовании этой библиотеки.
Шапки, подвалы и страницы
- header
Элемент 'header' генерирует обычный заголовок, необходимый в качестве
преамбулы HTML документа. Он включает в себя все начиная от начального
<html> до открывающего <body>.
[% INCLUDE html/header
title = 'This is a Test'
bgcol = '#ffffff'
%]
Дополнительные элементы заголовка можно указать явной установкой переменной
'headers', например
[% headers = BLOCK %]
<META name="description" content="Template Toolkit">
<META name="REVISIT-AFTER" content="14 days">
<META name="keywords" content="Templates, Web, ...etc...">
[% END %]
[% INCLUDE html/header
title = 'This is a Test'
bgcol = '#ffffff'
%]
- footer
Элемент 'footer' генерирует завершающие теги </body> и
</html> в противовес заголовку.
[% PROCESS html/header %]
...page content here...
[% PROCESS html/footer %]
- page
Элемент 'page' - комбинация элементов 'html/header' и 'html/footer'.
[% WRAPPER html/page %]
...page content here...
[% END %]
Содержимое страницы необходимо определить в переменной 'content' (например,
через WRAPPER). Дополнительные заголовки HTML должны быть определены в
переменной 'headers'.
[% WRAPPER html/page
headers = '<META name="keywords" content="foo, bar, ...">'
%]
...page content here...
[% END %]
Таблицы, полоски и рамки
- table
Базовый элемент для создания HTML таблиц.
[% WRAPPER html/table pad=10 space=4 col='#404040' %]
<tr>
<td>Hello</td> <td>World</td>
</tr>
[% END %]
Можно определить следующие переменные:
- border
Устанавливает ширину границы (по умолчанию: 0)
- col
Устанавливает цвет фона (по умолчанию: нет).
- width
Устанавливает фиксированную ширину таблицы.
- pad
Устанавливает клеточный отступ.
- space
Устанавливает межклеточное расстояние.
- content
Содержимое внутри таблицы. Устанавливается автоматически при
использовании WRAPPER.
- row
Базовый элемент для создания строк таблицы HTML.
[% WRAPPER html/table %]
[% WRAPPER html/row %]
<td>Hello</td> <td>World</td>
[% END %]
[% END %]
Можно определить следующие переменные:
- col
Устанавливает цвет фона (по умолчанию: нет).
- valign
Устанавливает вертикальное выравнивание.
- rowspan
Устанавливает количество объединенных строк.
- content
Содержимое внутри строки. Устанавливается автоматически при
использовании WRAPPER.
- cell
Базовый элемент для создания ячеек HTML таблиц.
[% WRAPPER html/table %]
[% WRAPPER html/row %]
[% INCLUDE html/cell
FOREACH content = ['Hello', 'World'] %]
[% END %]
[% END %]
Можно определить следующие переменные:
- col
Устанавливает цвет фона (по умолчанию: нет).
- align
Устанавливает горизонтальное выравнивание.
- colspan
Устанавливает количество объединенных колонок.
- content
Содержимое внутри ячейки. Устанавливается автоматически при
использовании WRAPPER.
- bar
Элемент 'bar' - это обертка вокруг html/table + html/row.
[% WRAPPER html/bar %]
<td>Foo</td> <td>Bar</td>
[% END %]
- box
Элемент 'box' - это обертка вокруг html/table + html/row + html/cell.
[% WRAPPER html/box %]
Hello World!
[% END %]
|