Comparison of web template engines

{{Short description|none}}

{{Dynamic a-list}}

{{More citations needed|date=September 2018}}

The following table lists the various web template engines used in Web template systems and a brief rundown of their features.

{{sort-under}}

class="sortable wikitable sort-under"
Engine (implementation){{efn|name=Engi}} || Languages{{efn|name=Lang}}|| License{{efn|name=Lice}}|| {{verth|Variables{{efn|name=Vari}}}}|| {{verth|Functions{{efn|name=Func}}}}|| {{verth|Includes{{efn|name=Incl}}}}|| {{verth|Conditional
inclusion{{efn|name=Cond}}}}|| Looping{{efn|name=Loop}}|| Evaluation
(language){{efn|name=Eval}} || {{verth|Assignment{{efn|name=Assi}}}}|| {{verth|Errors and
exceptions{{efn|name=Erro}}}}|| {{verth|i18n{{efn|name=i18n}}}} || {{verth|Natural
templates{{efn|name=Natu}}}}|| {{verth|Inheritance{{efn|name=Inhe}}}}
Apache VelocityJava, C#{{Free|Apache}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}{{No}}
ASP.NET (Microsoft)C#, VB.NET{{Proprietary}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Dunno}}{{Dunno}}{{Dunno}}
ASP.NET (Mono)C#{{Free|LGPL}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Dunno}}{{Dunno}}{{Dunno}}
Laravel BladePHP{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}
CheetahTemplatePython{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}{{Yes}}
CodeCharge StudioClassic ASP, C#, VB.NET, PHP, Perl, Java/JSP, ColdFusion{{Proprietary}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{Yes}}{{Dunno}}
ColdFusionCFML, CFScript{{Proprietary}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
CTPPC, C++, Perl, PHP, Python{{Free|BSD-like}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}{{Yes}}{{No}}{{Yes}}{{No}}
DjangoPython{{Free|BSD-like}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes }}{{No}}{{Yes}}
[https://eclipse.org/epsilon/doc/egl Epsilon Generation Language]Java{{Free|Eclipse Public License}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{No}}
EJSJavaScript{{varies|Various}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
eRubyRuby{{Free|GNU GPL / Ruby License}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}
FreeMarkerJava{{Free|Apache}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}
GenshiPython{{Free|BSD-like}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Python){{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}
Go templatesGo{{Free|BSD}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}
HamlRuby, PHP (WIP){{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Ruby){{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}
HamletsJava{{Free|BSD}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{Yes}}{{Dunno}}{{Dunno}}{{Dunno}}
JavaServer PagesJava{{Free|CDDL + GNU GPL[http://jsp.java.net/ JavaServer(TM) Pages Implementation]}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Dunno}}{{Yes}}{{Dunno}}
JinjaPython{{Free|BSD}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Python){{Yes}}{{No}}{{Yes}}{{No}}{{Yes}}
Jinja2Python{{Free|BSD}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Python){{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}
[https://keats.github.io/tera/ Tera]Rust{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{Yes}}{{No}}{{No}}{{No}}
KidPython{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Python){{Yes}}{{Yes}}{{No}}{{Yes}}{{No}}
LuceeCFML{{Free|LGPL}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (CFML){{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
MakoPython{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Python){{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}
Mustache{{varies|30+ languages}}{{Free|MIT}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
({{mono|foreach}})
{{No}}{{No}}{{Yes}}{{Yes}}{{Yes}}{{No}}
Open Power TemplatePHP 5{{Free|BSD-like}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (PHP){{Yes}}{{Yes}}{{No}}{{Yes}}{{Yes}}
PHPPHP{{Free|PHP License}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}
[https://pugjs.org Pug]JavaScript{{Free|MIT}}{{Cite web|title=pugjs/pug|url=https://github.com/pugjs/pug|access-date=2021-05-17|website=GitHub|language=en}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (JavaScript){{Yes}}{{Yes}}{{No}}{{No}}{{Yes}}
RazorC#, F#, VB.NET{{Free|Apache}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
SmartyPHP{{Free|LGPL}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (PHP){{Yes}}{{Yes}}?{{Yes}}{{No}}{{Yes}}
[https://slim-template.github.io/ Slim]Ruby{{Free|MIT}}{{Cite web|title=slim-template/slim|url=https://github.com/slim-template/slim/blob/master/LICENSE|access-date=2021-05-17|website=Github|language=en}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{No}}{{Yes}}
Template Attribute Language{{varies|Various}}{{free|open source}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{Dunno}}
Template ToolkitPerl, Python{{free|Perl}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}} (Perl){{Yes}}{{Yes}}{{No}}{{No}}{{Yes}}
ThymeleafJava{{Free|Apache}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}
TwigPHP{{Free|BSD}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}{{Yes}}{{Yes}}{{No}}{{Yes}}
web2pyPython{{Free|LGPL3}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}
WebMacroJava{{Free|Apache, GNU GPL}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Yes}}{{Dunno}}{{Dunno}}{{Dunno}}
Engine (implementation){{efn|name=Engi}} || Languages{{efn|name=Lang}}|| License{{efn|name=Lice}}|| {{verth|Variables{{efn|name=Vari}}}}|| {{verth|Functions{{efn|name=Func}}}}|| {{verth|Includes{{efn|name=Incl}}}}|| {{verth|Conditional
inclusion{{efn|name=Cond}}}}|| Looping{{efn|name=Loop}}|| Evaluation
(language){{efn|name=Eval}} || {{verth|Assignment{{efn|name=Assi}}}}|| {{verth|Errors and
exceptions{{efn|name=Erro}}}}|| {{verth|i18n{{efn|name=i18n}}}} || {{verth|Natural
templates{{efn|name=Natu}}}}|| {{verth|Inheritance{{efn|name=Inhe}}}}

See also

Notes

{{notelist|refs=

{{efn|name=Engi|Engine (implementation) : engine name}}

{{efn|name=Lang|Languages : implementation language of the engine (not the template script language)}}

{{efn|name=Lice|License : Software license agreement}}

{{efn|name=Vari|Variables : script language power to use variables}}

{{efn|name=Func|Functions : script language power to use functions}}

{{efn|name=Incl|Includes : script language power include external files}}

{{efn|name=Cond|Conditional inclusion : script language power to conditional includes}}

{{efn|name=Loop|Looping : script language power to do loops (for, while) or recursion}}

{{efn|name=Eval|Evaluation (language) : script language power to do "eval command" (to the implementation language)}}

{{efn|name=Assi|Assignment : set names and references to sub-templates (?)}}

{{efn|name=Erro|Errors and exceptions : engine output script errors.}}

{{efn|name=i18n|i18n : Internationalization and localization feature}}

{{efn|name=Natu|Natural templates : the template can be a document as valid as the final result, the engine syntax doesn't break the document's structure}}

{{efn|name=Inhe|Inheritance : Supports the ability to inherit a layout from a parent template, separately overriding arbitrary sections of the parent template's content.}}

}}

References

{{reflist|30em}}

{{DEFAULTSORT:Web template engines}}

Category:Scripting languages

*

Category:Computing comparisons