Un sistema de plantillas web en publicación web permite a los diseñadores y desarrolladores web trabajar con plantillas web para generar automáticamente páginas web personalizadas , como los resultados de una búsqueda. Esto reutiliza elementos estáticos de la página web mientras define elementos dinámicos basados en los parámetros de solicitud web . Las plantillas web admiten contenido estático y proporcionan una estructura y apariencia básicas. Los desarrolladores pueden implementar plantillas de sistemas de gestión de contenidos , marcos de aplicaciones web y editores HTML .
Un sistema de plantillas web se compone de lo siguiente:
El motor de plantillas procesa y combina la plantilla y los recursos de contenido para producir documentos web en masa. Para los fines de este artículo, los documentos web incluyen cualquiera de los diversos formatos de salida para su transmisión a través de la web a través de HTTP , HTTPS u otro protocolo de Internet .
Dado que el modelo normalmente se encuentra en una base de datos relacional, los componentes restantes de la arquitectura MVC son el control y la vista. En el sistema más simple estos dos no están separados. Sin embargo, adaptando el principio de separación de preocupaciones se pueden desacoplar completamente las relaciones.
Por ejemplo, la plantilla de vista puede verse así:
<!DOCTYPE html> < html xmlns = "http://www.w3.org/1999/xhtml" > < head >< title > Sitios </ title >> head > < body >< h1 data-xp = " título" > <!-- marcador de posición --> </ h1 ></ cuerpo > </ html >
Luego, la plantilla de control carga la vista y luego utiliza el direccionamiento XPath [¿ investigación original? ] para insertar componentes de una base de datos, por ejemplo:
<?php $doc = nuevo documento DOM ; $doc -> preservarEspacioBlanco = falso ; $doc -> Cargar ( 'view.html' ); $titlenode = $doc -> createTextNode ( "Así" ); $xpath = nueva DOMXPath ( $doc ); $xpath -> registrarNamespace ( "h" , "http://www.w3.org/1999/xhtml" ); $consulta = "//h:*[@data-xp='título']/comentario()" ; $entradas = $xpath -> consulta ( $consulta ); foreach ( $entradas como $entrada ) { $entrada -> parentNode -> reemplazarChild ( $titlenode , $entrada ); } echo $doc -> saveXML (); ?>
Un navegador web y un servidor web son una arquitectura cliente-servidor . Los sitios también suelen utilizar un caché web para mejorar el rendimiento. Se clasifican cinco tipos de sistemas de plantillas según cuándo reemplazan los marcadores de posición con contenido real y ensamblan páginas.
Los idiomas de las plantillas pueden ser:
El código fuente del motor de plantillas puede ser propietario o de código abierto .
Muchos sistemas de plantillas son un componente de una plataforma o marco de programación más grande. Se les conoce como el "sistema de plantillas de la plataforma". Algunos sistemas de plantillas tienen la opción de sustituir un lenguaje o motor de plantilla diferente. [ cita necesaria ]
Los lenguajes de programación como Perl , Ruby , C y Java admiten el procesamiento de plantillas de forma nativa o mediante bibliotecas y módulos complementarios. JavaServer Pages (JSP), PHP y Active Server Pages (ASP con VBScript , JScript u otros lenguajes) son ejemplos, en sí mismos, de motores de plantillas web. Estas tecnologías se utilizan normalmente en sistemas de plantillas del lado del servidor, pero podrían adaptarse para su uso en un proxy "del lado" o para la generación de páginas estáticas.
Los generadores de sitios estáticos son motores que utilizan archivos de entrada de texto plano como Markdown y Asciidoc para generar una página web estática . Ejemplos de esto incluyen Jekyll (Liquid, Ruby ), Hugo ( plantillas Go ) y Pelican ( Jinja2 , Python ).
Los editores HTML suelen utilizar sistemas de plantillas web para producir sólo páginas web estáticas . Estos pueden verse como un diseño web listo para usar , que se utiliza para producir en masa sitios web "cortados por galletas" para una rápida implementación. También suelen incluir temas en lugar de estilos CSS . En general, el lenguaje de plantilla se utiliza únicamente con el software del editor. [5]
FrontPage y Dreamweaver alguna vez fueron los editores más populares con subsistemas de plantillas. Una plantilla web Flash utiliza Macromedia Flash para crear sitios visualmente interactivos.
Muchos sistemas de plantillas del lado del servidor tienen una opción para publicar páginas de salida en el servidor, donde las páginas publicadas son estáticas . Esto es común en los sistemas de gestión de contenidos , como Vignette , pero no se considera generación fuera del servidor. En la mayoría de los casos, esta "opción de publicación" no interfiere con el sistema de plantillas y puede realizarse mediante software externo, como Wget .
Se empezó a utilizar páginas dinámicas del lado del servidor generadas a partir de plantillas con software preexistente adaptado para esta tarea. Este primer software fueron los preprocesadores y lenguajes de macros , adaptados para el uso web, ejecutándose en CGI . A continuación, una tecnología simple pero relevante fue la ejecución directa realizada sobre módulos de extensión, iniciada con SSI .
Muchos sistemas de plantillas se utilizan normalmente como sistemas de plantillas del lado del servidor :
Técnicamente, la metodología de incrustar lenguajes de programación dentro de HTML (o XML, etc.), utilizada en muchos "lenguajes de script incluidos en el lado del servidor", también son plantillas. Todos ellos son lenguajes complejos integrados .
También hay preprocesadores que se utilizan como motores de plantillas del lado del servidor . Ejemplos:
Plantilla Edge-Side y sistemas de inclusión. "Edge-side" se refiere a servidores web que residen en el espacio entre el cliente (navegador) y el servidor de origen. A menudo se les denomina servidores "proxy inverso". Estos servidores generalmente tienen la tarea de reducir la carga y el tráfico en los servidores de origen almacenando en caché contenido como imágenes y fragmentos de páginas, y entregándolos al navegador de manera eficiente.
Basic Edge Side Incluye (ESI) es un lenguaje similar a SSI. ESI se ha implementado para redes de entrega de contenido. El lenguaje de plantilla ESI también se puede implementar en navegadores web utilizando JavaScript y Ajax, o mediante un "complemento" de navegador.
Muchos navegadores web pueden aplicar una hoja de estilo XSLT a datos XML que transforma los datos en un documento XHTML, proporcionando así funcionalidad de plantilla en el propio navegador.
Otros sistemas implementan la funcionalidad de plantilla en el navegador mediante JavaScript u otro lenguaje de secuencias de comandos del lado del cliente , incluidos:
La forma más simple son las transclusiones (marcos HTML). En otros casos se necesitan páginas web dinámicas .
Ejemplos:
{{cite book}}
: CS1 maint: location (link)9. Temas gratuitos para sitios web de comercio electrónico Blogs de MG Technologies y portal de información de temas de sitios web.