Web template system
Encyclopedia
A Web template system describes the software and methodologies used to produce web page
Web page
A web page or webpage is a document or information resource that is suitable for the World Wide Web and can be accessed through a web browser and displayed on a monitor or mobile device. This information is usually in HTML or XHTML format, and may provide navigation to other web pages via hypertext...

s and for deployment on website
Website
A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet...

s and delivery over the Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

. Such systems process web template
Web template
A web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website...

s, using a template engine. It is a web publishing
Publishing
Publishing is the process of production and dissemination of literature or information—the activity of making information available to the general public...

 tool present in content management system
Content management system
A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...

s, software framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

s, HTML editor
HTML editor
An HTML editor is a software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HTML editors work not only with HTML, but also with related...

s, and many other contexts.

Overview

A web template system is composed of:
  • A Template engine: the primary processing element of the system;
  • Content resource: any of various kinds of input data stream
    Data stream
    In telecommunications and computing, a data stream is a sequence of digitally encoded coherent signals used to transmit or receive information that is in the process of being transmitted....

    s, such as from a relational database
    Relational database
    A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

    , XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     files, LDAP
    Lightweight Directory Access Protocol
    The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol network...

     directory, and other kinds of local or networked data;
  • Template resource: web templates specified according to a Template language;


The template and content resources are processed and combined by the template engine to mass-produce web documents. For purposes of this article, web documents include any of various output formats for transmission over the web via HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

, or another internet protocol.

Mass-production

Various agencies and organizations use web template systems for mass-production of content when slower production alternatives prove unfeasible.

For an introductory overview, a news website
News agency
A news agency is an organization of journalists established to supply news reports to news organizations: newspapers, magazines, and radio and television broadcasters. Such an agency may also be referred to as a wire service, newswire or news service.-History:The oldest news agency is Agence...

 is used as example. Suppose a "static website", where all web pages are static
Static web page
A static web page is a web page that is delivered to the user exactly as stored, in contrast to dynamic web pages which are generated by a web application....

, and built by a web designer, that need to add and update pages every day.
A typical strategy to automate the web-designer's "repetitive work" is:
  1. choose a web template system to maintain the website
    Website
    A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet...

    ;
  2. group news items with different presentation needs;
  3. specify the "presentation standards" through web templates, for each group of news;
  4. specify a content resource to generate or update the content of each news item.

Separation of concerns

For the web designer, when each web page comes from a web template
Web template
A web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website...

, he/she can think about a modular web page structured with components that can be modified independently of each other. These components may include a header, footer, global navigation bar (GNB), local navigation bar, and content well.

For programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

s the template language offers a more restricted logic, only for presentation adaptations and decisions, not for complex (business model
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

) algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

s.

For other members of the "site team", a template system frees webmasters to focus on technical maintenance, content suppliers to focus on content, and for all of them more reliability
Reliability engineering
Reliability engineering is an engineering field, that deals with the study, evaluation, and life-cycle management of reliability: the ability of a system or component to perform its required functions under stated conditions for a specified period of time. It is often measured as a probability of...

.

Moreover, it has the following advantages to its use:
  • Ease of design change: presentation variations on templates are "content invariant", meaning a web designer can update the presentation without wider infrastructural preoccupations.
  • Ease of interface localization: menus and other presentation standards are easy to make uniform, for users browsing on the site.
  • Possibility to work separately on design and code by different people at the same time.

Formal characterization

Kinds of template systems


There are many public software and commercial packages promoted as being web templates and template engines,
but there are a high diversity of disperse kinds of solutions. To select and group them in a systematic way, the first step is to characterize them as template systems.

A second step is to group and identify main properties of each characterized system:
  • The architecture
    Software architecture
    The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...

     of these systems, into a client–server reference model, is the main division criteria for group then—although the use of diverse modern web cache
    Web cache
    A web cache is a mechanism for the temporary storage of web documents, such as HTML pages and images, to reduce bandwidth usage, server load, and perceived lag...

     strategies, architectures can be characterized. There are, as illustrated, three groups: Outside server systems, Server-side systems, and Distributed systems.
  • Main attributes:
    • Template languages may be:
      • Embedded or Event-driven.
      • Simple, Iterable, Programmable, or Complex.
      • Specification possession: the standards of the language are controlled by a public or not-public. The possession strategy and the ownership indicate the stability and credibility of the specification. Note that in most jurisdictions language specification cannot be copyrighted, so the possession is not absolute.
    • Template engine possession: it is public or not (ownership rights
      Intellectual property
      Intellectual property is a term referring to a number of distinct types of creations of the mind for which a set of exclusive rights are recognized—and the corresponding fields of law...

      ), indicating if source codes of the template engine are open, or not.


Many template systems are a component of a platform or framework. They are referred to as the "platform's template system".

Many template systems have options for change (plug) the template language or for change the template engine.

Outside server systems

Web templates in this context produce only static web page
Static web page
A static web page is a web page that is delivered to the user exactly as stored, in contrast to dynamic web pages which are generated by a web application....

s, and can be viewed as a ready-made web design
Web design
Web design is the process of planning and creating a website. Text, images, digital media and interactive elements are used by web designers to produce the page seen on the web browser...

, used to mass-produce "cookie-cutter" website
Website
A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet...

s for rapid deployment.

HTML editor
HTML editor
An HTML editor is a software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HTML editors work not only with HTML, but also with related...

s are the typical systems using outside server subsystems. They also commonly include themes in place of CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...

 styles. In general the template language is to be used only with the editor's software.

FrontPage
Microsoft FrontPage
Microsoft FrontPage was a WYSIWYG HTML editor and web site administration tool from Microsoft for the Microsoft Windows line of operating systems. It was branded as part of the Microsoft Office suite from 1997 to 2003...

 and Dreamweaver
Macromedia Dreamweaver
Adobe Dreamweaver is a proprietary web development application originally created by Macromedia, and is now developed by Adobe Systems, which acquired Macromedia in 2005....

 are the most popular editors with template sub-system. A Flash web template uses Macromedia Flash to create visually appealing sites.
System label/name Platform/editor Notes
Dreamweaver
Macromedia Dreamweaver
Adobe Dreamweaver is a proprietary web development application originally created by Macromedia, and is now developed by Adobe Systems, which acquired Macromedia in 2005....

Macromedia
Macromedia Dreamweaver
Adobe Dreamweaver is a proprietary web development application originally created by Macromedia, and is now developed by Adobe Systems, which acquired Macromedia in 2005....

HTML authoring
HTML editor
An HTML editor is a software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HTML editors work not only with HTML, but also with related...

. Embedded iterable language.
Flash Macromedia Flash authoring.
FrontPage
Microsoft FrontPage
Microsoft FrontPage was a WYSIWYG HTML editor and web site administration tool from Microsoft for the Microsoft Windows line of operating systems. It was branded as part of the Microsoft Office suite from 1997 to 2003...

Microsoft
Microsoft FrontPage
Microsoft FrontPage was a WYSIWYG HTML editor and web site administration tool from Microsoft for the Microsoft Windows line of operating systems. It was branded as part of the Microsoft Office suite from 1997 to 2003...

HTML authoring
HTML editor
An HTML editor is a software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HTML editors work not only with HTML, but also with related...

. Embedded iterable language.
Nvu
Nvu
Nvu is a WYSIWYG HTML editor, based on the Composer component of Mozilla Application Suite and Gecko 1.7. It is a common WYSIWYG editor for Linux, Microsoft Windows and Macintosh, intended to be an open source equivalent to proprietary software like Microsoft Expression Web and Adobe Dreamweaver...

Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

/Nvu
HTML authoring
HTML editor
An HTML editor is a software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HTML editors work not only with HTML, but also with related...

.


Many server-side template systems have the option to publish the output pages on the server, where the published pages will be static
Static web page
A static web page is a web page that is delivered to the user exactly as stored, in contrast to dynamic web pages which are generated by a web application....

. It is a common feature on content management system
Content management system
A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...

s, like Vignette
Vignette (software)
Vignette Corporation is a company headquartered in Austin, Texas, that offers a suite of content management, portal, collaboration, document management, and records management software. On May 6, 2009 Open Text Corporation announced they would buy Vignette for $310 million...

. But this does not have to be considered an out-server generation.

In the majority of the cases, this "publish option" not interferes with the template system, and it can be made by external software, as Wget
Wget
GNU Wget is a computer program that retrieves content from web servers, and is part of the GNU Project. Its name is derived from World Wide Web and get...

.

Server-side systems

Server-side dynamic pages began to be generated by templates with pre-existent software adapted for this task.
This early software was the preprocessor
Preprocessor
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers...

s and macro languages,
adapted for the web use, running on CGI
Common Gateway Interface
The Common Gateway Interface is a standard method for web servers software to delegate the generation of web pages to executable files...

. Next, a simple but relevant technology was the direct execution made on extension modules, started with SSI
Server Side Includes
Server Side Includes is a simple interpreted server-side scripting language used almost exclusively for the Web.The most frequent use of SSI is to include the contents of one or more files into a web page on a web server...

.

Many template systems are typically used as server-side template systems:
System label/name Platform/framework Notes
Amrita Template Library Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

Public. Embedded complex language.
CheetahTemplate
CheetahTemplate
Cheetah is a template engine that uses the Python programming language. It can be used standalone or combined with other tools and frameworks. It is often used for server-side scripting and dynamic web content by generating HTML, but can also be used to generate source code...

Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Public. Embedded complex language.
Chip PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public.
ClearSilver C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, Ruby
Public. Embedded complex language.
Closure Templates Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

Public. Embedded complex language
Dermis Classic ASP/VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...

Port of the Smarty
Smarty
Smarty is a web template system written in PHP. Smarty is primarily promoted as a tool for separation of concerns.Smarty is intended to simplify compartmentalization, allowing the presentation of a web page to change separately from the back-end...

 template system to Classic ASP/VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...

. Public. Embedded complex language.
Django
Django web framework
Django is an open source web application framework, written in Python, which follows the model-view-controller architectural pattern. It was originally developed to manage several news-oriented sites for The World Company of Lawrence, Kansas, and was released publicly under a BSD license in July...

Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Use the "Django template language".
Evoque Templating Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 including Python 3.0
Embedded simple language.
FreeMarker
FreeMarker
FreeMarker is a Java-based template engine focusing on the MVC software architecture. Although it's mostly used for Servlet-based Web Application development, it can be used for any other kind of text output, such as generating CSS, Java source code, etc. Unlike JSP, it is not dependent on the...

Java Public.
Facelets
Facelets
In computing, Facelets is an open source Web template system under the Apache license and the default view handler technology for JavaServer Faces . The language requires valid input XML documents to work...

Java EE Public. Part of JavaServer Faces
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

Genshi
Genshi (templating language)
Genshi is a template engine for XML-based vocabularies written inPython. Genshi is used to easily insert generated output into XML-based languages, usually HTML, and reuse elements between documents...

Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Public
Grantlee Template system C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, Qt (toolkit)
Qt (toolkit)
Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface , and also used for developing non-GUI programs such as command-line tools and consoles for servers...

Port of the Django template system to Qt.
Haml
Haml
Haml is a lightweight markup language that is used to describe the XHTML of any web document without the use of traditional inline coding. It’s designed to address many of the flaws in traditional templating engines, as well as making markup as elegant as it can be...

Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

 or Other
Public.
Hamlets
Hamlets
Hamlets is the name of an open source system for generating web-pages originally developed by René Pawlitzek at IBM...

Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

Public.
jin-template Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public.
JScore PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

 + JS
JS
JS or js may refer to:* Jonge Socialisten, Dutch political groupCompanies:* JS, Air Koryo of North Korea* JS, parent company of Sainsbury's Supermarkets* JS Food Plan, Korean pizza company* JS Group, Pakistani company...

Proprietary. Dependency-Driven programmable language. Along with HTML output, generates JS that dynamically manipulates DOM structure on the client side when variables are changed.
HTML::Template Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

Public.
Kid
Kid (Templating Language)
Kid is a simple template engine for XML-based vocabularies written in Python. Kid claims to have many of the best features of XSLT, TAL, and PHP, but "with much of the limitations and complexity stamped out"....

Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Lasso
Lasso programming language
Lasso Professional combines an interpreted programming language and server for developing internet applications which use web browsers for the client user interface to connect to HTTP and database servers...

LassoSoft, LLC Proprietary. Interpreted
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 Programming Language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 and Server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

Mustache
Mustache (template system)
Mustache is a simple web template system with language bindings available for ActionScript, C++, Clojure, CoffeeScript, ColdFusion, D, Erlang, Fantom, Go, Java, JavaScript, Lua, .NET, Objective-C, Perl, PHP, Python, Ruby and Scala. Syntax highlighting is available in Vim, Emacs, TextMate and...

ActionScript
ActionScript
ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of...

, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, Clojure
Clojure
Clojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....

, CoffeeScript
CoffeeScript
CoffeeScript is a programming language that transcompiles to JavaScript. The language adds syntactic sugar inspired by Ruby, Python and Haskell to enhance JavaScript's brevity and readability, as well as adding more sophisticated features like array comprehension and pattern matching...

, ColdFusion
ColdFusion
In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had...

, D
D (programming language)
The D programming language is an object-oriented, imperative, multi-paradigm, system programming language created by Walter Bright of Digital Mars. It originated as a re-engineering of C++, but even though it is mainly influenced by that language, it is not a variant of C++...

, Erlang, Fantom, Go
Go (programming language)
Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc.The initial design of Go was started in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. Go was officially announced in November 2009. In May 2010, Rob Pike publicly stated that Go was being...

, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, server-side JavaScript
Server-side JavaScript
Server-side JavaScript refers to JavaScript that runs on the server-side. This term was coined because the language is predominantly used on the client-side, i.e. client-side JavaScript ....

, Lua, .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

, Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

, Scala
Public.
Basic Server Side Includes
Server Side Includes
Server Side Includes is a simple interpreted server-side scripting language used almost exclusively for the Web.The most frequent use of SSI is to include the contents of one or more files into a web page on a web server...

 (SSI)
The basic directives fix a "standard". Embedded simple language, if exclude exec directive.
Smarty
Smarty
Smarty is a web template system written in PHP. Smarty is primarily promoted as a tool for separation of concerns.Smarty is intended to simplify compartmentalization, allowing the presentation of a web page to change separately from the back-end...

PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public. Embedded complex language.
ATal PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public. Embedded complex language. Smarty/TAL hybrid
Template Alloy Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

Public. Embedded complex language. Supports various languages including Template::Toolkit, HTML::Template, Text::Tmpl, as well as Velocity Template Language
Template Power PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public. Web template#Complex templates.
Template Toolkit
Template Toolkit
The Template Toolkit is a template engine used primarily for building web sites, but is also suitable for creating any type of digital document, such as a PDF or LaTeX file. Template Toolkit is based on a mini-language and does not allow direct Perl in its templates, unlike some competing products...

Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

Public. Embedded complex language.
StringTemplate Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, C#, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Public. Embedded iterable language.
Template Attribute Language
Template Attribute Language
The Template Attribute Language is a templating language used to generate dynamic HTML and XML pages. Its main goal is to simplify the collaboration between programmers and designers...

 (TAL)
Zope
Zope
Zope is a free and open-source, object-oriented Web application server written in the Python programming language. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodology for the Web...

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

, XSLT
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

Public; a.k.a. Zope Page Templates (ZPT); see also TAL Expression Syntax
Tales
Tales can refer to:*the plural of tale*Tales , a series of role-playing games*Tales , an album by Marcus Miller*Tales of Silversleeve, an album by Cathy Davey*Tales of the Unexpected , an Anglia television series...

 (TALES), Macro Expansion TAL
Metal
A metal , is an element, compound, or alloy that is a good conductor of both electricity and heat. Metals are usually malleable and shiny, that is they reflect most of incident light...

 (METAL)
Thymeleaf
Thymeleaf
Thymeleaf is a Java XML/XHTML/HTML5 template engine that can work both in web and non-web environments. It is better suited for serving XHTML/HTML5 at the view layer of MVC-based web applications, but it can process any XML file even in offline environments.In web applications Thymeleaf aims to be...

Java Public.
Topsite
Topsite Templating System
The Topsite Templating System is an open source templating system written in the Python programming language. It is designed to allow simple melding of Python code with static content.-Supported features:...

Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

Public.
PHPlib PHPlib Public. Embedded iterable language.
Psttt! template engine PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public. External selector value css like file.
WebMacro
WebMacro
WebMacro is a framework for developing Java Servlets. It enforces a Model-View-Controller framework on a project allowing for a clean separation of concerns in the design. In particular WebMacro keeps program source code absolutely separate from presentation HTML code. WebMacro is open source...

Java Public. Embedded iterable language.
WebObjects
WebObjects
WebObjects was a Java web application server from Apple Inc., and a web application framework that ran on the server. It was available at no additional cost. Its hallmark features were its object-orientation, database connectivity, and prototyping tools...

Java Use the WebObjects Builder as engine.
Velocity (Jakarta/Apache) Java Public. Use VTL - Velocity Template Language.
Vignette
Vignette (software)
Vignette Corporation is a company headquartered in Austin, Texas, that offers a suite of content management, portal, collaboration, document management, and records management software. On May 6, 2009 Open Text Corporation announced they would buy Vignette for $310 million...

Proprietary. Commercial solution. Embedded complex language.
VlibTemplate
VlibTemplate
vlibTemplate is a template engine written in PHP. Programmers and web developers may use it for web development. vlibTemplate is a PHP class that is intended to make splitting PHP from HTML a simple and natural task...

PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public.
XSLT
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

 (standard language)
Any with an XSLT parser Standard. Event-driven programmable language.
XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....

 (standard language)
Any with an XQuery parser Standard. Embedded programmable language.
Merge On Browse AJAX compatible browser Public. Cross browser, client side templating language which uses AJAX
Ajax
- Mythology :* Ajax , son of Telamon, ruler of Salamis and a hero in the Trojan War, also known as "Ajax the Great"* Ajax the Lesser, son of Oileus, ruler of Locris and the leader of the Locrian contingent during the Trojan War.- People :...

 and DHTML to pull together dynamic content and static document structure


Technically, the methodology of embedding programming languages within HTML (or XML, etc.), used in many "server-side included script languages" are also templates. All of them are embedded complex languages.
System label/name Notes
Active Server Pages
Active Server Pages
Active Server Pages , also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically-generated Web pages. Initially released as an add-on to Internet Information Services via the Windows NT 4.0 Option Pack Active Server Pages (ASP), also known as Classic...

 (ASP)
Proprietary (Microsoft platform
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

). See also: VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...

, Javascript, PerlScript
PerlScript
PerlScript was initially solely an ActiveX Scripting Engine produced by the company ActiveState for use with Microsoft's Internet Information Services that allows for programmers to use Perl-based code in addition to, or in place of, VBScript or JScript in the context of web servers running the...

, etc. extensions for ASP.
eRuby
ERuby
eRuby is a templating system that embeds Ruby into a text document. It is often used to embed Ruby code in an HTML document, similar to ASP, JSP and PHP.-Usage:eRuby allows Ruby code to be embedded within a pair of delimiters...

Public (Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

).
ColdFusion Markup Language
ColdFusion Markup Language
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine...

 (CFM)
Public (Railo
Railo
Railo is Open Source software which implements the general-purpose CFML server-side scripting language, often used to create dynamic websites, web applications and intranet systems...

, OpenBD). Proprietary (Adobe ColdFusion).
JavaServer Pages
JavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...

 (JSP)
Public, Java platform.
Active Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

Public.
PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

Public.
OpenACS
OpenACS
The Open Architecture Community System is an open-source web application framework licensed under the terms of the GNU GPL.The Open Architecture Community System provides:...

Public (Tcl
Tcl
Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...

).


There are also preprocessor
Preprocessor
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers...

s used as server-side template engines. Examples:
Preprocessor
Preprocessor
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers...

Notes
C preprocessor
C preprocessor
The C preprocessor is the preprocessor for the C and C++ computer programming languages. The preprocessor handles directives for source file inclusion , macro definitions , and conditional inclusion ....

Public. Embedded iterable language.
M4
M4 (computer language)
m4 is a general purpose macro processor designed by Brian Kernighan and Dennis Ritchie. m4 is an extension of an earlier macro processor m3, written by Ritchie for the AP-3 minicomputer.-Use:...

Public. Embedded complex language.

Edge-side systems

Edge-Side template and Inclusion systems. “Edge-side” refers to web servers that reside in the space between the client (browser) and the originating server. They are often referred to as “reverse-proxy” servers. These servers are generally tasked with reducing the load and traffic on originating servers by caching content such as images and page fragments, and delivering this to the browser in an efficient manner.

Basic Edge Side Includes
Edge Side Includes
Edge Side Includes or ESI is a small markup language for edge level dynamic web content assembly. The purpose of ESI is to tackle the problem of web infrastructure scaling. It is an application of edge computing....

 (ESI) is an SSI-like language. ESI has been implemented for content delivery networks. The ESI template language may also be implemented in web browsers using JavaScript and Ajax, or via a browser "plug-in".

Client-Side Systems

Many web browsers support applying XSLT
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

 stylesheets to XML data in the browser itself, providing template functionality in the browser.

Other systems implement template functionality in-browser using JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 or another Client-side scripting
Client-side scripting
Client-side scripting generally refers to the class of computer programs on the web that are executed client-side, by the user's web browser, instead of server-side...

 language :

Distributed systems

The more simple form are transclusion
Transclusion
In computer science, transclusion is the inclusion of a document or part of a document into another document by reference.For example, an article about a country might include a chart or a paragraph describing that country's agricultural exports from a different article about agriculture...

s (HTML frames). In other cases it need Dynamic web page
Dynamic web page
A dynamic web page is a kind of web page that has been prepared with fresh information , for each individual viewing. It is not static because it changes with the time , the user , the user interaction , the context A dynamic web page is a kind of web page that has been prepared with fresh...

s to run.

Examples:
  • Ajax (programming)
    Ajax (programming)
    Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

  • Rich Internet application
    Rich Internet application
    A Rich Internet Application is a Web application that has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of JavaScript, or virtual machines...

    .

See also

  • UIML
    UIML
    UIML is an XML language for defining user interfaces on computers.Basically UIML tries to reduce the work needed to develop user interfaces. It allows you to describe the user interface in declarative terms and abstract it...

     = User Interface Markup Language
  • Smarty
    Smarty
    Smarty is a web template system written in PHP. Smarty is primarily promoted as a tool for separation of concerns.Smarty is intended to simplify compartmentalization, allowing the presentation of a web page to change separately from the back-end...

     = described up
  • XML Sapiens = for include up
  • Template
    Template
    Template may mean:*a stencil, pattern or overlay used in graphic arts and sewing to replicate letters, shapes or designs...

     (disambiguation)
  • Template system
  • Web template
    Web template
    A web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website...

  • Web template engine
  • XSLT
    XSLT
    XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

  • Dynamic web page
    Dynamic web page
    A dynamic web page is a kind of web page that has been prepared with fresh information , for each individual viewing. It is not static because it changes with the time , the user , the user interaction , the context A dynamic web page is a kind of web page that has been prepared with fresh...

  • TBBS
    TBBS
    TBBS is a multiline DOS based commercial bulletin board system software package written in 1983 by Philip L. Becker. He originally created the software as the result of a poker game with friends that were praising the BBS software created by Ward Christensen. Mr. Becker said he could do better and...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK