Jump to content

Comparison of web template engines

From Wikipedia, the free encyclopedia

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

Engine (implementation)[a]Languages[b]License[c]
Variables[d]
Functions[e]
Includes[f]
Conditional
inclusion[g]
Looping[h]Evaluation
(language)[i]
Assignment[j]
Errors and
exceptions[k]
i18n[l]
Natural
templates[m]
Inheritance[n]
Apache VelocityJava, C#ApacheYesYesYesYesYesYesYesYesNoNoNo
ASP.NET (Microsoft)C#, VB.NETProprietaryYesYesYesYesYesYesYesYes???
ASP.NET (Mono)C#LGPLYesYesYesYesYesYesYesYes???
Laravel BladePHPMITYesYesYesYesYesYesYesYesYesNoYes
CheetahTemplatePythonMITYesYesYesYesYesYesYesYesNoNoYes
CodeCharge StudioClassic ASP, C#, VB.NET, PHP, Perl, Java/JSP, ColdFusionProprietaryYesYesYesYesYesYesYesNoYesYes?
ColdFusionCFML, CFScriptProprietaryYesYesYesYesYesYesYesYesYesYesYes
CTPPC, C++, Perl, PHP, PythonBSD-likeYesYesYesYesYesNoNoYesNoYesNo
DjangoPythonBSD-likeYesYesYesYesYesYesYesYesYesNoYes
Epsilon Generation Language[1]JavaEclipse Public LicenseYesYesYesYesYesYesYesYesNoYesNo
EJSJavaScriptVariousYesYesYesYesYesYesYesYesYesYesYes
eRubyRubyGNU GPL / Ruby LicenseYesYesYesYesYesYesYesYesYesYesNo
FreeMarkerJavaApacheYesYesYesYesYesYesYesYesYesNoNo
GenshiPythonBSD-likeYesYesYesYesYesYes (Python)YesYesYesYesNo
Go templatesGoBSDYesYesYesYesYesYesYesYesYesYesNo
HamlRuby, PHP (WIP)MITYesYesYesYesYesYes (Ruby)YesYesYesNoNo
HamletsJavaBSDYesYesYesYesYesNoYesYes???
JavaServer PagesJavaCDDL + GNU GPL[2]YesYesYesYesYesYesYesYes?Yes?
JinjaPythonBSDYesYesYesYesYesYes (Python)YesNoYesNoYes
Jinja2PythonBSDYesYesYesYesYesYes (Python)YesYesYesNoYes
Tera[3]RustMITYesYesYesYesYesNoYesYesNoNoNo
KidPythonMITYesYesYesYesYesYes (Python)YesYesNoYesNo
LuceeCFMLLGPLYesYesYesYesYesYes (CFML)YesYesYesYesYes
MakoPythonMITYesYesYesYesYesYes (Python)YesYesYesNoYes
Mustache30+ languagesMITYesYesYesYesYes
(foreach)
NoNoYesYesYesYes
Open Power TemplatePHP 5BSD-likeYesYesYesYesYesYes (PHP)YesYesNoYesYes
PHPPHPPHP LicenseYesYesYesYesYesYesYesYesYesYesNo
Pug[4]JavaScriptMIT[5]YesYesYesYesYesYes (JavaScript)YesYesNoNoYes
RazorC#, F#, VB.NETApacheYesYesYesYesYesYesYesYesYesYesYes
SmartyPHPLGPLYesYesYesYesYesYes (PHP)YesYes?YesNoYes
Slim[6]RubyMIT[7]YesYesYesYesYesYesYesYesNoNoYes
Template Attribute LanguageVariousopen sourceYesYesYesYesYesYesYesYesNoYes?
Template ToolkitPerl, PythonPerlYesYesYesYesYesYes (Perl)YesYesNoNoYes
ThymeleafJavaApacheYesYesYesYesYesYesYesYesYesYesNo
TwigPHPBSDYesYesYesYesYesNoYesYesYesNoYes
web2pyPythonLGPL3YesYesYesYesYesYesYesYesYesYesYes
WebMacroJavaApache, GNU GPLYesYesYesYesYesYesYesYes???
Engine (implementation)[a]Languages[b]License[c]
Variables[d]
Functions[e]
Includes[f]
Conditional
inclusion[g]
Looping[h]Evaluation
(language)[i]
Assignment[j]
Errors and
exceptions[k]
i18n[l]
Natural
templates[m]
Inheritance[n]

See also

[edit]

Notes

[edit]
  1. 1 2 Engine (implementation) : engine name
  2. 1 2 Languages : implementation language of the engine (not the template script language)
  3. 1 2 License : Software license agreement
  4. 1 2 Variables : script language power to use variables
  5. 1 2 Functions : script language power to use functions
  6. 1 2 Includes : script language power include external files
  7. 1 2 Conditional inclusion : script language power to conditional includes
  8. 1 2 Looping : script language power to do loops (for, while) or recursion
  9. 1 2 Evaluation (language) : script language power to do "eval command" (to the implementation language)
  10. 1 2 Assignment : set names and references to sub-templates (?)
  11. 1 2 Errors and exceptions : engine output script errors.
  12. 1 2 i18n : Internationalization and localization feature
  13. 1 2 Natural templates : the template can be a document as valid as the final result, the engine syntax doesn't break the document's structure
  14. 1 2 Inheritance : Supports the ability to inherit a layout from a parent template, separately overriding arbitrary sections of the parent template's content.

References

[edit]
  1. "Code Generation (EGL) - Epsilon". eclipse.dev. Retrieved 2025-11-07.
  2. JavaServer(TM) Pages Implementation
  3. "Tera". keats.github.io. Retrieved 2025-11-07.
  4. "Getting Started". pugjs.org. Retrieved 2025-11-07.
  5. "pugjs/pug". GitHub. Retrieved 2021-05-17.
  6. "Slim - A Fast, Lightweight Template Engine for Ruby". slim-template.github.io. Retrieved 2025-11-07.
  7. "slim-template/slim". Github. Retrieved 2021-05-17.