Procesador de plantillas

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Un diagrama que ilustra todos los elementos básicos y el flujo de procesamiento de un motor de plantilla.

Un procesador de plantillas (también conocido como motor de plantillas o analizador de plantillas) es un software diseñado para combinar plantillas con datos (definidos por un modelo de datos) para producir documentos o programas resultantes. El lenguaje en el que se escriben las plantillas se conoce como lenguaje de plantillas o lenguaje de plantillas. A los efectos de este artículo, un documento resultante es cualquier tipo de salida formateada, incluidos documentos, páginas web o código fuente (en la generación de código fuente), ya sea en su totalidad o en fragmentos. Un motor de plantillas se incluye normalmente como parte de un sistema de plantillas web o un marco de aplicación, y también se puede utilizar como preprocesador o filtro.

Características típicas

Los motores de plantillas suelen incluir características comunes a la mayoría de los lenguajes de programación de alto nivel, con énfasis en las funciones para procesar texto sin formato.

Estas características incluyen:

  • variables y funciones
  • sustitución del texto
  • inclusión de archivos (o transclusión)
  • evaluación condicional y bucles

Motores de plantilla embebidos

Si bien los procesadores de plantillas suelen ser un software independiente que se utiliza como parte de un sistema o marco de trabajo, los lenguajes de plantillas simples suelen incluirse en las funciones de procesamiento de cadenas de los lenguajes de programación de propósito general y en los programas de procesamiento de texto, en particular los editores de texto o los procesadores de texto. Los lenguajes de plantillas son generalmente lenguajes de sustitución simple, en contraste con las funciones más sofisticadas de los procesadores de plantillas completos, pero pueden contener algo de lógica.

Algunos ejemplos sencillos incluyen cadenas de formato de impresión 'printf', que se encuentran en muchos lenguajes de programación, y fragmentos de código, que se encuentran en varios editores de texto y editores de código fuente. En los procesadores de texto, las plantillas son una característica común, mientras que el llenado automático de las plantillas se conoce a menudo como combinación de correspondencia.

Un ejemplo ilustrativo de la naturaleza complementaria del análisis y la creación de plantillas es el comando s (sustituto) del procesador de texto sed, que se origina a partir de la función de búsqueda y reemplazo del editor de texto ed. Los comandos de sustitución tienen el formato s/regexp/replacement/, donde regexp es una expresión regular para analizar la entrada y replacement es una plantilla simple para la salida, ya sea texto literal o una cadena de formato que contiene los caracteres & para la "coincidencia completa" o las secuencias de escape especiales \1 a \9 para la subexpresión nésima. Por ejemplo, s/(cat|dog)s?/\1s/g reemplaza todas las ocurrencias de "cat" o "perro" con "gatos" o "perros", sin duplicar un "s" existente: (cat|dog) es la primera (y única) subexpresión en la expresión regular, y \1 en la cadena de formato la sustituye en la salida.

Elementos del sistema

Todos los sistemas de procesamiento de plantillas constan al menos de estos elementos principales:

  • un asociado modelo de datos;
  • uno o más plantillas de fuentes;
  • un procesador o plantilla del motor;
  • producción generada en forma de documentos de resultados.

Modelo de datos

Puede ser una base de datos relacional, un archivo fuente como XML, un formato alternativo de base de datos de archivo plano, una hoja de cálculo o cualquier otra fuente de datos preformateados. Algunos sistemas de procesamiento de plantillas están limitados en cuanto a los tipos de datos que se pueden utilizar. Otros están diseñados para una máxima flexibilidad y permiten muchos tipos de datos diferentes.

Plantilla de origen

Las plantillas de origen se especifican tradicionalmente:

  • según un lenguaje de programación preexistente;
  • según un lenguaje de plantilla especialmente definido;
  • según las características de una aplicación de software de hosting; o
  • según una combinación híbrida de algunas o todas las anteriores.

Motor de plantilla

El motor de plantillas es responsable de:

  • conectarse al modelo de datos;
  • procesar el código especificado en las plantillas de origen; y
  • Dirigir la salida a un oleoducto específico, archivo de texto o flujo.

Además, algunos motores de plantillas permiten opciones de configuración adicionales.

Documentos de resultados

Pueden consistir en un documento completo o en un fragmento de documento.

Usos

El procesamiento de plantillas se utiliza en diversos contextos para distintos fines. El propósito específico depende normalmente de la aplicación de software o del motor de plantillas que se utilice. Sin embargo, la flexibilidad de los sistemas de procesamiento de plantillas a menudo permite usos no convencionales para fines que no fueron previstos originalmente por los diseñadores originales.

Motor de plantilla

Un motor de plantillas es un tipo específico de módulo de procesamiento de plantillas que exhibe todas las características principales de un lenguaje de programación moderno. El término motor de plantillas evolucionó como una descripción generalizada de los lenguajes de programación cuyo propósito principal o exclusivo era procesar plantillas y datos para generar texto. El uso de este término se aplica principalmente al desarrollo web mediante un sistema de plantillas web, y también se aplica a otros contextos.

Generación de documentos

Los marcos de generación de documentos suelen utilizar el procesamiento de plantillas como modelo central para generar documentos.

Generación de código fuente

Las herramientas de generación de código fuente permiten generar código fuente (como documentos resultantes) a partir de modelos de datos abstractos (por ejemplo, UML, datos relacionales, almacenes de datos empresariales específicos de dominio) para dominios de aplicación particulares, organizaciones particulares o para simplificar el proceso de producción para programadores informáticos.

Función del software

Un motor de plantillas web procesa plantillas web y datos de origen (normalmente de una base de datos relacional) para producir una o más páginas web de salida o fragmentos de páginas. Normalmente se incluye como parte de un sistema de plantillas web o un marco de aplicación. Actualmente, el software de procesamiento de plantillas se utiliza con mayor frecuencia en el contexto del desarrollo para la web.

Comparación

XSLT es un modelo de procesamiento de plantillas diseñado por W3C. Está diseñado principalmente para transformaciones de datos XML (en documentos web u otros formatos de salida).

Los lenguajes de programación como Perl, Python, PHP, Ruby, C#, Java y Go admiten el procesamiento de plantillas de forma nativa o a través de bibliotecas y módulos complementarios. JavaServer Pages, Active Server Pages, Genshi (para Python) y eRuby son ejemplos de motores de plantillas diseñados específicamente para el desarrollo de aplicaciones web.

Además, el procesamiento de plantillas a veces se incluye como una subfunción de paquetes de software como editores de texto, IDE y sistemas de gestión de bases de datos relacionales.

Beneficios del uso de motores de plantilla

  • alienta la organización del código fuente en capas distintas operacionalmente (véase, por ejemplo, MVC)
  • mejora la productividad reduciendo la reproducción innecesaria del esfuerzo
  • mejora el trabajo en equipo permitiendo la separación del trabajo sobre la base de habilidades (por ejemplo, artísticas vs. técnicas)

Véase también

  • Automatización de documentos
  • Modelado de documentos
  • Lenguaje de programación específico del dominio
  • Glosario de los términos de los sistemas operativos §
  • Internacionalización y localización
    • Repositorio de datos locales comunes
    • gettext
  • Motores de diseño
  • Macro (ciencia de ordenador)
  • Sistema de plantilla web
    • Comparación de los motores de plantilla web

Referencias

  1. ^ Niemeyer, Patrick (2002). Aprender Java. Sebastopol: O'Reilly. ISBN 0-596-00285-8.
  2. ^ Manolescu, Dragos (2006). Patrón Idiomas de Diseño de Programa 5. Lectura: Addison-Wesley Professional. ISBN 0-321-32194-4.
  3. ^ Fowler, Martin (2003). Patrones de Arquitectura de Aplicaciones Empresariales. Addison-Wesley. ISBN 0-321-12742-0.
  4. ^ (ver por ejemplo, Velocity, TemplateToolkit, Freemarker).
  5. ^ JavaServer Pages es una tecnología lanzada por Sun para su uso con el lenguaje de programación Java. "JavaServer Pages Technology". 2006-10-10. Retrieved 2006-10-10.
  6. ^ ASP 1.0 fue lanzado originalmente para su uso con Microsoft VBScript y JScript. Fue una extensión a Microsoft IIS.
  • Realización de la separación estricta de la vista de modelo en los motores de plantilla
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save