Comparison of web template engines: Difference between revisions
Appearance
Content deleted Content added
Adding doT |
Adding ClearSilver |
||
Line 32: | Line 32: | ||
|- |
|- |
||
| [http://www.x5software.com/chunk/ Chunk Templates] || [[Java (programming language)|Java]] || [[Apache License|Apache]] || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} |
| [http://www.x5software.com/chunk/ Chunk Templates] || [[Java (programming language)|Java]] || [[Apache License|Apache]] || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} |
||
|- |
|||
| [http://www.clearsilver.net/ ClearSilver] || [[C (programming language)|C]], [[Python (programming language)|Python]], [[Perl]], [[Java (programming language)|Java]], [[Ruby (programming language)|Ruby] || [[New BSD License]] || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{No}} |
|||
|- |
|- |
||
| [https://common-lisp.net/project/cl-emb/ CL-EMB] || [[Common Lisp]] || [[GNU Lesser General Public License|LLGPL]] || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || || || |
| [https://common-lisp.net/project/cl-emb/ CL-EMB] || [[Common Lisp]] || [[GNU Lesser General Public License|LLGPL]] || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || || || |
Revision as of 01:09, 18 July 2018
The following table lists the various Web Template Engines used in Web template systems and a brief rundown of their features. The content here is a work in progress.
Engine (implementation) | Languages | License | Variables | Functions | Includes | Conditional inclusion | Looping | Evaluation (language) | Assignment | Errors and exceptions | i18n | Natural templates | Inheritance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amber | C++ | GNU GPL v3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (C++) | Yes | No | No |
Apache Velocity | Java, C# | Apache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | ||
action4JAVA | Java | Apache | Yes | No | Yes | Yes | Yes | No | Yes | Yes | |||
ASP.NET (Microsoft) | C#, VB.NET | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
ASP.NET (Mono) | C# | LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
AutoGen | C | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
Beard | Scala | Apache | No | No | Yes | Yes | Yes | No | No | No | Yes | No | Yes |
Blade | PHP | MIT | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
Blitz | PHP 5, PHP (C-module) | BSD-like | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
Carrot | Java | Apache | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||
Casper | Java, JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
CheetahTemplate | Python | BSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Chip Template Engine | PHP, Perl | open-source? | Yes | Yes | Yes | Yes | Yes | No | Yes | No | |||
Chunk Templates | Java | Apache | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
ClearSilver | C, Python, Perl, Java, [[Ruby (programming language)|Ruby] | New BSD License | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes | No |
CL-EMB | Common Lisp | LLGPL | Yes | Yes | No | No | Yes | Yes | Yes | No | |||
CodeCharge Studio | Classic ASP, C#, VB.NET, PHP, Perl, Java/JSP, ColdFusion | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |
ColdFusion | CFML, CFScript | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Cottle | C# | MIT | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | |
csharptemplates | C# | New BSD | Yes | No | No | No | No | No | No | No | |||
CTPP | C, C++, Perl, PHP, Python | BSD-like | Yes | Yes | Yes | Yes | Yes | No | No | Yes | |||
dbPager | C++ | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Dermis | Classic ASP | MIT | Yes | No | Yes | No | Yes | No | Yes | No | |||
Deval | PHP | MIT | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | No | No | Yes |
Django | Python, Common Lisp[1] | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
DTL::Fast (port of Django templates) | Perl | MIT | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | |
Djolt-objc | Objective-C | Apache | Yes | No | No | No | Yes | No | No | No | |||
DNA Template | Javascript | MIT | Yes | No | No | No | Yes | No | Yes | No | Yes | No | |
doT | Javascript | Free | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No | No |
Dwoo | PHP5.3 / PHP7 | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | Yes | ||
Dylan Server Pages | Dylan | unknown | Yes | Yes | Yes | Yes | No? | No | No | No | |||
ECT | JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes (CoffeeScript) | Yes | Yes | Yes | ||
eRuby | Ruby | GNU GPL / Ruby License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
FigDice | PHP 5 | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
FreeMarker | Java | Apache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Genshi (templating language) | Python | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | Yes | |
Go templates | Go | BSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Google-ctemplate | C++ | BSD | Yes | No | Yes | Yes | Yes | No | No | No | |||
Grantlee Template System | C++/Qt | LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GvTags | Groovy | Apache | Yes | Yes | Yes | Yes | Yes | Yes (Groovy) | Yes | No | |||
H2o | PHP, Ruby | MIT | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
HAH | PHP | MIT | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | No | No | Yes | No |
Haml | Ruby, PHP (WIP) | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Ruby) | Yes | Yes | |||
Hamlets | Java | BSD | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | |||
Handlebars | JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No |
Hyperkit PHP/XML Template Engine | PHP, XML | open-source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Histone template Engine | PHP, Java, JavaScript | Apache | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
HTML-TEMPLATE | Common Lisp | BSD | Yes | No | Yes | No | Yes | No | No | No | No | ||
HTTL | Java | Apache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Inja | C++ | MIT | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |||
JavaServer Pages | Java | CDDL + GNU GPL[2] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
jin-template | Java, PHP | LGPL | Yes | No | No | No | No | No | Yes | No | |||
Jinja | Python | BSD | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | |||
Jinja2 | Python, C++[3] | BSD | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | Yes | Yes |
JScore | PHP + JS | Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Kalahari | Python | BSD-like | Yes | Yes | Through inheritance | No | Yes | No | Yes | Yes | |||
Kid (templating language) | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | |||
Liquid | Ruby and others | MIT | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | ||
Lofn | Common Lisp | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |||
Lucee | CFML | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (CFML) | Yes | Yes | Yes | Yes | Yes |
Mako | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | Yes | Yes | Yes | |
Mars-Templater | PHP 5 | MIT | Yes | No | No | Yes | Yes | No | No | No | |||
MiniTemplator | PHP, Java, VB.NET | LGPL | Yes | Yes | Yes | Yes | Yes | No | No | No? | |||
mTemplate | PHP | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
Mustache | 30+ languages | MIT | Yes | Yes | Yes | Yes | Yes (foreach) | No | No | Yes | Yes | Yes | No |
nTPL | node.js, JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Open Power Template | PHP 5 | BSD-like | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
Obyx | C++ | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Pebble | Java | New BSD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
Outline | PHP 5 | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
pHAML | PHP | MIT | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
PHP | PHP | PHP License | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Pug | JavaScript | MIT | Yes | Yes | Yes | Yes | |||||||
PURE Unobtrusive Rendering Engine | JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
pyratemp | Python | MIT | Yes | Yes | Yes | Yes | Yes | Yes (Python) | Yes | No | Yes | ||
QueryTemplates | PHP 5, JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
RainTPL | PHP | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes | |||
Razor | C#, F#, VB.NET | Apache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Rythm | Java | Apache | Yes | Yes | Yes | Yes | Yes | Yes (Java) | Yes | Yes | Yes | Yes | Yes |
Scalate | Scala, Java | Apache | Yes | Yes | Yes | Yes | Yes | Yes (Scala) | Yes | Yes | |||
Scurvy | PHP | GNU GPL | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | |
Simphple | PHP | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | No | Yes | Yes? | No | |
Smarty | PHP | LGPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | Yes | Yes | |
StampTE | PHP | BSD | Yes | No | No | No | No | No | No | No | No | Yes | No |
StringTemplate | Java (native), Python, C# | BSD[4] | Yes | No | Yes | Yes | Yes | No | No | No | Yes [5] | ||
SUIT Framework | PHP, Python | LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Template Attribute Language | Python, PHP 5 | open-source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Twital | PHP 5.3 | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Template Blocks | PHP 5 | GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes (PHP) | Yes | Yes? | |||
Template Toolkit | Perl, Python | open-source | Yes | Yes | Yes | Yes | Yes | Yes (Perl) | Yes | Yes | |||
Thymeleaf | Java | Apache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
TinyButStrong | PHP | LGPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Tonic | PHP | BSD | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Toupl | Any with OOP and String class support | Apache | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | Yes[6] | |||
Twig | PHP | BSD | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
Twirl | Scala | Apache | Yes | Yes | Yes | Yes | Yes | Yes (Scala) | Yes | Yes | |||
uBook Template | PHP | GNU GPL | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | |
vlibTemplate | PHP | Artistic License | Yes | Yes | Yes | Yes | Yes | No | No | No | |||
WebMacro | Java | Apache, GNU GPL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
ZeniTPL | PHP | New BSD | Yes | No | No | No | Yes | No | Yes | No | |||
BabaJS | JavaScript | MIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | |
Rage | JavaScript | GNU GPL v3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |
PlannerFw | JavaScript, PHP, Java, ASP.NET, Python, Perl, Ruby, Node.js, and more | GNU GPL v3, Proprietary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Fenom | PHP | ? | — | — | — | — | — | — | — | — | — | — | — |
Engine (implementation) | Languages | License | Variables | Functions | Includes | Conditional inclusion | Looping | Evaluation (language) | Assignment | Errors and exceptions | i18n | Natural templates | Inheritance |
LEGEND:
- Engine (implementation) = engine name
- Languages = implementation language of the engine (not the template script language)
- License = Software license agreement
- Platform = Computing platform
- Variables = script language power to use variables
- Functions = script language power to use functions
- Includes = script language power include external files
- Conditional inclusion = script language power to conditional includes
- Looping = script language power to do loops (for, while) or recursion
- Evaluation (language) = script language power to do "eval command" (to the implementation language)
- Assignment = set names and references to sub-templates (?)
- Errors and exceptions = engine output script errors.
- i18n = Internationalization and localization feature
- Natural templates = the template can be a document as valid as the final result, the engine syntax doesn't break the document's structure
- Inheritance = Supports the ability to inherit a layout from a parent template, separately overriding arbitrary sections of the parent template's content.
For inclusion above
- Paperclip (JavaScript/DOM/Node template engine) - fast, reactive templates.
- Embedded Perl(Mojolicious: Embedded Perl) - Embedded Perl is a powerful templating engine for use with the Mojolicious Web Framework. It supports variables, functions, includes, conditional inclusion, looping, evaluation, assignment, exceptions, i18n, natural templates, and inheritance.[7]
- erlydtl erlydtl django for erlang
- Latte, template engine originating from Nette Framework
- Foil
- PH7 Engine
- Haanga
- TPLN
- Volt Volt template engine for use with Phalcon Framework
- tiny_template, simple runtime C++ templating
- jtwig, Java implementation of the Twig template engine