Sistema de plantillas web

Ir a: navegación, búsqueda de
El proceso básico para un servidor sistema de plantillas web: contenido (de un base de datos) y "Especificaciones de presentación" (en un plantilla Web), se combinan (a través de la motor de la plantilla) para producir en masa los documentos web.

A sistema de plantillas web utiliza un procesador de la plantilla para combinar plantillas web a forma acabada páginas web, posiblemente con alguna fuente de datos para personalizar las páginas o presente una gran cantidad de contenido en páginas similares. Es un publicación en la web herramienta presente en sistemas de gestión de contenidos, frameworks de aplicación Web, y Editores HTML.

Plantillas web pueden ser utilizadas como plantilla de un formulario de carta ya sea generar un gran número de "estática" páginas web (invariable) de antemano, o para producir páginas web "dinámicas" en la demanda.

Contenido

  • 1 Resumen
  • 2 Motivaciones y usos típicos
    • 2.1 Aplicaciones
    • 2.2 Producción en masa
    • 2.3 Normalización de estilo
    • 2.4 Separación de preocupaciones
    • 2.5 Presentación flexible
    • 2.6 Reutilización
  • 3 Ejemplo
  • 4 Clases de sistemas de plantilla
    • 4.1 Generadores de página estática
    • 4.2 Sistemas de servidor
    • 4.3 Sistemas de borde lateral
    • 4.4 Sistemas de lado del cliente
    • 4.5 Sistemas distribuidos
  • 5 Véase también
  • 6 Referencias
  • 7 Acoplamientos externos

Resumen

A sistema de plantillas web se compone de los siguientes:

  • A motor de la plantilla: el elemento de procesamiento primario del sistema;[1]
  • Contenido recursos:: cualquiera de varios tipos de entrada flujos de datos, tales como de una base de datos relacional, XML archivos, LDAP directorio y otros tipos de locales o en red datos;
  • Recurso de plantilla de: plantilla Webs especificado según una idioma de la plantilla;

Los recursos de la plantilla y el contenido son procesados y combinados por el motor de la plantilla para producir en masa los documentos web. Para efectos de este artículo, documentos web incluyen cualquiera de varios formatos de salida para la transmisión por Internet a través de HTTP, o el otro protocolo de Internet.

Motivaciones y usos típicos

Aplicaciones

Plantillas web pueden utilizarse por cualquier individuo u organización para configurar su sitio Web. Una vez que una plantilla es comprada o descargada, el usuario reemplazará toda información genérica incluida en la plantilla web con su propio personal, organizacional u obtener información. Ejemplos de los usos más comunes de plantillas son los siguientes:

  • Mostrar información personal o las actividades diarias como en un blog.
  • Vender productos en línea.
  • Mostrar información sobre una empresa u organización.
  • Mostrar la historia familiar.
  • Mostrar una galería de fotos.
  • Música de lugar archivos como archivos MP3 en línea para jugar a través de un navegador web.
  • Colocar videos en línea para la visión pública.
  • Para configurar una zona de acceso privado on-line.

Producción en masa

Diversos organismos y organizaciones utilizan sistemas de plantilla web para producción en masa de contenido cuando alternativas de producción más lentas resultar inviables.[citación necesitada]

Para un resumen introductorio, tomar un sitio web de noticias como un ejemplo. Considerar un "sitio Web estático", donde están todas las páginas web estática, construido por un Diseñador Web. Sería muy repetitivo trabajo cambiar tan a menudo como los cambios de noticias páginas individuales. Una típica estrategia para automatizar el de diseñador web "trabajo repetitivo" mediante plantillas podría ser como sigue:

  1. elegir un sistema de plantillas web para mantener la sitio web;
  2. Grupo Noticias con presentación diferentes necesidades;
  3. especificar las normas de"presentación" a través de plantillas web, para cada grupo de noticias;
  4. especificar un contenido recursos generar o actualizar el contenido de cada uno noticia.

Normalización de estilo

Separación de preocupaciones

Artículo principal: Separación de preocupaciones

Un objetivo común entre los desarrolladores web expertos es desarrollar e implementar aplicaciones que son flexibles y fácilmente mantenibles. Una consideración importante en alcanzar esta meta es la separación de lógica de negocio De lógica de presentación.[2] Los desarrolladores utilizar sistemas de plantillas web (con diversos grados de éxito) para mantener esta separación.[2]

Para la Diseñador Web, cuando cada página web proviene de una plantilla Web, pueden pensar en una página web modular estructurado con componentes que pueden ser modificados independientemente uno del otro. Estos componentes pueden incluir un encabezado, pie de página, barra de navegación global (GNB), barra de navegación local y contenido como artículos, imágenes, videos etc..

Para programadores de el idioma de la plantilla ofrece una lógica más restringida, sólo para Presentación adaptaciones y decisiones, no para complejo (business modelo) algoritmos de.[citación necesitada]

Para otros miembros del "equipo de sitio", una sistema de plantillas libera a webmasters para centrarse en el mantenimiento técnico, proveedores de contenido para centrarse en el contenido y da a todos ellos más fiabilidad.

Por otra parte, tiene las siguientes ventajas para su uso:

  • Facilidad de diseño cambio: presentación en plantillas son "contenido invariante", lo que significa un diseñador web puede actualizar la presentación sin más preocupaciones infraestructurales. Ejemplo de este tipo de sitios web[3]
  • Facilidad de localización de la interfaz: menús y otras normas de presentación son fáciles de hacer uniformes para los usuarios navegando en el sitio. Utilizando Ruta de exploración (navegación) convierte cualquier página web usuario más amigable y flexible. [4]
  • Posibilidad de trabajar por separado diseño y código por personas diferentes al mismo tiempo. Se puede realizar mientras que son de todos los códigos en las plantillas de un diseño limpio y cada bloque o sección de los sitios web es escribir con el sistema de comentario individual.[citación necesitada]
  • Diseño web responsivo es ahora un factores obligatorios para cualquier sitio Web. Todo se debe realizar sin ningún cambio en el diseño. Bootstrap basado web quitar el dolor de cabeza de diseño web responsivo.[5]
  • Facilidad de documentación una documentación útil ahorra más tiempo para entender la plantilla entera y también acelerar el proceso de modificación. Diseñador web profesional altamente énfasis en documentación.

Una dificultad en la evaluación de separación de las preocupaciones es la falta de formalidades definidas para medir Cuándo y cómo realmente se cumple.[2] Hay, sin embargo, heurística estándar que ha sido prestada desde el dominio de Ingeniería de software. Se trata de 'herencia' (basado en los principios de programación orientada a objetos); y 'plantillas y Programación Generativa', (coherente con los principios de Separación de MVC).[6] La diferencia precisa entre las diversas directrices está sujeto a cierto debate, y algunos aspectos de las diferentes orientaciones comparten un grado de similitud.[7]

Presentación flexible

Un importante fundamento de "separación efectiva" es la necesidad de una flexibilidad máxima en el código y recursos dedicados a la lógica de presentación.[6] Las demandas del cliente, cambiando las preferencias del cliente y el deseo de presentar una "cara fresca" de contenido preexistente a menudo resultan en la necesidad de modificar drásticamente la aparición pública de contenido web mientras interrumpir la infraestructura subyacente lo menos posible.

La distinción entre "presentación" (frontales) y "lógica de negocio"(infraestructura) es generalmente muy importante, porque:

  • el lenguaje de código de fuente de presentación puede diferir de otros activos de código
  • el proceso de producción para la aplicación puede requerir el trabajo a realizar en distintos horarios y lugares
  • los trabajadores diferentes tienen diferentes habilidades y técnicas de presentación no siempre coinciden con las habilidades para la codificación lógica de negocio
  • Código activo son fácil de mantener y más legibles cuando distintos componentes se mantienen separados y combinados libremente[6]

Reutilización

No todos los usuarios potenciales de plantillas web tienen la voluntad y capacidad para contratar a desarrolladores para diseñar un sistema para sus necesidades. Además, algunos tal vez desee utilizar la web pero tienen limitada o ninguna competencia técnica. Por estas razones, un número de vendedores y desarrolladores ha lanzado plantillas web específicamente para su reutilización por personas sin conocimientos técnicos. Aunque también es importante para los desarrolladores incluso altamente cualificados y experimentados técnicamente reutilización de plantillas web, es especialmente crítica a los que se basan en la simplicidad y soluciones web "Ready-made".

Estas plantillas web "Ready-made" son a veces libre y fácilmente hecha por un individuo internamente. Sin embargo, plantillas web especializados a veces se venden en línea. Aunque hay numerosos sitios comerciales que ofrecen plantillas web para un honorario de licencia, también hay fuentes de libres y "open-source".

Ejemplo

Con el modelo típicamente celebrada en una base de datos relacional, los restantes componentes de la MVC arquitectura son el control y la vista. En el más simple de los sistemas de estos dos no se separan. Sin embargo, adaptando el separación de preocupaciones principio uno puede separar totalmente la relación.

Por ejemplo, la plantilla de vista puede parecer esto:

<! Html DOCTYPE >
   <HTML xmlns="https://www.w3.org/1999/xhtml">
   <cabeza><Título>Sitios< /Título>< /cabeza>
   <cuerpo><h1 datos xp="título"><!----> marcador de posición< /h1>< /cuerpo>
< /HTML>

La plantilla de control carga la vista y entonces puede utilizar XPath hacer frente a[¿investigación original?] para insertar componentes de una base de datos, por ejemplo:

 <? php
$doc = Nuevo DOMDocument;
$doc->preserveWhiteSpace = falso;
$doc->Carga('view.html');
$titlenode = $doc->createTextNode("como esta");
$xpath = Nuevo DOMXPath($doc);
$xpath->registerNamespace(«h»,"https://www.w3.org/1999/xhtml"); 
$query="/ / h:*[@data-xp='title']/comment()";
$entries = $xpath->consulta($query);
foreach ($entries as $entry) { $entry->parentNode->replaceChild($titlenode, $entry); }
Eco $doc->saveXML();
? >

Clases de sistemas de plantilla

Un navegador web y un servidor web están un cliente – servidor arquitectura; a menudo un caché Web también se utiliza para mejorar el rendimiento. En general, hay cinco tipos de sistemas de plantillas, clasificados en base cuando pasa de la Asamblea - los marcadores de posición se sustituyen por las plantillas y variable información (como nombres, direcciones e información del producto):

  • Servidor - sustitución del tiempo de ejecución ocurre en el servidor web
  • Lado del cliente - sustitución del tiempo de ejecución ocurre en el navegador web
  • El lado del borde - sustitución del tiempo de ejecución ocurre en un proxy entre el servidor web y navegador
  • Fuera de servidor - páginas web estáticas se producen fuera de línea y subido al servidor web; no hay sustitución de tiempo de ejecución
  • Distribuido - sustitución del tiempo de ejecución ocurre en varios servidores

Idiomas de plantilla pueden ser:

  • Integrado o por eventos.
  • Simple, iterable, programable o complejo.
  • Definido por un consorcio privado definido, o de hecho definido por una aplicación abierta. Propiedad influye en la estabilidad y la credibilidad de una especificación. Sin embargo, en la mayoría de las jurisdicciones, especificación de lenguaje no puede estar protegidos por copyright, así que control rara vez es absoluto.

El código fuente de la motor de la plantilla puede ser propietario o código abierto.

Muchos sistemas de plantilla son un componente de una mayor plataforma de programación o framework. Ellos se conocen como el "sistema de plantillas de la plataforma". Algunos sistemas de plantilla tienen la opción de sustituir una plantilla diferente idioma o motor.[citación necesitada]

Lenguajes de programación tales como Perl, Ruby, C, y Java plantilla de procesamiento ya sea nativamente, o a través de módulos y bibliotecas adicionales de apoyo. Páginas de JavaServer (JSP), PHP, y Páginas de servidor activo (ASP con VBScript, JScript u otros idiomas) son ejemplos, de web motores de plantilla. Estas tecnologías se utilizan típicamente en sistemas de servidor plantillas, pero podrían ser adaptadas para su uso en un proxy de "lado del borde" o para la generación de la página estática.

Generadores de página estática

Arquitectura de sistema de la plantilla de servidor exterior.

Editores HTML suelen ser sistemas de plantilla para producir solamente páginas web estáticas. Estos pueden verse como un ready-made diseño web, utilizado para producir en masa "cookie-cutter" sitios web para una implementación rápida. También se incluyen temas en lugar de CSS estilos. En general, el idioma de plantilla debe ser utilizado solamente con software del editor.[8]

FrontPage y Dreamweaver son los más populares editores con subsistema de plantilla. Utiliza una plantilla web Flash Macromedia Flash para crear sitios interactivos visualmente.

Etiqueta o nombre de sistema Editor de plataforma Notas
Dreamweaver Macromedia Edición de HTML. Incorporado el lenguaje iterable.
Flash Macromedia De autoría de Flash.
FrontPage Microsoft Edición de HTML. Incorporado el lenguaje iterable.
Nvu Linux/ Nvu Edición de HTML.
Sitio web Meta lenguaje Unix-como

Muchos sistemas de plantilla de servidor tiene la opción de publicar las páginas de salida en el servidor, donde será las páginas publicadas estática. Es una característica común en sistemas de gestión de contenidos, como Vignette. Pero esto no tiene que considerarse una generación fuera del servidor.

En la mayoría de los casos, este "publica opción" no interfiere con la sistema de plantillas, y se puede hacer por software externo, como Wget.

Sistemas de servidor

Sistema de plantilla de servidor

Páginas dinámicas de servidor comenzó a generar plantillas con software pre-existente adaptada para esta tarea. Este software temprano fue el preprocesadores y Idiomas de la macro, adaptado para el uso de la web, en CGI. A continuación, una tecnología simple pero relevante fue la ejecución directa en los módulos de extensión, con SSI.

Muchos sistemas de plantilla se suelen utilizar como sistemas de plantilla de servidor:

Etiqueta o nombre de sistema Marco de la plataforma Notas
CheetahTemplate Python Público. Lenguaje complejo integrado.
Django Python Utilizar el "lenguaje de plantilla Django".
FreeMarker Java Público.
Facelets Java EE Público. Parte de la Caras de JavaServer
Genshi Python Público
Haml Ruby o de otro Público.
Caseríos Java Público.
Jinja2 Python Público. Lenguaje complejo integrado.
Niño Python
Lasso LassoSoft, LLC Propietario. Interpretado Lenguaje de programación y Servidor
Bigote ActionScript, C++, Clojure, CoffeeScript, ColdFusion, D, Erlang, Fantom, Go, Java, server-side JavaScript, Lua, .NET, Objective-C, OOC,[9] Perl, PHP, Python, Ruby, Scala, TCL Público.
Básico Server Side Includes (SSI) El directivas básicas fijar una "norma". Embebido en un lenguaje sencillo, si excluye exec Directiva.
Smarty PHP Público. Lenguaje complejo integrado.
Kit de herramientas de plantilla Perl Público. Lenguaje complejo integrado.
Plantilla atributo idioma (TAL) Zope, Python, Java, Perl, PHP, XSLT Público; también conocido como Zope Page Templates (ZPT); véase también Sintaxis de la expresión de TAL (CUENTOS), Expansión de la macro TAL (METAL)
Azulejos Java Público. Soporta múltiples idiomas de plantilla (JSP, Velocity, Freemarker, bigote) desde diversos marcos (Servlets, portlets, struts, spring).
Thymeleaf Java Público.
TopSitio Python Público. "A partir de 2008-02-20, este proyecto ya no es bajo desarrollo activo."[10]
PHPlib PHPlib Público. Incorporado lenguaje iterable.
WebMacro Java Público. Incorporado lenguaje iterable.
WebObjects Java Uso el Constructor de WebObjects como motor.
Velocidad (Apache Jakarta) Java Público. Uso VTL- Lenguaje de plantillas de Velocity.
Vignette Propietario. Solución comercial. Lenguaje complejo integrado.
VlibTemplate PHP Público.
XSLT (lengua estándar) Cualquiera con un parser XSLT Estándar. Lenguaje programable por eventos.
XQuery (lengua estándar) Cualquiera con un procesador de XQuery Estándar. Incorporado lenguaje programable.

Técnicamente, la metodología de integración de lenguajes de programación en HTML (o XML, etc.), utilizado en muchos "server-side script incluido idiomas" son también las plantillas. Todos ellos son Idiomas complejos integrados.

Etiqueta o nombre de sistema Notas
Páginas de servidor activo (ASP) () PropiedadPlataforma Microsoft). Vea también: VBScript, Javascript, PerlScript, extensiones etc. para ASP.
eRuby Pública)Ruby).
ColdFusion Markup Language (CFM) Pública)Lucee, Railo, OpenBD). () PropiedadAdobe ColdFusion).
Páginas de JavaServer (JSP) Público, Plataforma Java.
Active Perl Público.
PHP Público.
OpenACS Pública)TCL).

También hay preprocesadores utilizado como motores de plantilla de servidor. Ejemplos:

Preprocesador Notas
Preprocesador de C Público. Incorporado lenguaje iterable.[11]
M4 Público. Lenguaje complejo integrado.

Sistemas de borde lateral

Lado del borde plantilla e inclusión sistemas. "Lado del borde" se refiere a servidores web que residen en el espacio entre el cliente (navegador) y el servidor de origen. Ellos se refieren a menudo como servidores "reverse-proxy". Generalmente tienen la tarea de estos servidores con la reducción de la carga y el tráfico en servidores de origen de almacenamiento en caché de contenido, como imágenes y fragmentos de la página y esta entrega al navegador de una manera eficiente.

Básico Inclusiones del lado del borde (ESI) es un lenguaje de SSI. ESI ha sido implementado para las redes de distribución de contenido. El idioma de la plantilla ESI puede aplicarse también en los navegadores web con JavaScript y Ajax, o a través de un "complemento" del navegador.

Sistemas de lado del cliente

Lado del cliente y distribuidos sistema de plantillas (descentralizado).

Muchos navegadores web pueden aplicar una XSLT hoja de estilos a datos XML que transforma los datos en un documento XHTML, proporcionando funcionalidad de plantilla en el propio navegador.
Otros sistemas de implementan la funcionalidad de la plantilla en el explorador JavaScript u otra scripting de lado del cliente lenguaje, incluyendo:

  • Bigote

Sistemas distribuidos

La forma más simple es transcluídas (Frames HTML). En otros casos páginas web dinámicas se necesitan.

Ejemplos:

  • Ajax
  • Rich Internet application

Véase también

  • Comparación de los motores de plantilla web
  • Procesador de la plantilla
  • Código de texto estándar
  • Bytecode
  • CodeCharge Studio
  • Jekyll (software)
  • Motor de diseño
  • Macro (informática) -sección macros de substitución de texto
  • Preprocesador
  • Plantilla (formato)
  • UIML (Lenguaje de marcado de interfaz de usuario)
  • XSLT
  • Máquina virtual

Referencias

  1. ^ "Motor". wiki de phpwact.org. Archivado de el original en 04 de diciembre de 2012. 7 de enero 2013. 
  2. ^ a b c Parr, Terence John (2004). Hacer cumplir la separación terminante de la vista del modelo en los motores de plantilla. Actas de la 13 Conferencia Internacional sobre la World Wide Web. ISBN 1-58113-844-X. 
  3. ^ Plantilla: Envato
  4. ^ [1]
  5. ^ [2]
  6. ^ a b c Paragon Corporation (2003-07-19). "Separación de lógica de negocio lógica de presentación en aplicaciones Web". 
  7. ^ MVC vs programación orientada a Objetos
  8. ^ MacDonald, Matthew (2015). Crear un sitio web: el Manual que falta. Capítulo 8 > poner el mismo contenido en varias páginas > Plantillas Web > caja Nota: o ' Reilly Media, Inc. ISBN 9781491936177. 19 de enero 2016. 
  9. ^ "{{bigote}}". 15 de octubre 2013. 
  10. ^ jodyburns. "TopSitio sistema de plantillas". 15 de octubre 2013. 
  11. ^ Sitio web, plantillas (2013). Plantillas de sitio web wordpress. 

Acoplamientos externos

  • JavaScript bibliotecas de plantilla comparación de 2009
  • Hacer cumplir la separación terminante de la vista del modelo en los motores de plantilla
  • Un enfoque de doble-modelo para lograr la separación efectiva de la vista del modelo de plantilla basado en aplicaciones Web
  • Una comparación de motor de plantilla PHP con tablas gráficas
  • Comparaciones/puntos de referencia de algunos motores de plantilla de Python y algunas ideas genéricas sobre motores de plantilla
  • Web-mode.el es un emacs para editar plantillas web

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Web_template_system&oldid=753438749"