Template engine (web)
From Wikipedia, the free encyclopedia
This article is part of |
Main:
|
Supplemental: |
Related: |
A (web) template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system.
Contents |
[edit] Specific types of template engines
Template engine is ordinarily included as a part of a web template system or application framework, and may be used also as preprocessor, filter, or template processor. Currently, template processing software is most frequently used in the context of development for the web.
XSLT is a template processing model designed by W3C. It is designed primarily for transformations on XML data (into web documents or other output).
Programming languages such as Perl, Ruby, C, and Java support template processing either natively, or through add-on libraries and modules. JavaServer Pages (JSP), PHP, and Active Server Pages (ASP with VBScript, JScript or other languages) are examples, themselves, of web template engines.
[edit] Typical Features
Template engines typically include features common to most high-level programming languages, with an emphasis on features for processing plain text.
Such features include:
- variables and functions
- text replacement
- file inclusion (or transclusion)
- conditional evaluation and loops
[edit] A web template example
The accompanying illustration depicts a simplified processing model for a typical web template engine. The template engine produces a web page by processing the web template source file along with data from a relational database. The template engine replaces variables with specific values. In the illustration, substitution of $X
by the database content (in page 01 "Mother", on page 02 "World").
A web template might look like this:
<html> <h1>Hello {$X}</h1> </html>
With additional template source code ...
templateAssign ('X', 'World');
... or, when specifying the relational database context:
$data[01]='Mother'; $data[02]='World'; templateAssign('X', $data[$i]);
[edit] Benefits of using template engines
- encourages organization of source code into operationally-distinct layers (see e.g., MVC)
- enhances productivity by reducing unnecessary reproduction of effort
- enhances teamwork by allowing separation of work based on skill-set (e.g., artistic vs. technical)
[edit] References
[edit] See also
- List of implemented template engines on template systems.
- Layout engine
- Category:Template engines
- Macro preprocessor
- Preprocessor
[edit] External links
Other template engines on template systems:
- Chip
- Contemplate
- Enforcing Strict Model-View Separation in Template Engines
- Expose PHP template engine
- Galena: Another Ruby Template Engine
- Liquid Ruby template engine
- Matlab template engine
- FreeMarker
- patTemplate
- SmartTemplate
- Smarty
- startonweb
- StringTemplate
- Template::Toolkit
- Template Lite
- TinyButStrong
- Top PHP template engines
- vLIB
- Vemplator
- Acceleo - MDA template based Code generator based on Eclipse and EMF