Content deleted Content added
→Static HTML Editors: remove unneeded table |
→Overview: clarification: similar visual format |
||
(29 intermediate revisions by 21 users not shown) | |||
Line 8:
[[File:TempEngWeb016.svg|thumb|The basic process for a server-side '''web templating system''': content (from a [[database]]), and "presentation specifications" (in a '''web template'''), are combined (through the [[template processor|template engine]]) to mass-produce web documents.]]
A '''web template system''' in [[web publishing]]
Web templates support static content, providing basic structure and appearance. Developers can implement templates from [[content management system]]s, [[web application framework]]s, and [[HTML editor]]s.
Line 17:
* ''[[Template resource]]'': ''web template''s specified according to a [[template language]];
The template and content resources are processed and combined by the template engine to mass-produce web documents, each with a similar visual format. For purposes of this article, web documents include any of various output formats for transmission over the web via [[Hypertext Transfer Protocol|HTTP]], [[HTTPS]], or another [[Internet Protocol|Internet protocol]].
===Template engine===
{{Excerpt|Template processor}}
== Example ==
With the model typically held in a relational database, the remaining components of the [[model–view–controller|MVC]] architecture are the control and view. In the simplest of systems these two are not separated.
For example, the view template may look like this:
<syntaxhighlight lang="
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
Line 53 ⟶ 56:
A web browser and web server are a [[client–server]] architecture. Sites often also use a [[web cache]] to improve performance. Five templating system types are classified based on when they replace placeholders with real content and assemble pages.
* Server-side
* Client-side
* Edge-side
* Outside server
* Distributed
Template languages may be:
Line 66 ⟶ 69:
The source code of the [[Template engine (web)|template engine]] can be proprietary or [[open source]].
Many template systems are a component of a larger programming platform or framework. They are referred to as the "platform's template system".
===Language support===
[[Programming languages]] such as [[Perl]], [[Ruby (programming language)|Ruby]], [[C (programming language)|C]], and [[Java (programming language)|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.
===Static site generators===
{{Main|Static site generator}}
Static site generators are engines that use flat text input files like [[markdown]] and [[asciidoc]] to generate a [[static web page]]. Examples of this include [[Jekyll (software)|Jekyll]] (
===Static HTML Editors===
[[File:StaticTemplates.gif|thumb|right|Outside server template system architecture.]]
[[HTML editor]]s often use web template systems to produce only [[static web page]]s.
[[Microsoft FrontPage|FrontPage]] and [[Macromedia Dreamweaver|Dreamweaver]] were once the most popular editors with template sub-systems.
Many ''server-side template systems'' have an option to publish output pages on the server, where the published pages are [[static web page|static]]. This is common on [[content management system]]s, like [[Vignette (software)|Vignette]], but is not considered out-server generation. In the majority of cases, this "publish option" doesn't interfere with the ''template system'', and it can be made by external software, as [[Wget]].
Line 104 ⟶ 108:
| [[Python (programming language)|Python]]
| Use the "Django template language".
|-
| EJS (Embedded JavaScript)
| [[JavaScript]]
| Public. [[Web template#Template languages|Embedded complex language]].
|-
| [[FreeMarker]]
Line 111 ⟶ 119:
| [[Facelets]]
| [[Jakarta EE]]
| Public. Part of [[Jakarta
|-
| [[Genshi (Templating Language)|Genshi]]
Line 167 ⟶ 175:
| Topsite
| [[Python (programming language)|Python]]
| Public. ''"As of 2008-02-20, this project is no longer under active development."''<ref>{{cite web|last=jodyburns|title=Topsite Templating System|url=
|-
| [[Twig (template engine)|Twig]]
Line 214 ⟶ 222:
|-
| [[ColdFusion Markup Language]] (CFM)
| Public ([[Lucee]], [[Railo]],
|-
| [[Jakarta Server Pages]] (JSP)
Line 248 ⟶ 256:
===Client-side systems===
[[File:ClientSideTemplates.gif|thumb|right|Client-side and [[Distributed computing|distributed]] (decentralized) template system.]]
{{see also|JavaScript templating}}
Many web browsers can apply an [[XSLT]] stylesheet to XML data that transforms the data into an XHTML document, thereby providing template functionality in the browser itself.<br />
Other systems implement template functionality in the browser using [[JavaScript]] or another [[client-side scripting]] language, including:
|