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 mecanismo de modelos, o A-Parser suporta os seguintes plugins:
    • Date - para gerar strings de data formatadas
    • Dumper - exibe o 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 de plugins
    • Math - para usar quaisquer funções matemáticas
    • String - implementa métodos adicionais para trabalhar com strings
    • Table - para representar dados em forma de tabela
    • URL - para construir links
    • Wrap - para formatação de parágrafos
    • Iterator - para percorrer um conjunto de dados. O iterador é criado implicitamente de forma automática 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 %]