Webvorlagensystem
A Webvorlagensystem in Web Publishing Lasst uns Webdesigner und Entwickler mit arbeiten Webvorlagen automatisch benutzerdefiniert generieren Webseiten, wie die Ergebnisse einer Suche. Dadurch werden statische Webseitenelemente wiederverwendet, während dynamische Elemente basierend auf definiert werden Webanfrage Parameter. Webvorlagen unterstützen statische Inhalte und bieten grundlegende Struktur und Aussehen. Entwickler können Vorlagen aus implementieren Content -Management -Systeme, Webanwendungs -Frameworks, und HTML -Redakteure.
Überblick
A Webvorlagensystem besteht aus folgenden:
- A Template Engine: die primäre Verarbeitungselement vom System;[1]
- Inhaltsressource: Eine der verschiedenen Arten von Eingaben Datenströme, wie aus a relationale Datenbank, Xml Dateien, LDAP Verzeichnis und andere Arten von lokaler oder vernetzt Daten;
- Vorlageressource: Webvorlages nach a angegeben Vorlagesprache;
Die Vorlagen- und Inhaltsressourcen werden von der Vorlage-Engine verarbeitet und kombiniert, um Webdokumente zu produzieren. Für die Zwecke dieses Artikels enthalten Webdokumente verschiedene Ausgabeformate für die Übertragung über das Web über Http, Https, oder ein anderes Internetprotokoll.
Beispiel
Mit dem Modell typischerweise in einer relationalen Datenbank, die verbleibenden Komponenten der MVC Architektur sind die Kontrolle und Sichtweise. In den einfachsten Systemen sind diese beiden nicht getrennt. Jedoch anpassen Trennung von Bedenken Prinzip, man kann die Beziehungen vollständig entkoppeln.
Beispielsweise kann die Ansichtsvorlage so aussehen:
<html xmlns="http://www.w3.org/1999/xhtml"> <Kopf> <Titel>StandorteTitel> </Kopf> <Karosserie> <H1 Data-XP="Titel">H1> </Karosserie> html>
Dann lädt die Steuervorlage die Ansicht und verwendet dann dann XPath Adressierung[Originalforschung?] Zum Beispiel: zum Beispiel Komponenten aus einer Datenbank einfügen:
$ doc = Neu Domdokument; $ doc->WHITEPACE = FALSCH; $ doc->Belastung('View.html'); $ Titlenode = $ doc->CreateTextNode("So was"); $ xpath = Neu DomxPath($ doc); $ xpath->RegisterNameSpace("h", "http://www.w3.org/1999/xhtml"); $ query = "// H:*[@data-xp = 'title']/comment ()"; $ Einträge = $ xpath->Anfrage($ query); für jeden ($ Einträge wie $ Eintrag) { $ Eintrag->Elternknoten->Ersetzen($ Titlenode, $ Eintrag); } Echo $ doc->Savexml(); ?>
Arten von Vorlagensystemen
Ein Webbrowser und ein Webserver sind a Kundenserver die Architektur. Websites verwenden oft auch a Webcache Leistung zu verbessern. Fünf Templating -Systemtypen werden basierend darauf klassifiziert, wenn sie Platzhalter durch echte Inhalte ersetzen und Seiten zusammenstellen.
- Server-Seite-Laufzeitsubstitution findet auf dem Webserver statt
- Client-Side-Laufzeitsubstitution findet im Webbrowser statt
- Edge-Side-Laufzeitsubstitution findet auf einem Proxy zwischen Webserver und Browser statt
- Outside Server - Statische Webseiten werden offline erstellt und auf den Webserver hochgeladen. Keine Laufzeitsubstitution
- Verteilt - Laufzeitsubstitution findet auf mehreren Servern statt
Vorlagensprachen können sein:
- Eingebettet oder ereignisorientiert.
- Einfach, iterbar, programmierbar oder komplex.
- Definiert durch ein Konsortium, privat definiert oder de facto definiert durch eine offene Implementierung. Eigentum beeinflusst die Stabilität und Glaubwürdigkeit einer Spezifikation. In den meisten Gerichtsbarkeiten kann die Sprachspezifikation jedoch nicht urheberrechtlich geschützt werden, sodass die Kontrolle selten absolut ist.
Der Quellcode des Template Engine kann proprietär sein oder Open Source.
Viele Vorlagensysteme sind eine Komponente einer größeren Programmierungsplattform oder einer größeren Programmierungsplattform. Sie werden als "Template -System der Plattform" bezeichnet. Einige Vorlagensysteme haben die Möglichkeit, eine andere Vorlagensprache oder -motor zu ersetzen.
Programmiersprachen wie zum Beispiel Perl, Rubin, C, und Java Unterstützen Sie die Vorlagenverarbeitung entweder nativ oder über Add-On-Bibliotheken und Module. Javaserverseiten (Jsp), Php, und Aktive Server-Seiten (ASP mit Vbscript, Jscript oder andere Sprachen) sind Beispiele selbst von Webvorlagenmotoren. Diese Technologien werden in der Regel in serverseitigen Templatierungssystemen verwendet, könnten jedoch für einen "Edge-Side" -Proxy oder für die statische Seitengenerierung angepasst werden.
Statische Site -Generatoren
HTML -Redakteure Verwenden Sie häufig Webvorlagensysteme, um nur zu produzieren Statische Webseiten. Diese können als vorgefertigte angesehen werden Web-Design, verwendet, um "Cookie-Cutter" -Massenproduktion zu produzieren. Websites Für schnelle Bereitstellung. Sie enthalten üblicherweise auch Themen anstelle von CSS Stile. Im Allgemeinen wird die Vorlagensprache nur mit der Software des Editors verwendet.[2]
Titelseite und Dreamweaver waren einst die beliebtesten Redakteure mit Vorlagen-Subsystemen. Eine Flash -Webvorlage verwendet Makromedia Blitz So erstellen Sie visuell interaktive Websites.
Systemetikett/Name | Plattform/Editor | Anmerkungen |
---|---|---|
Dreamweaver | Makromedia | HTML Authoring. Eingebettete iterbare Sprache. |
Beitragen | Makromedia | Kundenautorierung. |
Blinken | Makromedia | Flash Authoring. |
Titelseite | Microsoft | HTML Authoring. Eingebettete iterbare Sprache. |
NVU | Linux/NVU | HTML Authoring. |
Pelikan[3] | Ein Open-Source-Community | Unterstützung Markdown oder Umstrukturiertertext. Geschrieben in Python (Programmiersprache). |
Website -Meta -Sprache | Unix-artig |
Viele Serverseitige Vorlagensysteme Sie haben die Möglichkeit, Ausgabeseiten auf dem Server zu veröffentlichen, auf dem sich die veröffentlichten Seiten befinden statisch. Dies ist häufig auf Content -Management -Systeme, wie Vignette, wird aber nicht als Out-Server-Generation angesehen. In den meisten Fällen beeinträchtigt diese "Veröffentlichungsoption" nicht die Vorlagensystemund es kann von externer Software gemacht werden Wget.
Serverseitige Systeme
Die Leute begannen zu benutzen Serverseitige dynamische Seiten generiert aus Vorlagen mit bereits existierender Software, die für diese Aufgabe angepasst sind. Diese frühe Software war die Präprozessoren und Makrosprachen, angepasst für die Webnutzung, ausgeführt CGI. Als nächstes war eine einfache, aber relevante Technologie die direkte Ausführung auf Erweiterungsmodule, die mit gestartet wurde SSI.
Viele Vorlagensysteme werden normalerweise als verwendet als Serverseitige Vorlagensysteme:
Systemetikett/Name | Plattform/Framework | Anmerkungen |
---|---|---|
Klinge | Php | Öffentlichkeit. Teil von Laravel |
Cheetahtemplate | Python | Öffentlichkeit. Eingebettete komplexe Sprache. |
Django | Python | Verwenden Sie die "Django -Vorlagesprache". |
Freimaurer | Java | Öffentlichkeit. |
Facelets | Jakarta ee | Öffentlichkeit. Teil von Jakarta Server Faces |
Genshi | Python | Öffentlichkeit |
Haml | Rubin oder andere | Öffentlichkeit. |
Weiler | Java | Öffentlichkeit. |
Jinja2 | Python | Öffentlichkeit. Eingebettete komplexe Sprache. |
Kind | Python | |
Lasso | Lassosoft, LLC | Proprietär. Interpretiert Programmiersprache und Server |
Schnurrbart | Aktionen, C ++, Clojure, CoffeeScript, Coldfusion, D, Erlang, Fantom, gehen, Java, Serverseitig JavaScript, Lua, .NETZ, Ziel c, ooc,[4] Perl, Php, Python, Rubin, Scala, Tcl | Öffentlichkeit. |
Basic Die Serverseite enthält (SSI) | Das grundlegende Richtlinien Fix einen "Standard". | Eingebettete einfache Sprache, falls ausgeschlossen Geschäftsführer Richtlinie. |
Smarty | Php | Öffentlichkeit. Eingebettete komplexe Sprache. |
Template Toolkit | Perl | Öffentlichkeit. Eingebettete komplexe Sprache. |
Vorlagenattributsprache (Tal) | Zope, Python, Java, Perl, Php, Xslt | Öffentlichkeit; a.k.a. Zope -Seitenvorlagen (ZPT); siehe auch Tal Expression Syntax (ERZÄHLUNGEN), Makroerweiterung Tal (METALL) |
Fliesen | Java | Öffentlichkeit. Unterstützt mehrere Vorlagensprachen (JSP, Geschwindigkeit, Freimaurer, Schnurrbart) aus verschiedenen Frameworks (Servlet, Portlets, Streben, Frühling). |
Thymeleaf | Java | Öffentlichkeit. |
Top -Site | Python | Öffentlichkeit. "Ab 2008-02-20 steht dieses Projekt nicht mehr unter aktiver Entwicklung."[5] |
Zweig | Php | |
Phplib | Phplib | Öffentlichkeit. Eingebettete iterbare Sprache. |
Webmacro | Java | Öffentlichkeit. Eingebettete iterbare Sprache. |
WebObjects | Java | Verwenden Sie das WebObjects Builder als Motor. |
Geschwindigkeit | Java | Öffentlichkeit. Verwenden Sie VTL - Geschwindigkeitsvorlagesprache. |
Vignette | Proprietär. | Kommerzielle Lösung. Eingebettete komplexe Sprache. |
Xslt (Standardsprache) | Jeder mit einem XSLT -Parser | Standard. Ereignisgesteuerte programmierbare Sprache. |
XQuery (Standardsprache) | Jeder mit einem XQuery -Parser | Standard. Eingebettete programmierbare Sprache. |
Technisch gesehen sind auch die Methode zur Einbettung von Programmiersprachen in HTML (oder XML usw.), die in vielen "serverseitigen Skriptsprachen" verwendet werden. Sie sind alle Eingebettete komplexe Sprachen.
Systemetikett/Name | Anmerkungen |
---|---|
Aktive Server-Seiten (ASP) | Proprietär (Microsoft -Plattform). Siehe auch: Vbscript, JavaScript, Perlscriptusw. Erweiterungen für ASP. |
Ehr | Öffentlichkeit (Rubin). |
Coldfusion Markup Sprache (CFM) | Öffentlichkeit (Lucee, Railo, OpenBD). Proprietär (Adobe Coldfusion). |
Jakarta Serverseiten (JSP) | Öffentlichkeit, Jakarta ee. |
Aktive Perl | Öffentlichkeit. |
Php | Öffentlichkeit. |
Openacs | Öffentlichkeit (Tcl). |
Es gibt auch Präprozessoren benutzt als Serverseitige Vorlagenmotoren. Beispiele:
Präprozessor | Anmerkungen |
---|---|
C Präprozessor | Öffentlichkeit. Eingebettete iterbare Sprache. |
M4 | Öffentlichkeit. Eingebettete komplexe Sprache. |
Kantensysteme
Kantenvorlage und Einschlusssysteme. "Edge-Side" bezieht sich auf Webserver, die sich im Speicherplatz zwischen dem Client (Browser) und dem Ursprungsserver befinden. Sie werden oft als "Reverse-Proxy" -Server bezeichnet. Diese Server sind im Allgemeinen beauftragt, die Last und den Datenverkehr auf Ursprungsservern zu reduzieren, indem Inhalte wie Bilder und Seitenfragmente zwischengespeichert und diese effizient an den Browser geliefert werden.
Basic Kantenseite beinhaltet (ESI) ist eine SSI-ähnliche Sprache. Die ESI wurde für Inhaltsbereitstellungen implementiert. Die ESI-Vorlagensprache kann auch in Webbrowsern mit JavaScript und AJAX oder über einen Browser "Plug-In" implementiert werden.
Kundenseitige Systeme
Viele Webbrowser können eine anwenden Xslt Stylesheet an XML -Daten, die die Daten in ein XHTML -Dokument umwandeln und so die Funktionalität der Vorlagen im Browser selbst bereitstellen.
Andere Systeme implementieren Vorlagenfunktionen im Browser mithilfe JavaScript oder ein anderes Client-Seite Scripting Sprache, einschließlich:
Verteilte Systeme
Die einfachste Form ist Transklusionen (HTML -Rahmen). In anderen Fällen Dynamische Webseiten wird gebraucht.
Beispiele:
Siehe auch
Konzepte: | Standards: | Software: |
Verweise
- ^ "Template Engine". phpwact.org Wiki. Archiviert von das Original am 4. Dezember 2012. Abgerufen 7. Januar 2013.
- ^ MacDonald, Matthew (2015). Erstellen einer Website: Das fehlende Handbuch. KAPITEL 8> Den gleichen Inhalt auf mehreren Seiten> Webvorlagen> Notiz -Feld: O'Reilly Media, Inc. ISBN 9781491936177. Abgerufen 19. Januar 2016.
{{}}
: CS1 Wartung: Standort (Link) - ^ Pelican Development Blog
- ^ "{{Schnurrbart}}". Abgerufen 15. Oktober 2013.
- ^ Jodyburns. "Top -Site -Vorlagensystem". Abgerufen 15. Oktober 2013.
9. Kostenlose E -Commerce -Website -Themen MG Technologies Blogs und Informationsportal der Website -Themen.
Externe Links
- JavaScript -Vorlagenbibliotheken Vergleich von 2009
- Durchsetzung strikter Modell -View -Trennung in Vorlagenmotoren
- Ein Doppelmodellansatz zur Erreichung einer effektiven Modell-View-Trennung in vorlagenbasierten Webanwendungen
- Ein PHP -Template -Engine -Vergleich mit Grafikdiagrammen
- Vergleiche/Benchmarks einiger Python-Vorlagenmines und einiger generischer Gedanken zu Vorlagenmotten
- Web-Mode.el ist ein EMACS-Hauptfach für die Bearbeitung von Webvorlagen