Перейти к основному содержимому

Обзор и документация

В 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 %]