Недавно я задал несколько вопросов по этой теме, и, независимо от того, ответил я или нет, я достаточно много узнал об этой технологии. В любом случае;
Я переделывал созданный мной ранее шаблонизатор, переводя механизм синтаксического анализа из регулярного выражения в узел (XML). Для сравнения вот два:
Управляемое регулярным выражением:
<body>
<!-- {{ region:myRegion }} -->
<div class="myClass">
<h1>{{ var:myHeading format:trim[200] }}</h1>
</div>
<!-- {{ region:myRegion }} -->
</body>
Привод узла:
<body>
<zuq:region name="myRegion">
<div class="myClass">
<h1>
<zuq:data name="myHeading">
<zuq:format type="trim">
<zuq:param name="length" value="200" />
</zuq:format>
</zuq:data>
</h1>
</div>
</zuq:region>
</body>
Теперь, хотя гораздо более многословно, я полагаю, что здесь предпочтителен подход на основе узлов, предоставляющий гораздо большую гибкость для ситуаций, таких как форматирование, когда несколько узлов формата могут вставляться и обрабатываться в порядке появления.
В любом случае, моя проблема заключается в атрибутах . При использовании подхода, основанного на регулярных выражениях, если я хочу, чтобы в атрибуте было значение, сгенерированное шаблоном, это так просто:
<a href="page.php?param={{ var:myParam }}">Link</a>
Я пытаюсь выяснить, как включить чистую реализацию создания значений атрибутов, сохраняя при этом документы в правильном формате. Еще раз рассмотрим варианты форматирования, среди прочих возможных элементов, которые синтаксический анализатор будет читать как модификаторы данных.
Есть идеи?