| This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. (August 2008) |
A Web template system describes the software and methodologies used to produce web pages and for deployment on websites and delivery over the internet. Such systems process web templates, using a template engine. It is a web publishing tool present in content management systems, software frameworks, HTML editors, and many other contexts.
|
This article is part of |
|
Main:
|
Contents |
A web template system is comprised of:
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, or another internet protocol.
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 is used as example. Suppose a "static website", where all web pages are static, 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:
For the web designer, when each web page comes from a web template, 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, local navigation bar, and content well.
For programmers the template language offer a more restricted logic, only for presentation adaptations and decisions and not for doing complex (business model) algorithms.
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.
Moreover, it has the following advantages to its use:
| The remainder of this article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (January 2007) |
| Please help improve this section by expanding it. Further information might be found on the talk page or at requests for expansion. (May 2008) |
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:
Web templates in this context produce only static web pages, and can be viewed as a ready-made web design, used to mass-produce "cookie-cutter" websites for rapid deployment.
HTML editors are the typical systems using outside server subsystems. They also commonly include themes in place of CSS styles. In general the template language is to be used only with the editor's software.
FrontPage and Dreamweaver are the most popular editors with template sub-system. On Dreamweaver the template tool may also include a graphical template making it easy to edit or customise graphics and images. A Flash web template uses Macromedia Flash to create visually appealing sites.
| System label/name | Platform/editor | Notes |
|---|---|---|
| BlueFish? | ? | ? |
| Nvu | Linux/Nvu | HTML authoring. |
| Flash | Macromedia | Flash authoring. |
| FrontPage | Microsoft | HTML authoring. Embedded iterable language. |
| Dreamweaver | Macromedia | HTML authoring. Embedded iterable language. |
Many server-side template systems have the option to publish the output pages on the server, where the published pages will be static. It is a common feature on content management systems, like Vignette. 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.
Server-side dynamic pages began generated by templates with pre-existent software adaptated for this task. This early software was the preprocessors and macro languages, adapted for the web use, running on CGI. Next, a simple but relevant technology was the direct execution made on extension modules, started with SSI.
A lot of template systems are typically used as server-side template systems:
| System label/name | Platform/framework | Notes |
|---|---|---|
| Amrita Template Library | Ruby | Public. Embedded complex language. |
| CheetahTemplate | Python | Public. Embedded complex language. |
| Chip | PHP | Public. |
| ClearSilver | C, Java, Perl, Python, Ruby | Public. Embedded complex language. |
| Django | Python | Use the "Django template language". |
| Evoque | Python | Embedded simple language. |
| FreeMarker | Java | Public. |
| Genshi | Python | Public |
| Haml | Ruby or Other | Public. |
| Hamlets | Java | Public. |
| HTML::Template | Perl | Public. |
| Kid | Python | |
| Lasso | OmniPilot | Proprietary. |
| Basic Server Side Includes (SSI) | The basic directives fix a "standard". | Embedded simple language, if exclude exec directive. |
| Basic Edge Side Includes (ESI) | A SSI-like and alternative "basic language". | Embedded simple language. |
| Smarty | PHP | Public. Embedded complex language. |
| Template Alloy | Perl | Public. Embedded complex language. Supports various languages includind Template::Toolkit, HTML::Template, Text::Tmpl, as well as Velocity Template Language |
| Template Power | PHP | Public. Web template#Complex templates. |
| Template Toolkit | Perl | Public. Embedded complex language. |
| StringTemplate | Python | Public. Embedded iterable language. |
| Template Attribute Language (TAL) | Zope, Python, Java, Perl, PHP, XSLT | Public; a.k.a. Zope Page Templates (ZPT); see also TAL Expression Syntax (TALES), Macro Expansion TAL (METAL) |
| Topsite | Python | Public. |
| PHPlib | PHPlib | Public. Embedded iterable language. |
| WebMacro | Java | Public. Embedded iterable language. |
| WebObjects | Java | Use the WebObjects Builder as engine. |
| Velocity (Jakarta/Apache) | Java | Public. Use VTL - Velocity Template Language. |
| Vignette | Proprietary. | Commercial solution. Embedded complex language. |
| VlibTemplate | PHP | Public. |
| XSLT (standard language) | Any with an XSLT parser | Standard. Event-driven programable language. |
| XQuery (standard language) | Any with an XQuery parser | Standard. Embedded programable language. |
| Merge On Browse | AJAX compatible browser | Public. Cross browser, client side templating language which uses AJAX 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 (ASP) | Proprietary (Microsoft platform). See also: VBScript, Javascript, PerlScript, etc. extensions for ASP. |
| eRuby | Public (Ruby). |
| ColdFusion (CFM) | Proprietary. |
| JavaServer Pages (JSP) | Public, Java platform. |
| Active Perl | Public. |
| PHP | Public. |
| OpenACS | Public (Tcl). |
There are also preprocessors used as server-side template engines. Examples:
| Preprocessor | Notes |
|---|---|
| C preprocessor | Public. Embedded iterable language. |
| M4 | Public. Embedded complex language. |
The more simple form are transclusions (HTML frames). In other cases it need Dynamic web pages to run.
Examples:
No comments have been added.