Обзор и документация
В A-Parser для форматирования запросов и результатов применяется шаблонизатор Template Toolkit. Шаблонизатор позволяет формировать конечную строку (например запросов или результатов) по правилам заданным в шаблоне. Template Toolkit имеет множество возможностей:
- Поддержка условий и циклов
- Поддержка обычных переменных (скаляров), массивов и хешей (ассоциативных массивов)
- Поддержка методов для переменных (длина строки, поиск и замена, размер массива...)
- Поддержка плагинов и фильтров (вывод и форматирование даты и времени, генерация HTML элементов...)
Пример использования шаблонизатора
Официальная документация по Template Toolkit
Большим преимущества данного шаблонизатора является наличие полноценной документации на русском и английском языках, ниже представлены ссылки на наиболее важные разделы документации:
- Введение - общая информация
- Синтаксис - правила и стиль написания шаблонов
- Директивы - условия, циклы, фильтры, плагины и макросы
- Переменные - доступ и обновление значений переменных, массивов и хешей
- Виртуальные методы - предустановленные функции по обработке переменных, массивов и хешей
- Плагины и Фильтры - расширенные возможности шаблонизатора, A-Parser поддерживает следующие плагины:
- Date - для генерации форматированных строк с датами
- Dumper - вывод дампа структуры данных
- Format - для создания форматирующих функций на основе синтаксиса printf
- HTML - для создания HTML элементов и экранирования HTML кода
- Filter - для создании и использовании фильтров, определяемых и доступных через загрузку плагина
- Math - для использования любых математических функций
- String - реализует дополнительные методы для работы со строками
- Table - для представления данных в виде таблицы
- URL - для построения ссылок
- Wrap - для форматирования абзацев
- Iterator - для обхода набора данных. Итератор неявно автоматически создается директивой FOREACH. Данный плагин позволяет создавать итератор явно с указанным именем
Примеры использования
Примеры часто используемых шаблонов
Пример использования плагина Math
Рандомно выбрать указанное кол-во ссылок:
[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]
Пример цикла FOREACH
Вывести все ссылки и их позиции из массива $serp
:
[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]
Пример цикла WHILE
Вывести 5 анкоров из массива $serp
, начиная с 3-го:
[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]
Пример условия
Вывод определенных данных в зависимости от значения переменной:
[% IF p1.totalcount < 1000;
query _ " - мало\n";
ELSIF p1.totalcount < 1000;
query _ " - нормально\n";
ELSE;
query _ " - много\n";
END %]