Один из бешеных японцев™ — Наоки Томита — сегодня опубликовал на спане интересный модуль Tempalte::Semantic, один из немногих yet another-шаблонизаторов, на который стоит обратить внимание.
Сам шаблон представляет собой обычный HTML-фрагмент, а данные в него подставляются из хеша, структура которого похожа на описание правил CSS или путей XPath. Важно, что в HTML-код шаблона не требуется вписывать никаких искусственных конструкций для интерполяции переменных.
Например, чтобы вывести заголовок на страницу, сначала создаем HTML-заготовку:
<html>
<head>
<title></title>
</head>
</html>
А затем описываем правила а-ля CSS:
use v5.10;
use strict;
use Template::Semantic;
say Template::Semantic->process(
'title.html',
{
'html title' => 'My Title',
}
);
Эта программа напечатает HTML-код с подставленным заголовком:
<html>
<head>
<title>My Title</title>
</head>
</html>
— Fantastique!
Описания с CSS-селекторами или XPath-адресами допустимо создавать и более сложной структуры, в том числе с вложенными хешами и списками (последние позволяют размножать фрагменты HTML-шаблонов).
Примеры наглядно описаны в документации модуля, а кроме того собраны в отдельном файле Template::Semantice::Cookbook.
Комментировать