annotate doc/plugin.txt @ 448:1154f2aadb6c trunk

Add support for HTML5 doctype.
author cmlenz
date Fri, 13 Apr 2007 11:54:02 +0000
parents ec7890aa7c0b
children e9db4aca70f0
rev   line source
445
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
1 .. -*- mode: rst; encoding: utf-8 -*-
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
2
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
3 ===========================
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
4 Using the Templating Plugin
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
5 ===========================
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
6
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
7 While you can easily use Genshi templating through the APIs provided directly
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
8 by Genshi, in some situations you may want to use Genshi through the template
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
9 engine plugin API. Note though that this considerably limits the power and
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
10 flexibility of Genshi templates (for example, there's no good way to use filters
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
11 such as Genshi's `HTMLFormFiller`_ when the plugin
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
12 API is sitting between your code and Genshi).
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
13
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
14 .. _`HTMLFormFiller`: filters.html>#html-form-filler
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
15
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
16
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
17 .. contents:: Contents
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
18 :depth: 2
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
19 .. sectnum::
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
20
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
21
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
22 Introduction
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
23 ============
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
24
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
25 Most Python web frameworks (with the notable exception of Django_) support
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
26 a variety of different templating engines through the `Template Engine Plugin
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
27 API`_, which was first developed by the Buffet_ and TurboGears_ projects.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
28
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
29 .. _`Template Engine Plugin API`: http://docs.turbogears.org/1.0/TemplatePlugins
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
30 .. _`Django`: http://www.djangoproject.com/
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
31 .. _`Buffet`: http://projects.dowski.com/projects/buffet
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
32 .. _`TurboGears`: http://www.turbogears.org/
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
33
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
34 Genshi supports this API out of the box, so you can use it in frameworks like
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
35 TurboGears or `Pylons`_ without installing any additional packages. A small
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
36 example TurboGears application is included in the ``examples`` directory of
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
37 source distributions of Genshi.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
38
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
39 .. _`Pylons`: http://pylonshq.com/
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
40
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
41
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
42 Usage
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
43 =====
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
44
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
45 The way you use Genshi through the plugin API depends very much on the framework
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
46 you're using. In general, the approach will look something like the following:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
47
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
48 (1) Configure Genshi as the default (or an additional) template engine
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
49 (2) Optionally specify Genshi-specific `configuration options`_
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
50 (3) For any given *view* or *controller* (or whatever those are called in your
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
51 framework of choice), specify the name of the template to use and which data
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
52 should be made available to it.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
53
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
54 For point 1, you'll have to specify the *name* of the template engine plugin.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
55 For Genshi, this is **"genshi"**. However, because Genshi supports both markup
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
56 and text templates, it also provides two separate plugins, namely
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
57 **"genshi-markup"** and **"genshi-text"** (the "genshi" name is just an
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
58 alias for "genshi-markup").
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
59
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
60 Usually, you can choose a default template engine, but also use a different
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
61 engine on a per-request basis. So to use markup templates in general, but a text
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
62 template in a specific controller, you'd configure "genshi" as the default
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
63 template engine, and specify "genshi-text" for the controllers that should use
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
64 text templates. How exactly this works depends on the framework in use.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
65
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
66 When rendering a specific template in a controller (point 3 above), you may also
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
67 be able to pass additional options to the plugin. This includes the ``format``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
68 keyword argument, which Genshi will use to override the configured default
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
69 serialization method. In combination with specifying the "genshi-text" engine
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
70 name as explained above, you would use this to specify the "text" serialization
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
71 method when you want to use a text template. Or you'd specify "xml" for the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
72 format when you want to produce an Atom feed or other XML content.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
73
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
74
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
75 Extra Implicit Objects
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
76 ======================
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
77
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
78 The "genshi-markup" template engine plugin adds some extra functions that are
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
79 made available to all templates implicitly, namely:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
80
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
81 ``HTML(string)``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
82 Parses the given string as HTML and returns a markup stream.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
83 ``XML(string)``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
84 Parses the given string as XML and returns a markup stream.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
85 ``ET(tree)``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
86 Adapts the given `ElementTree`_ object to a markup stream.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
87
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
88 The framework may make additional objects available by default. Consult the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
89 documentation of your framework for more information.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
90
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
91 .. _elementtree: http://effbot.org/zone/element-index.htm
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
92
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
93
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
94 .. _`configuration options`:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
95
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
96 Configuration Options
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
97 =====================
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
98
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
99 The plugin API allows plugins to be configured using a dictionary of strings.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
100 The following is a list of configuration options that Genshi supports. These may
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
101 or may not be made available by your framework. TurboGears 1.0, for example,
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
102 only passes a fixed set of options to all plugins.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
103
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
104 ``genshi.auto_reload``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
105 ----------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
106 Whether the template loader should check the last modification time of template
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
107 files, and automatically reload them if they have been changed. Specify "yes"
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
108 to enable this reloading (which is the default), or "no" to turn it off.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
109
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
110 .. note:: You may want to disable reloading in a production environment to gain
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
111 a slight (and possible even negligible) improvement in loading
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
112 performance, but then you'll have to manually restart the server
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
113 process anytime the templates are updated.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
114
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
115 ``genshi.default_doctype``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
116 --------------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
117 The default ``DOCTYPE`` declaration to use in generated markup. Valid values
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
118 are:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
119
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
120 **html-strict** (or just **html**)
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
121 HTML 4.01 Strict
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
122 **html-transitional**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
123 HTML 4.01 Transitional
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
124 **xhtml-strict** (or just **xhtml**)
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
125 XHTML 1.0 Strict
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
126 **xhtml-transitional**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
127 XHTML 1.0 Transitional
448
1154f2aadb6c Add support for HTML5 doctype.
cmlenz
parents: 445
diff changeset
128 **html5**
1154f2aadb6c Add support for HTML5 doctype.
cmlenz
parents: 445
diff changeset
129 HTML5 (as `proposed`_ by the WHAT-WG)
1154f2aadb6c Add support for HTML5 doctype.
cmlenz
parents: 445
diff changeset
130
1154f2aadb6c Add support for HTML5 doctype.
cmlenz
parents: 445
diff changeset
131 .. _proposed: http://www.whatwg.org/specs/web-apps/current-work/
445
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
132
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
133 .. note:: While using the Genshi API directly allows you to specify document
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
134 types not in that list, the *dictionary-of-strings* based
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
135 configuration utilized by the plugin API unfortunately limits your
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
136 choices to those listed above.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
137
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
138 The default behavior is to not do any prepending/replacing of a ``DOCTYPE``, but
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
139 rather pass through those defined in the templates (if any). If this option is
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
140 set, however, any ``DOCTYPE`` declarations in the templates are replaced by the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
141 specified document type.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
142
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
143 Note that with (X)HTML, the presence and choice of the ``DOCTYPE`` can have a
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
144 more or less dramatic impact on how modern browsers render pages that use CSS
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
145 style sheets. In particular, browsers may switch to *quirks rendering mode* for
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
146 certain document types, or when the ``DOCTYPE`` declaration is missing
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
147 completely.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
148
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
149 For more information on the choice of the appropriate ``DOCTYPE``, see:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
150
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
151 * `Recommended DTDs to use in your Web document <http://www.w3.org/QA/2002/04/valid-dtd-list.html>`_
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
152 * `Choosing a DOCTYPE <http://htmlhelp.com/tools/validator/doctype.html>`_
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
153
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
154 ``genshi.default_encoding``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
155 ---------------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
156 The default output encoding to use when serializing a template. By default,
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
157 Genshi uses UTF-8. If you need to, you can choose a different charset by
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
158 specifying this option, although that rarely makes sense.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
159
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
160 As Genshi is not in control over what HTTP headers are being sent together with
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
161 the template output, make sure that you (or the framework you're using)
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
162 specify the chosen encoding as part of the outgoing ``Content-Type`` header.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
163 For example::
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
164
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
165 Content-Type: text/html; charset=utf-8
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
166
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
167 .. note:: Browsers commonly use ISO-8859-1 by default for ``text/html``, so even
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
168 if you use Genshi's default UTF-8 encoding, you'll have to let the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
169 browser know about that explicitly
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
170
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
171 ``genshi.default_format``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
172 -------------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
173 Determines the default serialization method to use. Valid options are:
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
174
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
175 **xml**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
176 Serialization to XML
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
177 **xhtml**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
178 Serialization to XHTML in a way that should be compatible with HTML (i.e. the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
179 result can be sent using the ``text/html`` MIME type, but can also be handled
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
180 by XML parsers if you're careful).
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
181 **html**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
182 Serialization to HTML
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
183 **text**
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
184 Plain text serialization
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
185
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
186 See `Understanding HTML, XML and XHTML`_ for an excellent description of the
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
187 subtle differences between the three different markup serialization options. As
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
188 a general recommendation, if you don't have a special requirement to produce
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
189 well-formed XML, you should probably use the **html** option for your web sites.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
190
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
191 .. _`Understanding HTML, XML and XHTML`: http://webkit.org/blog/?p=68
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
192
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
193 ``genshi.lookup_errors``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
194 ------------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
195 The error handling style to use in template expressions. Can be either
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
196 **lenient** (the default) or **strict**. See the `Error Handling`_ section for
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
197 detailled information on the differences between these two modes.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
198
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
199 .. _`Error Handling`: templates.html#template-expressions-and-code-blocks
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
200
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
201 ``genshi.max_cache_size``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
202 -------------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
203 The maximum number of templates that the template loader will cache in memory.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
204 The default value is **25**. You may want to choose a higher value if your web
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
205 site uses a larger number of templates, and you have enough memory to spare.
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
206
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
207 ``genshi.search_path``
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
208 ----------------------
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
209 A colon-separated list of file-system path names that the template loader should
ec7890aa7c0b Add documentation page on the plugin API.
cmlenz
parents:
diff changeset
210 use to search for templates.
Copyright (C) 2012-2017 Edgewall Software