Przejdź do treści głównej

Przegląd i dokumentacja

W A-Parser do formatowania zapytań i wyników stosowany jest silnik szablonów Template Toolkit. Silnik ten pozwala na tworzenie końcowego ciągu znaków (na przykład zapytań lub wyników) według reguł określonych w szablonie. Template Toolkit posiada wiele możliwości:

  • Obsługa warunków i pętli
  • Obsługa zwykłych zmiennych (skalarów), tablic i hashy (tablic asocjacyjnych)
  • Obsługa metod dla zmiennych (długość ciągu, wyszukiwanie i zamiana, rozmiar tablicy...)
  • Obsługa wtyczek i filtrów (wyświetlanie i formatowanie daty i czasu, generowanie elementów HTML...)

Przykład użycia silnika szablonów

Oficjalna dokumentacja Template Toolkit

Dużą zaletą tego silnika szablonów jest dostępność pełnej dokumentacji w językach rosyjskim i angielskim, poniżej znajdują się linki do najważniejszych sekcji dokumentacji:

  • Wprowadzenie - informacje ogólne
  • Składnia - zasady i styl pisania szablonów
  • Dyrektywy - warunki, pętle, filtry, wtyczki i makra
  • Zmienne - dostęp i aktualizacja wartości zmiennych, tablic i hashy
  • Metody wirtualne - predefiniowane funkcje do przetwarzania zmiennych, tablic i hashy
  • Wtyczki i Filtry - rozszerzone możliwości silnika szablonów, A-Parser obsługuje następujące wtyczki:
    • Date - do generowania sformatowanych ciągów z datami
    • Dumper - wyświetlanie zrzutu struktury danych
    • Format - do tworzenia funkcji formatujących opartych na składni printf
    • HTML - do tworzenia elementów HTML i escapowania kodu HTML
    • Filter - do tworzenia i używania filtrów definiowanych i dostępnych poprzez ładowanie wtyczki
    • Math - do korzystania z dowolnych funkcji matematycznych
    • String - implementuje dodatkowe metody do pracy z ciągami znaków
    • Table - do prezentacji danych w formie tabeli
    • URL - do budowania linków
    • Wrap - do formatowania akapitów
    • Iterator - do iteracji po zestawie danych. Iterator jest niejawnie tworzony automatycznie przez dyrektywę FOREACH. Ta wtyczka pozwala na jawne utworzenie iteratora o określonej nazwie

Przykłady użycia

Przykłady często używanych szablonów

Przykład użycia wtyczki Math

Losowo wybierz określoną liczbę linków:

[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]

Przykład pętli FOREACH

Wyświetl wszystkie linki i ich pozycje z tablicy $serp:

[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]

Przykład pętli WHILE

Wyświetl 5 anchorów z tablicy $serp, zaczynając od trzeciego:

[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]

Przykład warunku

Wyświetlanie określonych danych w zależności od wartości zmiennej:

[% IF p1.totalcount < 1000;
query _ " - mało\n";
ELSIF p1.totalcount < 1000;
query _ " - normalnie\n";
ELSE;
query _ " - dużo\n";
END %]