Pular para o conteúdo principal

Visão geral e documentação

No A-Parser, o mecanismo de modelos Template Toolkit é usado para formatar consultas e resultados. O mecanismo de modelos permite formar a string final (por exemplo, de consultas ou resultados) de acordo com as regras definidas no modelo. O Template Toolkit possui muitos recursos:

  • Suporte para condições e loops
  • Suporte para variáveis comuns (escalares), arrays e hashes (arrays associativos)
  • Suporte para métodos de variáveis (comprimento da string, busca e substituição, tamanho do array...)
  • Suporte para plugins e filtros (exibição e formatação de data e hora, geração de elementos HTML...)

Exemplo de uso do mecanismo de modelos​

Documentação oficial do Template Toolkit​

Uma grande vantagem deste mecanismo de modelos é a existência de documentação completa em russo e inglês; abaixo estão os links para as seções mais importantes da documentação:

  • Introdução - informações gerais
  • Sintaxe - regras e estilo de escrita de modelos
  • Diretivas - condições, loops, filtros, plugins e macros
  • Variáveis - acesso e atualização de valores de variáveis, arrays e hashes
  • Métodos Virtuais - funções predefinidas para processamento de variáveis, arrays e hashes
  • Plugins e Filtros - recursos avançados do motor de modelos, o A-Parser suporta os seguintes plugins:
    • Date - para gerar strings formatadas com datas
    • Dumper - saída de dump da estrutura de dados
    • Format - para criar funções de formatação baseadas na sintaxe printf
    • HTML - para criar elementos HTML e escapar código HTML
    • Filter - para criar e usar filtros, definidos e disponíveis através do carregamento do plugin
    • Math - para usar quaisquer funções matemáticas
    • String - implementa métodos adicionais para trabalhar com strings
    • Table - para representação de dados em forma de tabela
    • URL - para construção de links
    • Wrap - para formatação de parágrafos
    • Iterator - para percorrer um conjunto de dados. O iterador é criado automática e implicitamente pela diretiva FOREACH. Este plugin permite criar um iterador explicitamente com um nome especificado

Exemplos de uso​

Exemplos de modelos frequentemente usados

Exemplo de uso do plugin Math​

Selecionar aleatoriamente um número especificado de links:

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

Exemplo de loop FOREACH​

Exibir todos os links e suas posições do array $serp:

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

Exemplo de loop WHILE​

Exibir 5 âncoras do array $serp, começando pela 3ª:

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

Exemplo de condição​

Exibição de certos dados dependendo do valor da variável:

[% IF p1.totalcount < 1000;
query _ " - pouco\n";
ELSIF p1.totalcount < 1000;
query _ " - normal\n";
ELSE;
query _ " - muito\n";
END %]