Resumen y documentación
En A-Parser, para el formateo de consultas y resultados se utiliza el motor de plantillas Template Toolkit. El motor de plantillas permite formar la cadena final (por ejemplo, de consultas o resultados) según las reglas establecidas en la plantilla. Template Toolkit tiene múltiples capacidades:
- Soporte para condiciones y ciclos
- Soporte para variables comunes (escalares), arreglos y hashes (arreglos asociativos)
- Soporte para métodos para variables (longitud de cadena, búsqueda y reemplazo, tamaño de arreglo...)
- Soporte para complementos y filtros (salida y formateo de fecha y hora, generación de elementos HTML...)
Ejemplo de uso del motor de plantillas
Documentación oficial de Template Toolkit
Una gran ventaja de este motor de plantillas es la existencia de documentación completa en ruso e inglés; a continuación se presentan enlaces a las secciones más importantes de la documentación:
- Introducción - información general
- Sintaxis - reglas y estilo de escritura de plantillas
- Directivas - condiciones, ciclos, filtros, complementos y macros
- Variables - acceso y actualización de valores de variables, arreglos y hashes
- Métodos virtuales - funciones preestablecidas para el procesamiento de variables, arreglos y hashes
- Complementos y Filtros - capacidades avanzadas del motor de plantillas, A-Parser admite los siguientes complementos:
- Date - para generar cadenas formateadas con fechas
- Dumper - salida del volcado de la estructura de datos
- Format - para crear funciones de formateo basadas en la sintaxis printf
- HTML - para crear elementos HTML y escapar código HTML
- Filter - para crear y usar filtros definidos y disponibles mediante la carga del complemento
- Math - para usar cualquier función matemática
- String - implementa métodos adicionales para trabajar con cadenas
- Table - para representar datos en forma de tabla
- URL - para construir enlaces
- Wrap - para el formateo de párrafos
- Iterator - para recorrer un conjunto de datos. El iterador se crea implícitamente de forma automática mediante la directiva FOREACH. Este complemento permite crear un iterador explícitamente con un nombre especificado
Ejemplos de uso
Ejemplos de plantillas de uso frecuente
Ejemplo de uso del complemento Math
Seleccionar aleatoriamente una cantidad especificada de enlaces:
[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]
Ejemplo del ciclo FOREACH
Mostrar todos los enlaces y sus posiciones desde el arreglo $serp:
[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]
Ejemplo del ciclo WHILE
Mostrar 5 anclajes del arreglo $serp, comenzando desde el tercero:
[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]
Ejemplo de condición
Salida de ciertos datos dependiendo del valor de la variable:
[% IF p1.totalcount < 1000;
query _ " - poco\n";
ELSIF p1.totalcount < 1000;
query _ " - normal\n";
ELSE;
query _ " - mucho\n";
END %]