Jump to content

Comparison of web template engines: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
PaulWay (talk | contribs)
Adding ClearSilver
PaulWay (talk | contribs)
m Fixed missing close square bracket from Ruby link
Line 33: Line 33:
| [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}}
| [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:12, 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 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

See also

References

  1. ^ Djula
  2. ^ JavaServer(TM) Pages Implementation
  3. ^ Unofficial C++ port available over GitHub
  4. ^ http://www.stringtemplate.org/license.html
  5. ^ StringTemplate version 4 now supports inheritance.
  6. ^ a b c d e f g h Toupl is only a compiler. Features depend on target language
  7. ^ http://mojolicio.us/