<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template-Engine</id>
	<title>Template-Engine - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template-Engine"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template-Engine&amp;action=history"/>
	<updated>2026-05-22T21:50:59Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Template-Engine&amp;diff=481850&amp;oldid=prev</id>
		<title>imported&gt;TaxonBot: Bot: Auflösung doppelter toter Links nach https://de.wikipedia.org/w/index.php?title=Wikipedia:Bots/Anfragen&amp;oldid=266185123#Aufl%C3%B6sung_der_doppelten_Toten_Links</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template-Engine&amp;diff=481850&amp;oldid=prev"/>
		<updated>2026-04-17T14:21:07Z</updated>

		<summary type="html">&lt;p&gt;Bot: Auflösung doppelter toter Links nach https://de.wikipedia.org/w/index.php?title=Wikipedia:Bots/Anfragen&amp;amp;oldid=266185123#Aufl%C3%B6sung_der_doppelten_Toten_Links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{QS-Informatik|Knacknüsse=Ja}}&lt;br /&gt;
Eine &amp;#039;&amp;#039;&amp;#039;Template-Engine&amp;#039;&amp;#039;&amp;#039; (von {{enS}} für &amp;#039;&amp;#039;Vorlage&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;Schablone&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Maschine&amp;#039;&amp;#039;) ist eine [[Software]], die eine Vorlagen-Datei (englisch &amp;#039;&amp;#039;[[Vorlage (Datenverarbeitung)|Template]]&amp;#039;&amp;#039;) verarbeitet und bestimmte Platzhalter darin ähnlich wie bei einem Formular durch jeweils aktuelle Inhalte ersetzt. Die Bezeichnungen &amp;#039;&amp;#039;&amp;#039;Template-Klasse&amp;#039;&amp;#039;&amp;#039; (deutsch umgangssprachlich „Vorlagenklasse“, aber sachlich korrekt: „Klassenvorlage“) und &amp;#039;&amp;#039;&amp;#039;Template-System&amp;#039;&amp;#039;&amp;#039; werden oft als [[Synonymie|Synonym]] für eine Template-Engine verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;[[Template (Programmierung)#Klassen-Templates|Klassen-Templates]]&amp;#039;&amp;#039; in der [[C++]]-Programmierung sind dagegen nicht mit Template-Engines vergleichbar, weil sie eine vom [[Datentyp]] unabhängige Programmierung ermöglichen und ganze [[Klasse (Objektorientierung)|Klassen]] generieren können. In den Templates einer Template-Engine sollte kein Programm-Code enthalten sein. [[Kontrollstruktur]]en (wie IF) sind allerdings oft in Templates möglich und verbreitet. Typische Dateitypen, die verarbeitet werden, sind [[Hypertext Markup Language|HTML]], Text ([[American Standard Code for Information Interchange|ASCII]] oder [[Unicode]]), [[Extensible Markup Language|XML]] oder [[TeX]].&lt;br /&gt;
&lt;br /&gt;
== Konzept ==&lt;br /&gt;
Das Konzept ähnelt den [[Seriendruck]]feldern bei einer [[Textverarbeitung]]: In einem Dokument werden Seriendruckfelder (Platzhalter) eingefügt, etwa &amp;#039;&amp;#039;Name – Straße – Ort&amp;#039;&amp;#039;. Bei Template-Engines werden diese Seriendruckfelder &amp;#039;&amp;#039;Template-Variablen&amp;#039;&amp;#039; genannt. Wenn aus dem Dokument dann mehrere Serienbriefe erzeugt werden, steht anstatt der Template-Variablen &amp;#039;&amp;#039;name&amp;#039;&amp;#039; ein realer Name wie „[[Mustermann#Erika Mustermann|Erika Mustermann]]“ im fertigen Serienbrief.&lt;br /&gt;
&lt;br /&gt;
Das Dokument braucht nur einmal geschrieben und formatiert zu werden. Alle Änderungen wirken sich automatisch auf zukünftig erstellte Serienbriefe aus. Das ist bei Template-Engines genauso; weitere Parallelen zu Serienbrief-Vorlagen sind:&lt;br /&gt;
* Die Daten kommen aus einer externen Quelle ([[Datenbank]], [[Tabellenkalkulation]] etc.).&lt;br /&gt;
* Um die Daten zu ändern, braucht das Template nicht verändert zu werden, und umgekehrt.&lt;br /&gt;
* Das Template kann wiederverwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzung ===&lt;br /&gt;
Template-Engines werden häufig von [[Programmierer]]n eingesetzt, um im Kontext von [[Webanwendung]]en Programm-Code (einer [[Programmiersprache]]) vom Design zu trennen. Genauso wird von den Herstellern mancher Template-Engines angeführt, Templates und Engines sollen durch die Trennung der Programmierlogik vom Design das Skript von HTML-Code befreien und damit übersichtlicher machen.&lt;br /&gt;
&lt;br /&gt;
Demgegenüber steht der ursprüngliche Gedanke der Template-Engines: Sie sollen statischen Text und dynamische Inhalte möglichst effizient miteinander verknüpfen. Oft sind Template-Engines deshalb gerade in Programmiersprachen anzutreffen, deren Syntax eine solche Mischung nicht direkt unterstützt (z.&amp;amp;nbsp;B. Java: [[JavaServer Pages|JSP]]; VBScript u.&amp;amp;nbsp;a.: [[Active Server Pages|ASP]]). Für eine echte Trennung der Darstellung von den Datenmodellen und den Logikkomponenten sind Template-Engines dagegen ungeeignet, und es sind zusätzliche Konzepte wie [[Model View Controller]] notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Vorteile ===&lt;br /&gt;
* Programm-Code (PHP, Python, Ruby, Perl, JavaScript) wird vom [[Auszeichnungssprache|Markup]] (HTML) getrennt.&lt;br /&gt;
* Designer und Programmierer können gleichzeitig an einem Projekt arbeiten.&lt;br /&gt;
* [[WYSIWYG]]-Editoren können verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile ===&lt;br /&gt;
&lt;br /&gt;
* Template-Engines erzeugen zur Laufzeit [[Overhead (EDV)|Zusatzaufwand]] (engl. &amp;quot;overhead&amp;quot;).&lt;br /&gt;
* Template-Engines müssen im Gebrauch erlernt werden. Neben der neuen Syntax sind auch oft grundlegende Kenntnisse der [[Objektorientierte Programmierung|objektorientierten Programmierung]] Voraussetzung.&lt;br /&gt;
* Template-Engines sind auf eine textuelle Ausgabe beschränkt.&lt;br /&gt;
&lt;br /&gt;
== Sprachabhängige Template-Engines ==&lt;br /&gt;
Template-Engines sind sehr verbreitet. [[XSLT]] ist für alle Template-Engines eine Konkurrenz. Bei [[PHP]] ist &amp;#039;&amp;#039;[[Smarty]]&amp;#039;&amp;#039; weit verbreitet, hat aber die Eigenentwicklungen und andere Template-Engines nicht vom Markt verdrängt.&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für PHP ===&lt;br /&gt;
PHP selbst ist bereits so entworfen, dass man programmiersprachliche Konstrukte mit der textuellen Ausgabe über Platzhalter bzw. gekennzeichnete Bereiche mischen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&amp;lt;?php echo $body_text; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php foreach($test_array as $key =&amp;gt; $value) : ?&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Schlüssel: &amp;lt;?php echo $key; ?&amp;gt; - Wert: &amp;lt;?php echo $value; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Vorteil liegt in der einfachen Verwendung. Es braucht keine zusätzliche Bibliothek installiert zu werden, auch ist diese Vorgehensweise für PHP-erfahrene Entwickler am leichtesten zu verstehen und folgt dem [[Principle of Least Surprise|Prinzip der geringsten Überraschung]]. Die Verwendung einer gesonderten Template-Engine für PHP ist daher nicht erforderlich. Dennoch bietet die Verwendung einer Template-Engine für PHP, neben der besseren Übersicht, einige Vorzüge, beispielsweise können einfache, anpassbare Templates für Fehlermeldungen und ähnliche, wiederkehrende Strukturen erstellt werden. Einige populäre Template-Engines sind:&lt;br /&gt;
&lt;br /&gt;
* [[Smarty]]&amp;lt;ref&amp;gt;[https://www.smarty.net/ Smarty extern]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Twig (Template-Engine)|Twig]]&amp;lt;ref&amp;gt;{{Webarchiv|url=http://twig.sensiolabs.org/ |wayback=20170709023155 |text=Twig |archiv-bot=2023-01-20 07:03:18 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluid (als Teil von [[TYPO3 Flow]])&amp;lt;ref&amp;gt;({{Webarchiv|url=http://forge.typo3.org/projects/show/package-fluid |wayback=20090131124210 |text=extern |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }})&amp;lt;/ref&amp;gt;&lt;br /&gt;
* vlibTemplate&amp;lt;ref&amp;gt;{{Webarchiv|url=http://vlib.clausvb.de/ |wayback=20050121011753 |text=vLIB |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}: {{Webarchiv|url=http://vlib.clausvb.de/vlibtemplate.php |wayback=20060619180826 |text=vlibTemplate |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}, {{Webarchiv|url=http://vlib.clausvb.de/vlibdate.php |wayback=20060717065639 |text=vlibDate |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }} und {{Webarchiv|url=http://vlib.clausvb.de/vlibmimemail.php |wayback=20060717065537 |text=vlibMimeMail |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }} ({{Webarchiv|url=http://vlib.clausvb.de/ |wayback=20050121011753 |text=englisch |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}, [https://lamp.clausvb.de/ deutsch])&amp;lt;/ref&amp;gt;&lt;br /&gt;
* TinyButStrong&amp;lt;ref&amp;gt;[https://www.tinybutstrong.com/ TinyButStrong]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Contemplate&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.typea.net/software/contemplate/assembled/home.html |wayback=20051122153736 |text=Contemplate |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* ETS (Easy Template System)&amp;lt;ref&amp;gt;[https://ets.sourceforge.net/ ETS (Easy Template System)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* t24 - PHP template parser&amp;lt;ref&amp;gt;[http://www.ister.org/code/t24/index.html t24 - PHP template parser]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* HTML_Template_IT: HTML Integrated Templates, PEAR-PackageuBook Template&amp;lt;ref&amp;gt;[https://pear.php.net/package/HTML_Template_IT/ HTML_Template_IT: HTML Integrated Templates, PEAR-Package]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* uBook Template&amp;lt;ref&amp;gt;[http://www.nongnu.org/ubook/doc/default/Template.html uBook Template]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* KTemplate&amp;lt;ref&amp;gt;{{Webarchiv|url=http://kuerbis.org/asap/article/12/ |wayback=20080514035504 |text=KTemplate |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Hyperkit PHP/XML Template-Engine&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.hyperkit-software.com/projects/phptemplates/index.html |wayback=20120124010010 |text=Hyperkit PHP/XML Template-Engine |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Beilpuz&amp;lt;ref&amp;gt;[http://beilpuz.get-mike.de Beilpuz]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Separate&amp;lt;ref&amp;gt;[http://de.separate.esud.info/ Separate]&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Blade (als Teil von [[Laravel]])&amp;lt;ref&amp;gt;{{Internetquelle |url=https://laravel.com/docs/5.8/blade |titel=Blade Templates - Laravel - The PHP Framework For Web Artisans |abruf=2019-06-01}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beispiel ====&lt;br /&gt;
Um eine Template-Engine zu verwenden, benötigt man die Template-Datei (in der die auszugebenden Daten enthalten sind) sowie das Script, welches das Template lädt und die Platzhalter mit Werten füllt.&lt;br /&gt;
&lt;br /&gt;
Das Template könnte so aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hallo, {name}!&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und so könnte eine Wertzuweisung vom Script aus aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$template-&amp;gt;assign(&amp;#039;name&amp;#039;, &amp;#039;Erika Mustermann&amp;#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hallo, Erika Mustermann!&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für Perl ===&lt;br /&gt;
* [[Template-Toolkit|Template Toolkit]]&amp;lt;ref&amp;gt;[http://www.template-toolkit.org/ Template Toolkit]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Contemplate&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.typea.net/software/contemplate/assembled/home.html |wayback=20051122153736 |text=Contemplate |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt; (auch [[Active Server Pages|ASP]])&lt;br /&gt;
* Embperl&amp;lt;ref&amp;gt;[https://perl.apache.org/embperl/ Embperl]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Mason&amp;lt;ref&amp;gt;[http://www.masonhq.com/ Mason]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* HTML Template&amp;lt;ref&amp;gt;[https://html-template.sourceforge.net/ HTML Template]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Text Template&amp;lt;ref&amp;gt;[https://perl.plover.com/Template/ Text Template]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* HTML CTPP2&amp;lt;ref&amp;gt;[http://search.cpan.org/dist/HTML-CTPP2/ HTML CTPP2]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für Python ===&lt;br /&gt;
&lt;br /&gt;
Es gibt viele Template-Engines unter [[Python (Programmiersprache)|Python]]. Beispiele sind &amp;#039;&amp;#039;[[Django (Framework)|Django]]&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;TurboGears&amp;#039;&amp;#039;. Eine gute Übersicht (mit URI und Code-Beispielen) findet man im deutschen PythonWiki&amp;lt;ref&amp;gt;{{Toter Link |datum=2019-05 |url=http://pythonwiki.pocoo.org/Template_Engines |text=deutschen PythonWiki |archivebot=2019-05-17 16:29:30 InternetArchiveBot}}&amp;lt;/ref&amp;gt;. Eine umfangreichere Liste, dafür weniger erklärt, findet man im englischen Wiki zu Python&amp;lt;ref&amp;gt;[https://wiki.python.org/moin/WebProgramming englischen Wiki zu Python]&amp;lt;/ref&amp;gt;. Weitere sind Cheetah, SimpleTAL, pyTemple, pyratemp&amp;lt;ref&amp;gt;[https://www.simple-is-better.org/template/pyratemp.html pyratemp]&amp;lt;/ref&amp;gt; und einige Python Template-Engines&amp;lt;ref&amp;gt;[http://www.simple-is-better.org/template/ Vergleich und Benchmarks: Python Template-Engines]&amp;lt;/ref&amp;gt;, Spytee, Nevow, Kid, Genshi, Jinja und HTMLTemplate.&lt;br /&gt;
&lt;br /&gt;
==== Anwendungsbeispiel ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Modul Template muss importiert werden&lt;br /&gt;
from string import Template&lt;br /&gt;
# Vorlage zum Lesen öffnen, Inhalt übergeben und Datei schließen&lt;br /&gt;
vorlage = open(&amp;#039;vorlage.txt&amp;#039;, &amp;#039;r&amp;#039;)&lt;br /&gt;
vorl_inhalt = vorlage.read()&lt;br /&gt;
vorlage.close()&lt;br /&gt;
# Den Inhalt als Template behandeln&lt;br /&gt;
template = Template(vorl_inhalt)&lt;br /&gt;
# Ersetzungen nach folgendem Schema festlegen&lt;br /&gt;
ersetzungen = { &amp;#039;Name&amp;#039; : &amp;#039;Hans Meier&amp;#039;, &amp;#039;Straße&amp;#039; : &amp;#039;Bahnhofstraße 69&amp;#039;, &amp;#039;Ort&amp;#039; : &amp;#039;12345 Foobarhausen&amp;#039; }&lt;br /&gt;
# Ersetzungen vornehmen&lt;br /&gt;
ersetzen = template.substitute(ersetzungen)&lt;br /&gt;
# Vorgang in Datei schreiben&lt;br /&gt;
outfile = open(&amp;#039;ausgabe.txt&amp;#039;, &amp;#039;w&amp;#039;)&lt;br /&gt;
outfile.write(ersetzen)&lt;br /&gt;
outfile.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vorlage.txt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Name: ${Name}&lt;br /&gt;
Straße: ${Straße}&lt;br /&gt;
Ort: ${Ort}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ausgabe.txt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Name: Hans Meier&lt;br /&gt;
Straße: Bahnhofstr. 69&lt;br /&gt;
Ort: 12345 Foobarhausen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für C++ und C ===&lt;br /&gt;
Für C++ und C gibt es verschiedene Template-Engines, wie&lt;br /&gt;
* ClearSilver&amp;lt;ref&amp;gt;[http://www.clearsilver.net/ ClearSilver]&amp;lt;/ref&amp;gt; Die Template-Engine von Orkut und Yahoo Groups (setzen einen eigenen Branch ein).&lt;br /&gt;
* Grantlee Template System&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.grantlee.org/ |wayback=20201130004953 |text=Grantlee Template System |archiv-bot=2024-05-26 12:24:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Google CTemplate&amp;lt;ref&amp;gt;{{Google Code|google-ctemplate|Google CTemplate}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für Java ===&lt;br /&gt;
Einige Template-Engines für Java&amp;lt;ref&amp;gt;[https://java-source.net/open-source/template-engines &amp;#039;&amp;#039;Java-Source.net - Open Source Template Engines in Java&amp;#039;&amp;#039;]&amp;lt;/ref&amp;gt; sind java-basierte, quelloffene Template-Engines.&lt;br /&gt;
*[https://www.stringtemplate.org/ StringTemplate] Template-Engine von Terence Parr, Basis für sein [https://www.antlr.org/ ANTLR], portiert auf C#, Objective-C und JavaScript&lt;br /&gt;
*[[FreeMarker]] – Java-basierte Template-Engine&amp;lt;ref&amp;gt;[http://freemarker.org/ Freemarker website]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Apache Velocity]] – Java-basierte Template-Engine&lt;br /&gt;
* Thymeleaf - Java-basierte Template-Engine&amp;lt;ref&amp;gt;[https://www.thymeleaf.org/ Thymeleaf]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Template-Engines für JavaScript ===&lt;br /&gt;
Im Gegensatz zu den vorherigen Lösungen können Templates vom Web-Browser verarbeitet werden. Der Server liefert nur die Daten z.&amp;amp;nbsp;B. als JSON, oder XML String. Der Rest übernimmt JavaScript im Browser.&lt;br /&gt;
* [[AngularJS]] Clientseitiges JavaScript-Webframework von Google&lt;br /&gt;
&lt;br /&gt;
=== Weitere Informationen zu Template-Engines ===&lt;br /&gt;
Einige weitere Template-Engines sind Java-basiert:&lt;br /&gt;
* [[Hamlets]] – Java-basierte Template-Engine&lt;br /&gt;
* action4JAVA&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.action4java.org/ |wayback=20130228072112 |text=action4JAVA |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt; - Java-basiertes Framework mit Template-Kern.&lt;br /&gt;
* [[jade4j]] – Java-basierte, freie Implementierung der Jade Template-Engine&amp;lt;ref&amp;gt;[https://github.com/neuland/jade4j jade4j Bezugsquelle]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[openArchitectureWare|Xpand]] – Java-basierte Template-Engine für die Codegenerierung&amp;lt;ref&amp;gt;[https://www.openarchitectureware.org oAW website]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* ASP&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.typea.net/software/contemplate/assembled/home.html |wayback=20051122153736 |text=Contemplate (englisch) |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* CTPP, Cross-platform Template-Engine für C++, C, PERL und PHP&amp;lt;ref&amp;gt;[https://ctpp.havoc.ru/en/ CTPP]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* GvTags Template-Engine für Groovy&amp;lt;ref&amp;gt;[http://www.gvtags.org GvTags Template-Engine für Groovy]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* jQote2 - jQuery JavaScript Templating Engine&amp;lt;ref&amp;gt;{{Webarchiv|url=http://aefxx.com/jquery-plugins/jqote2/ |wayback=20100409055942 |text=jQote2 |archiv-bot=2019-05-17 16:29:30 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* FilesFromCSV - .NET basiert - erzeugt pro CSV Datensatz ein Dokument&amp;lt;ref&amp;gt;[https://www.somebytes.net/54-0-FilesFromCSV.html FilesFromCSV]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Handlebars – [[JavaScript]]-basierte semantische Template-Engine&amp;lt;ref&amp;gt;[https://handlebarsjs.com/ Handlebars.js: Minimal Templating on Steroids]&amp;lt;/ref&amp;gt;, wird u.&amp;amp;nbsp;a. in [[Ghost (Blogging-Plattform)|Ghost]] verwendet&lt;br /&gt;
* AWS Templates Parser – [[Ada (Programmiersprache)|Ada]]-basierte Template-Engine&amp;lt;ref&amp;gt;[https://docs.adacore.com/aws-docs/templates_parser/ AWS Templates Parser: A template engine]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur | Autor= Karsten Wendland| Titel= Der Template-Zyklus. Web-Templates im Spannungsfeld von schöpferischem Gestalten und einschränkender Zumutung| Ort= Aachen| Jahr= 2006| ISBN= 3-83225-285-1}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Templatesprache]]&lt;/div&gt;</summary>
		<author><name>imported&gt;TaxonBot</name></author>
	</entry>
</feed>