Content deleted Content added
Rutuja201700 (talk | contribs) Tag: Reverted |
→Overview: clarification: similar visual format |
||
(20 intermediate revisions by 16 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]] allows web designers and developers to work with ''web templates'' to automatically generate custom [[web page]]s, such as the results from a search. This reuses static web page elements while defining dynamic elements based on [[HTTP request|web request]] parameters.
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===
Line 77 ⟶ 81:
[[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:
Line 300 ⟶ 309:
* [http://www.simple-is-better.org/template/ Comparisons/benchmarks of some Python template-engines and some generic thoughts about template-engines]
* [http://web-mode.org/ web-mode.el is an emacs major for editing web templates]
[[Category:Scripting languages]]
[[Category:Template engines|*]]
|