New setting validators, code cleanup.
[docutils.git] / docs / user / config.txt
bloba31634f898e90953fb1016cc29b6651fce64e9ab
1 ========================
2  Docutils Configuration
3 ========================
5 :Author: David Goodger
6 :Contact: docutils-develop@lists.sourceforge.net
7 :Revision: $Revision$
8 :Date: $Date$
9 :Copyright: This document has been placed in the public domain.
11 .. sidebar:: Docutils Security for Web Applications
13    For details about securing web applications, please see `Deploying
14    Docutils Securely <../howto/security.html>`_.
16 .. contents::
19 -------------------
20 Configuration Files
21 -------------------
23 Configuration files are used for persistent customization; they can be
24 set once and take effect every time you use a front-end tool.
25 Configuration file settings override the built-in defaults, and
26 command-line options override all.
28 By default, Docutils checks the following places for configuration
29 files, in the following order:
31 1. ``/etc/docutils.conf``: This is a system-wide configuration file,
32    applicable to all Docutils processing on the system.
34 2. ``./docutils.conf``: This is a project-specific configuration file,
35    located in the current directory.  The Docutils front end has to be
36    executed from the directory containing this configuration file for
37    it to take effect (note that this may have nothing to do with the
38    location of the source files).  Settings in the project-specific
39    configuration file will override corresponding settings in the
40    system-wide file.
42 3. ``~/.docutils``: This is a user-specific configuration file,
43    located in the user's home directory.  Settings in this file will
44    override corresponding settings in both the system-wide and
45    project-specific configuration files.
47 If more than one configuration file is found, all will be read but
48 later entries will override earlier ones.  For example, a "stylesheet"
49 entry in a user-specific configuration file will override a
50 "stylesheet" entry in the system-wide file.
52 The default implicit config file paths can be overridden by the
53 ``DOCUTILSCONFIG`` environment variable.  ``DOCUTILSCONFIG`` should
54 contain a colon-separated (semicolon-separated on Windows) sequence of
55 config file paths to search for; leave it empty to disable implicit
56 config files altogether.  Tilde-expansion is performed on paths.
57 Paths are interpreted relative to the current working directory.
58 Empty path items are ignored.
60 In addition, a configuration file may be explicitly specified with the
61 "--config" command-line option.  This configuration file is read after
62 the three implicit ones listed above (or the ones defined by the
63 ``DOCUTILSCONFIG`` environment variable), and its entries will have
64 priority.
67 -------------------------
68 Configuration File Syntax
69 -------------------------
71 Configuration files are UTF-8-encoded text files.  The
72 ConfigParser.py_ module from Python_'s standard library is used to
73 read them.  From its documentation:
75     The configuration file consists of sections, lead by a "[section]"
76     header and followed by "name: value" entries, with continuations
77     in the style of `RFC 822`_; "name=value" is also accepted.  Note
78     that leading whitespace is removed from values.  ...  Lines
79     beginning with "#" or ";" are ignored and may be used to provide
80     comments.
82 .. Note:: No format string interpolation is done.
84 Configuration file entry names correspond to internal runtime
85 settings.  Underscores ("_") and hyphens ("-") can be used
86 interchangably in entry names; hyphens are automatically converted to
87 underscores.
89 For on/off switch settings (booleans), the following values are
90 recognized:
92 :On: "true", "yes", "on", "1"
93 :Off: "false", "no", "off", "0", "" (no value)
95 List values can be comma- or colon-delimited.
97 strip_classes_, strip_elements_with_classes_, stylesheet_, and
98 stylesheet_path_ use the comma as delimiter,
99 whitespace around list values is stripped. ::
101     strip-classes: ham,eggs,
102     strip-elements-with-classes: sugar, salt, flour
103     stylesheet: html4css1.css,
104                 math.css,
105                 style with spaces.css
106     stylesheet-path: ../styles/my.css, ../styles/funny.css
108 expose_internals_, ignore_ and prune_ use the colon as delimiter and do not
109 strip whitespace::
111     expose_internals: b:c:d
114 Example
115 =======
117 This is the contents of the ``tools/docutils.conf`` configuration file
118 supplied with Docutils::
120     # These entries affect all processing:
121     [general]
122     source-link: yes
123     datestamp: %Y-%m-%d %H:%M UTC
124     generator: on
126     # These entries affect HTML output:
127     [html4css1 writer]
128     # Required for docutils-update, the website build system:
129     stylesheet-path: ../docutils/writers/html4css1/html4css1.css
130     embed-stylesheet: no
131     field-name-limit: 20
133 Individual configuration sections and settings are described in the
134 following section.
137 -------------------------------------
138 Configuration File Sections & Entries
139 -------------------------------------
141 Below are the Docutils runtime settings, listed by config file
142 section.  Any setting may be specified in any section, but only
143 settings from active sections will be used.  Sections correspond to
144 Docutils components (module name or alias; section names are always in
145 lowercase letters).  Each `Docutils application`_ uses a specific set
146 of components; corresponding configuration file sections are applied
147 when the application is used.  Configuration sections are applied in
148 general-to-specific order, as follows:
150 1. `[general]`_
152 2. `[parsers]`_, parser dependencies, and the section specific to the
153    Parser used ("[... parser]").  Currently, only `[restructuredtext
154    parser]`_ is applicable.
156 3. `[readers]`_, reader dependencies, and the section specific to the
157    Reader used ("[... reader]").  For example, `[pep reader]`_ depends
158    on `[standalone reader]`_.
160 4. `[writers]`_, writer dependencies, and the section specific to the
161    Writer used ("[... writer]").  For example, `[pep_html writer]`_
162    depends on `[html4css1 writer]`_.
164 5. `[applications]`_, application dependencies, and the section
165     specific to the Application (front-end tool) in use
166     ("[... application]").
168 Since any setting may be specified in any section, this ordering
169 allows component- or application-specific overrides of earlier
170 settings.  For example, there may be Reader-specific overrides of
171 general settings; Writer-specific overrides of Parser settings;
172 Application-specific overrides of Writer settings; and so on.
174 If multiple configuration files are applicable, the process is
175 completed (all sections are applied in the order given) for each one
176 before going on to the next.  For example, a "[pep_html writer]
177 stylesheet" setting in an earlier configuration file would be
178 overridden by an "[html4css1 writer] stylesheet" setting in a later
179 file.
181 Some knowledge of Python_ is assumed for some attributes.
183 .. _ConfigParser.py:
184    http://www.python.org/doc/current/lib/module-ConfigParser.html
185 .. _Python: http://www.python.org/
186 .. _RFC 822: http://www.rfc-editor.org/rfc/rfc822.txt
187 .. _Docutils application: tools.html
190 [general]
191 =========
193 Settings in the "[general]" section are always applied.
195 _`auto_id_prefix`
196     Prefix prepended to all auto-generated IDs generated within the
197     document, after id_prefix_.
199     Default: "id".  Options: ``--auto-id-prefix`` (hidden, intended
200     mainly for programmatic use).
202 _`datestamp`
203     Include a time/datestamp in the document footer.  Contains a
204     format string for Python's ``time.strftime``.  See the `time
205     module documentation`__.
207     Default: None.  Options: ``--date, -d, --time, -t,
208     --no-datestamp``.
210     Configuration file entry examples::
212         # Equivalent to --date command-line option, results in
213         # ISO 8601 extended format datestamp, e.g. "2001-12-21":
214         datestamp: %Y-%m-%d
216         # Equivalent to --time command-line option, results in
217         # date/timestamp like "2001-12-21 18:43 UTC":
218         datestamp: %Y-%m-%d %H:%M UTC
220         # Disables datestamp; equivalent to --no-datestamp:
221         datestamp:
223     __ http://www.python.org/doc/current/lib/module-time.html
225 _`debug`
226     Report debug-level system messages.
228     Default: don't (None).  Options: ``--debug, --no-debug``.
230 _`dump_internals`
231     At the end of processing, write all internal attributes of the
232     document (``document.__dict__``) to stderr.
234     Default: don't (None).  Options: ``--dump-internals`` (hidden, for
235     development use only).
237 _`dump_pseudo_xml`
238     At the end of processing, write the pseudo-XML representation of
239     the document to stderr.
241     Default: don't (None).  Options: ``--dump-pseudo-xml`` (hidden,
242     for development use only).
244 _`dump_settings`
245     At the end of processing, write all Docutils settings to stderr.
247     Default: don't (None).  Options: ``--dump-settings`` (hidden, for
248     development use only).
250 _`dump_transforms`
251     At the end of processing, write a list of all transforms applied
252     to the document to stderr.
254     Default: don't (None).  Options: ``--dump-transforms`` (hidden,
255     for development use only).
257 _`error_encoding`
258     The text encoding for error output.
260     Default: "ascii".  Options: ``--error-encoding, -e``.
262 _`error_encoding_error_handler`
263     The error handler for unencodable characters in error output.  See
264     output_encoding_error_handler_ for acceptable values.
266     Default: "backslashreplace"
267     Options: ``--error-encoding-error-handler,
268     --error-encoding, -e``.
270 _`exit_status_level`
271     A system message level threshold; non-halting system messages at
272     or above this level will produce a non-zero exit status at normal
273     exit.  Exit status is the maximum system message level plus 10 (11
274     for INFO, etc.).
276     Default: disabled (5).  Options: ``--exit-status``.
278 _`expose_internals`
279     List of internal attribues to expose as external attributes (with
280     "internal:" namespace prefix).  To specify multiple attributes in
281     configuration files, use colons to separate names; on the command
282     line, the option may be used more than once.
284     Default: don't (None).  Options: ``--expose-internal-attribute``
285     (hidden, for development use only).
287 _`footnote_backlinks`
288     Enable or disable backlinks from footnotes and citations to their
289     references.
291     Default: enabled (1).  Options: ``--footnote-backlinks,
292     --no-footnote-backlinks``.
294 _`generator`
295     Include a "Generated by Docutils" credit and link in the document
296     footer.
298     Default: off (None).  Options: ``--generator, -g,
299     --no-generator``.
301 _`halt_level`
302     The threshold at or above which system messages are converted to
303     exceptions, halting execution immediately.  If `traceback`_ is
304     set, the exception will propagate; otherwise, Docutils will exit.
306     Default: severe (4).  Options: ``--halt, --strict``.
308 _`id_prefix`
309     Prefix prepended to all IDs generated within the document.  See
310     also auto_id_prefix_.
312     Default: "" (empty).  Options: ``--id-prefix`` (hidden, intended
313     mainly for programmatic use).
315 _`input_encoding`
316     The text encoding for input.
318     Default: auto-detect (None).  Options: ``--input-encoding, -i``.
320 _`input_encoding_error_handler`
321     The error handler for undecodable characters in the input.
322     Acceptable values include:
324     strict
325         Raise an exception in case of an encoding error.
326     replace
327         Replace malformed data with the official Unicode replacement
328         character, U+FFFD.
329     ignore
330         Ignore malformed data and continue without further notice.
332     Acceptable values are the same as for the "error" parameter of
333     Python's ``unicode`` function; other values may be defined in
334     applications or in future versions of Python.
336     Default: "strict".  Options: ``--input-encoding-error-handler,
337     --input-encoding, -i``.
339 _`language_code`
340     Case-insensitive `language tag`_ as defined in `BCP 47`_.
342     Sets the document language, also used for localized directive and
343     role names as well as Docutils-generated text.
345     A typical language identifier consists of a 2-letter language code
346     from `ISO 639`_ (3-letter codes can be used if no 2-letter code
347     exists). The language identifier can have an optional subtag,
348     typically for variations based on country (from `ISO 3166`_
349     2-letter country codes).  Avoid subtags except where they add
350     useful distinguishing information. Examples of language tags
351     include "fr", "en-GB", "pt_br" (the same as "pt-BR"), and
352     "de-1901" (German with pre-1998 spelling).
354     The language of document parts can be specified with a
355     "language-<language tag>" `class attribute`_, e.g.
356     ``.. class:: language-el-polyton`` for a quote in polytonic Greek.
358     Default: English ("en").  Options: ``--language, -l``.
360     .. _class attribute: ../ref/doctree.html#classes
362 _`output_encoding`
363     The text encoding for output.
365     Default: "UTF-8".  Options: ``--output-encoding, -o``.
367 _`output_encoding_error_handler`
368     The error handler for unencodable characters in the output.
369     Acceptable values include:
371     strict
372         Raise an exception in case of an encoding error.
373     replace
374         Replace malformed data with a suitable replacement marker,
375         such as "?".
376     ignore
377         Ignore malformed data and continue without further notice.
378     xmlcharrefreplace
379         Replace with the appropriate XML character reference, such as
380         "``&#8224;``".
381     backslashreplace
382         Replace with backslashed escape sequences, such as "``\u2020``".
384     Acceptable values are the same as for the "error" parameter of
385     Python's ``encode`` string method; other values may be defined in
386     applications or in future versions of Python.
388     Default: "strict".  Options: ``--output-encoding-error-handler,
389     --output-encoding, -o``.
391 _`record_dependencies`
392     Path to a file where Docutils will write a list of files that were
393     required to generate the output, e.g. included files or embedded
394     stylesheets [#dependencies]_. [#pwd]_ The format is one path per
395     line with forward slashes as separator, the encoding is ``utf8``.
397     Set to ``-`` in order to write dependencies to stdout.
399     This option is particularly useful in conjunction with programs like
400     ``make`` using ``Makefile`` rules like::
402       ham.html: ham.txt $(shell cat hamdeps.txt)
403         rst2html.py --record-dependencies=hamdeps.txt ham.txt ham.html
405     If the filesystem encoding differs from utf8, replace the ``cat``
406     command with a call to a converter, e.g.::
408       $(shell iconv -f utf8 -t latin1 hamdeps.txt)
410     Default: None.  Option: ``--record-dependencies``.
412 _`report_level`
413     Report system messages at or higher than <level>:
415     1  info
416     2  warning
417     3  error
418     4  severe
419     5  none
421     Default: warning (2).  Options: ``--report, -r, --verbose, -v,
422     --quiet, -q``.
424 _`sectnum_xform`
425     Enable or disable automatic section numbering by Docutils
426     (docutils.transforms.parts.SectNum) associated with the `sectnum
427     directive`_.
429     If disabled, section numbers might be added to the output by the
430     renderer (e.g. LaTeX or via a CSS style definition).
432     Default: enabled (1).  Options: ``--section-numbering``,
433     ``--no-section-numbering``.
435     .. _sectnum directive: ../ref/rst/directives.html#sectnum
437 _`source_link`
438     Include a "View document source" link in the document footer.  URL
439     will be relative to the destination.
441     Default: don't (None).  Options: ``--source-link, -s,
442     --no-source-link``.
444 _`source_url`
445     An explicit URL for a "View document source" link, used verbatim.
447     Default: compute if source_link (None).  Options: ``--source-url,
448     --no-source-link``.
450 _`strict_visitor`
451     When processing a document tree with the Visitor pattern, raise an
452     error if a writer does not support a node type listed as optional.
453     For transitional development use.
455     Default: disabled (None).  Option: ``--strict-visitor`` (hidden,
456     for development use only).
458 _`strip_classes`
459     Comma-separated list of "classes" attribute values to remove from
460     all elements in the document tree.
461     The command line option may be used more than once.
463     .. WARNING:: Potentially dangerous; use with caution.
465     Default: disabled (None).  Option: ``--strip-class``.
467 _`strip_comments`
468     Enable the removal of comment elements from the document tree.
470     Default: disabled (None).  Options: ``--strip-comments``,
471     ``--leave-comments``.
473 _`strip_elements_with_classes`
474     Comma-separated list of "classes" attribute values;
475     matching elements are removed from the document tree.
476     The command line option may be used more than once.
478     .. WARNING:: Potentially dangerous; use with caution.
480     Default: disabled (None).  Option: ``--strip-element-with-class``.
482 _`title`
483     The document title as metadata, which does not become part of the
484     document body.  It overrides a document-supplied title.  For
485     example, in HTML output the metadata document title appears in the
486     title bar of the browser window.
488     Default: none.  Option: ``--title``.
490 _`toc_backlinks`
491     Enable backlinks from section titles to table of contents entries
492     ("entry"), to the top of the TOC ("top"), or disable ("none").
494     Default: "entry".  Options: ``--toc-entry-backlinks,
495     --toc-top-backlinks, --no-toc-backlinks``.
497 _`traceback`
498     Enable Python tracebacks when halt-level system messages and other
499     exceptions occur.  Useful for debugging, and essential for issue
500     reports.  Exceptions are allowed to propagate, instead of being
501     caught and reported (in a user-friendly way) by Docutils.
503     Default: disabled (None) unless Docutils is run programmatically
504     using the `Publisher Interface`_.  Options: ``--traceback,
505     --no-traceback``.
507     .. _Publisher Interface: ../api/publisher.html
509 _`warning_stream`
510     Path to a file for the output of system messages (warnings)
511     [#pwd]_.
513     Default: stderr (None).  Options: ``--warnings``.
516 [parsers]
517 ---------
519 Docutils currently supports only one parser, for reStructuredText.
522 [restructuredtext parser]
523 `````````````````````````
525 _`file_insertion_enabled`
526     Enable or disable directives that insert the contents of external
527     files, such as the "include_" & "raw_".  A "warning" system
528     message (including the directive text) is inserted instead.  (See
529     also raw_enabled_ for another security-relevant setting.)
531     Default: enabled (1).  Options: ``--file-insertion-enabled,
532     --no-file-insertion``.
534     .. _include: ../ref/rst/directives.html#include
535     .. _raw: ../ref/rst/directives.html#raw
537 _`pep_references`
538     Recognize and link to standalone PEP references (like "PEP 258").
540     Default: disabled (None); enabled (1) in PEP Reader.  Options:
541     ``--pep-references``.
543 _`pep_base_url`
544     Base URL for PEP references.
546     Default: "http://www.python.org/peps/".  Option:
547     ``--pep-base-url``.
549 _`pep_file_url_template`
550     Template for PEP file part of URL, interpolated with the PEP
551     number and appended to pep_base_url_.
553     Default: "pep-%04d".  Option: ``--pep-file-url``.
555 _`raw_enabled`
556     Enable or disable the "raw_" directive.  A "warning" system
557     message (including the directive text) is inserted instead.  (See
558     also file_insertion_enabled_ for another security-relevant
559     setting.)
561     Default: enabled (1).  Options: ``--raw-enabled, --no-raw``.
563 _`rfc_references`
564     Recognize and link to standalone RFC references (like "RFC 822").
566     Default: disabled (None); enabled (1) in PEP Reader.  Options:
567     ``--rfc-references``.
569 _`rfc_base_url`
570     Base URL for RFC references.
572     Default: "http://www.faqs.org/rfcs/".  Option: ``--rfc-base-url``.
574 _`tab_width`
575     Number of spaces for hard tab expansion.
577     Default: 8.  Options: ``--tab-width``.
579 _`trim_footnote_reference_space`
580     Remove spaces before footnote references.
582     Default: don't (None); may be overriden by a writer-specific
583     footnote_references__ default though.  Options:
584     ``--trim-footnote-reference-space,
585     --leave-footnote-reference-space``.
587 __ `footnote_references [latex2e writer]`_
590 _`syntax_highlight`
592     Token type names used by Pygments_ when parsing contents of the code_
593     directive and role.
595     Supported values:
597     long
598       Use hierarchy of long token type names.
599     short
600       Use short token type names. (For use with
601       `Pygments-generated stylesheets`_.)
602     none
603       No code parsing. Use this to avoid the "Pygments not
604       found" warning when Pygments is not installed.
606     Default: "long".  Option: ``--syntax-highlight``.
608 .. _Pygments: http://pygments.org/
609 .. _code: ../ref/rst/directives.html#code
610 .. _Pygments-generated stylesheets:
611    http://pygments.org/docs/cmdline/#generating-styles
614 [readers]
615 ---------
618 [standalone reader]
619 ```````````````````
621 _`docinfo_xform`
622     Enable or disable the bibliographic field list transform
623     (docutils.transforms.frontmatter.DocInfo).
625     Default: enabled (1).  Options: ``--no-doc-info``.
627 _`doctitle_xform`
628     Enable or disable the promotion of a lone top-level section title
629     to document title (and subsequent section title to document
630     subtitle promotion; docutils.transforms.frontmatter.DocTitle).
632     Default: enabled (1).  Options: ``--no-doc-title``.
634 _`sectsubtitle_xform`
636     Enable or disable the promotion of the title of a lone subsection
637     to a subtitle (docutils.transforms.frontmatter.SectSubTitle).
639     Default: disabled (0).  Options: ``--section-subtitles,
640     --no-section-subtitles``.
643 [pep reader]
644 ````````````
646 The `pep_references`_ and `rfc_references`_ settings
647 (`[restructuredtext parser]`_) are set on by default.
650 [python reader]
651 ```````````````
653 Under construction.
656 [writers]
657 ---------
659 [docutils_xml writer]
660 `````````````````````
662 .. Caution::
664    * In Python versions older than 2.7.3 and 3.2.3, the newlines_ and
665      indents_ options may adversely affect whitespace; use them only for
666      reading convenience (see http://bugs.python.org/issue4147).
668    * The XML declaration carries text encoding information, without which
669      standard tools may be unable to read the generated XML.
671 _`doctype_declaration`
672     Generate XML with a DOCTYPE declaration.
674     Default: do (1).  Options: ``--no-doctype``.
676 _`indents`
677     Generate XML with indents and newlines.
679     Default: don't (None).  Options: ``--indents``.
681 _`newlines`
682     Generate XML with newlines before and after tags.
684     Default: don't (None).  Options: ``--newlines``.
686 .. _xml_declaration [docutils_xml writer]:
688 xml_declaration
689     Generate XML with an XML declaration.  Also defined for the
690     `HTML Writer`__.
692     Default: do (1).  Options: ``--no-xml-declaration``.
694     __ `xml_declaration [html4css1 writer]`_
697 [html4css1 writer]
698 ``````````````````
700 .. _attribution [html4css1 writer]:
702 attribution
703     Format for block quote attributions: one of "dash" (em-dash
704     prefix), "parentheses"/"parens", or "none".  Also defined for the
705     `LaTeX Writer`__.
707     Default: "dash".  Options: ``--attribution``.
709     __ `attribution [latex2e writer]`_
711 _`cloak_email_addresses`
712     Scramble email addresses to confuse harvesters.  In the reference
713     URI, the "@" will be replaced by %-escapes (as of RFC 1738).  In
714     the visible text (link text) of an email reference, the "@" and
715     all periods (".") will be surrounded by ``<span>`` tags.
716     Furthermore, HTML entities are used to encode these characters in
717     order to further complicate decoding the email address.  For
718     example, "abc@example.org" will be output as::
720         <a class="reference" href="mailto:abc&#37;&#52;&#48;example&#46;org">
721         abc<span>&#64;</span>example<span>&#46;</span>org</a>
723     .. Note:: While cloaking email addresses will have little to no
724        impact on the rendering and usability of email links in most
725        browsers, some browsers (e.g. the ``links`` browser) may decode
726        cloaked email addresses incorrectly.
728     Default: don't cloak (None).  Option: ``--cloak-email-addresses``.
730 _`compact_lists`
731     Remove extra vertical whitespace between items of bullet lists and
732     enumerated lists, when list items are all "simple" (i.e., items
733     each contain one paragraph and/or one "simple" sublist only).  The
734     behaviour can be specified directly via "class" attributes (values
735     "compact" and "open") in the document.
737     Default: enabled (1).  Options: ``--compact-lists,
738     --no-compact-lists``.
740 _`compact_field_lists`
741     Remove extra vertical whitespace between items of field lists that
742     are "simple" (i.e., all field bodies each contain at most one
743     paragraph).  The behaviour can be specified directly via "class"
744     attributes (values "compact" and "open") in the document.
746     Default: enabled (1).  Options: ``--compact-field-lists,
747     --no-compact-field-lists``.
749 .. _embed_stylesheet [html4css1 writer]:
751 embed_stylesheet
752     Embed the stylesheet in the output HTML file.  The stylesheet file
753     must specified by the stylesheet_path__ setting and must be
754     accessible during processing.
755     Also defined for the `LaTeX Writer`__.
757     Default: enabled.  Options: ``--embed-stylesheet,
758     --link-stylesheet``.
760     __ `stylesheet_path [html4css1 writer]`_
761     __ `embed_stylesheet [latex2e writer]`_
763 _`field_name_limit`
764     The maximum width (in characters) for one-column field names.
765     Longer field names will span an entire row of the table used to
766     render the field list.  0 indicates "no limit".  See also
767     option_limit_.
769     Default: 14 characters.  Option: ``--field-name-limit``.
771 .. _footnote_references [html4css1 writer]:
773 footnote_references
774     Format for footnote references, one of "superscript" or
775     "brackets".  Also defined for the `LaTeX Writer`__.
777     Overrides [#override]_ trim_footnote_reference_space_, if
778     applicable. [#footnote_space]_
780     Default: "brackets".  Option: ``--footnote-references``.
782     __ `footnote_references [latex2e writer]`_
784 _`initial_header_level`
785     The initial level for header elements.  This does not affect the
786     document title & subtitle; see doctitle_xform_.
788     Default: 1 (for "<h1>").  Option: ``--initial-header-level``.
790 _`math_output`
791     The format of mathematical content (`math directive`_ and role) in
792     the output document. Supported values are (case insensitive):
794     :MathJax:
795       Format math for display with MathJax_, a JavaScript-based math
796       rendering engine that uses HTML/CSS, JavaScript, and unicode
797       fonts for high-quality typesetting that is scalable and prints
798       at full resolution.
800       Pro:
801         Works 'out of the box' across multiple browsers and platforms.
803         Supports a large subset of LaTeX math commands and constructs
804         (see http://www.mathjax.org/docs/1.1/tex.html).
806       Con:
807         Requires an Internet connection (or a local MathJax
808         installation and configuration).
810         Downloads JavaScript code from a third-party site.
812     :HTML:
813       Format math in standard HTML enhanced by CSS rules
815       Requires the ``math.css`` stylesheet (stored in the same
816       installation-dependent directory as the `default stylesheet`__).
818       .. __: `stylesheet_path [html4css1 writer]`_
820     :MathML:
821       Embed math content as presentational MathML_.
823       Pro:
824         The W3C recommendation for math on the web.
826         Self-contained documents (no JavaScript, no external downloads).
828       Con:
829         Docutil's latex2mathml converter supports only a small
830         subset of LaTeX syntax.
832         With the "html4css1" writer, the resulting HTML document does
833         not validate, as there is no DTD for MathML + XHTML
834         Transitional. However, MathML-enabled browsers will render it
835         fine.
837     :LaTeX:
838       Include literal LaTeX code.
840       The failsave fallback.
842     Default: MathJax  Option: ``--math-output``.
844     New in Docutils 0.8.
846     .. _math directive: ../ref/rst/directives.html#math
847     .. _MathJax: http://www.mathjax.org/
848     .. _MathPlayer: http://www.dessci.com/en/products/mathplayer/
849     .. _MathML: http://www.w3.org/TR/MathML/
851 _`option_limit`
852     The maximum width (in characters) for options in option lists.
853     Longer options will span an entire row of the table used to render
854     the option list.  0 indicates "no limit".  See also
855     field_name_limit_.
857     Default: 14 characters.  Option: ``--option-limit``.
859 .. _stylesheet [html4css1 writer]:
861 stylesheet
862     A comma-separated list of CSS stylesheet URLs, used verbatim.
863     Also defined for the `LaTeX Writer`__.
865     Overrides also stylesheet-path__. [#override]_
867     Default: None.  Options: ``--stylesheet``.
869     __ `stylesheet [latex2e writer]`_
870     __ `stylesheet_path [html4css1 writer]`_
872 .. _stylesheet_path [html4css1 writer]:
874 stylesheet_path
875     A comma-separated list of paths [#pwd]_ to CSS stylesheets.
876     If embed_stylesheet__ is False, paths are rewritten relative to the
877     output HTML file. Also defined for the `LaTeX Writer`__.
879     Also overrides "stylesheet". [#override]_
880     Pass an empty string (to either "stylesheet" or "stylesheet_path") to
881     deactivate stylesheet inclusion.
883     Default: "html4css1.css" in the docutils/writers/html4css1/
884     directory (installed automatically; for the exact machine-specific
885     path, use the ``--help`` option).  Options: ``--stylesheet-path``.
887     __ `embed_stylesheet [html4css1 writer]`_
888     __ `stylesheet_path [latex2e writer]`_
890 .. _table_style [html4css1 writer]:
892 table_style
893     Added to standard table classes to allow styling with CSS.
894     The default sylesheet defines:
896     borderless
897       no borders around the table.
899     .. TODO: booktabs
900                a line above and below the table and one after the head.
902     Default: "".  Option: ``--table-style``.
904 .. _template [html4css1 writer]:
906 template
907     Path to template file, which must be encoded in UTF-8 [#pwd]_.
908     Also defined for the `LaTeX Writer`__.
910     Default: "template.txt" in the docutils/writers/html4css1/
911     directory (installed automatically; for the exact machine-specific
912     path, use the ``--help`` option).  Options: ``--template``.
914     __ `template [latex2e writer]`_
916 .. _xml_declaration [html4css1 writer]:
918 xml_declaration
919     Generate XML with an XML declaration.  Also defined for the
920     `Docutils XML Writer`__.
922     .. Caution:: The XML declaration carries text encoding
923        information, without which standard tools may be unable to read
924        the generated XML.
926     Default: do (1).  Options: ``--no-xml-declaration``.
928     __ `xml_declaration [docutils_xml writer]`_
931 [pep_html writer]
932 .................
934 The PEP/HTML Writer derives from the standard HTML Writer, and shares
935 all settings defined in the `[html4css1 writer]`_ section.  The
936 "[html4css1 writer]" section of configuration files is processed
937 before the "[pep_html writer]" section.
939 _`no_random`
940     Do not use a random banner image.  Mainly used to get predictable
941     results when testing.
943     Default: random enabled (None).  Options: ``--no-random``
944     (hidden).
946 _`pep_home`
947     Home URL prefix for PEPs.
949     Default: current directory (".").  Options: ``--pep-home``.
951 _`python_home`
952     Python's home URL.
954     Default: parent directory ("..").  Options: ``--python-home``.
956 The PEP/HTML Writer's default for the following settings differ from
957 those of the standard HTML Writer:
959 * ``stylesheet_path``: The default is
960   ``docutils/writers/pep_html/pep.css`` in the installation directory.
961   For the exact machine-specific path, use the ``--help`` option.
963 * ``template``: The default is
964   ``docutils/writers/pep_html/template.txt`` in the installation
965   directory.  For the exact machine-specific path, use the ``--help``
966   option.
969 [s5_html writer]
970 .................
972 The S5/HTML Writer derives from the standard HTML Writer, and shares
973 all settings defined in the `[html4css1 writer]`_ section.  The
974 "[html4css1 writer]" section of configuration files is processed
975 before the "[s5_html writer]" section.
977 _`hidden_controls`
978     Auto-hide the presentation controls in slideshow mode, or or keep
979     them visible at all times.
981     Default: auto-hide (1).  Options: ``--hidden-controls``,
982     ``--visible-controls``.
984 _`current_slide`
985     Enable or disable the current slide indicator ("1/15").
987     Default: disabled (None).  Options: ``--current-slide``,
988     ``--no-current-slide``.
990 _`overwrite_theme_files`
991     Allow or prevent the overwriting of existing theme files in the
992     ``ui/<theme>`` directory.  This has no effect if "theme_url_" is
993     used.
995     Default: keep existing theme files (None).  Options:
996     ``--keep-theme-files``, ``--overwrite-theme-files``.
998 _`theme`
999     Name of an installed S5 theme, to be copied into a ``ui/<theme>``
1000     subdirectory, beside the destination file (output HTML).  Note
1001     that existing theme files will not be overwritten; the existing
1002     theme directory must be deleted manually.
1003     Also overrides the "theme_url_" setting. [#override]_
1005     Default: "default".  Option: ``--theme``.
1007 _`theme_url`
1008     The URL of an S5 theme directory.  The destination file (output
1009     HTML) will link to this theme; nothing will be copied.  Also overrides
1010     the "theme_" setting. [#override]_
1012     Default: None.  Option: ``--theme-url``.
1014 _`view_mode`
1015     The initial view mode, either "slideshow" or "outline".
1017     Default: "slidewhow".  Option: ``--view-mode``.
1019 The S5/HTML Writer's default for the following settings differ
1020 from those of the standard HTML Writer:
1022 * ``compact_lists``: The default here is to disable compact lists.
1024 * ``template``: The default is
1025   ``docutils/writers/s5_html/template.txt`` in the installation
1026   directory.  For the exact machine-specific path, use the ``--help``
1027   option.
1030 [latex2e writer]
1031 ````````````````
1033 _`use_latex_toc`
1034     To get pagenumbers in the table of contents the table of contents
1035     must be generated by LaTeX. Usually latex must be run twice to get
1036     numbers correct.
1038     Default: on.  Options: ``--use-latex-toc, --use-docutils-toc``.
1040 _`use_latex_docinfo`
1041     Attach author and date to the document title
1042     instead of the document info table.
1044     Default: off.  Options: ``--use-latex-docinfo, --use-docutils-docinfo``
1046 _`docutils_footnotes`
1047     Use the Docutils-specific macros ``\DUfootnote`` and
1048     ``\DUfootnotetext`` for footnotes.
1050     Default: on.  Option: ``--docutils-footnotes``.
1052 _`use_latex_footnotes`
1053     Backwards-compatibility alias for docutils_footnotes_ (deprecated).
1055     *Note*: the planned new option _`latex_footnotes` will use the
1056     ``\footnote`` command and footnote numbering by LaTeX.
1058 _`figure_footnotes`
1059     Typeset footnote text in a figure float.
1060     This may lead to footnotes, citations, and figures being
1061     mixed at page foot.
1063     *Deprecated:* This setting will be removed in a future Docutils
1064     version.
1066     Default: off.  Option: ``--figure-footnotes``.
1068 _`use_latex_citations`
1069     Use \cite for citations instead of a simulation with figure-floats.
1071     Default: off.  Options: ``--use-latex-citations, --figure-citations``.
1073 _`use_latex_abstract`
1074     Use LaTeX abstract environment for the document's abstract.
1076     Default: off.  Options: ``--use-latex-abstract, --topic-abstract``.
1078 _`hyperlink_color`
1079     Color of any hyperlinks embedded in text.
1081     * "0" or "false" disable coloring of links. (Links will be marked
1082       by red boxes that are not printed),
1083     * "black" results in â€œinvisible“ links,
1085     Set hyperref_options_ to "draft" to completely disable
1086     hyperlinking.
1088     Default: "blue".  Option: ``--hyperlink-color``.
1090 _`hyperref_options`
1091     Options for the `hyperref TeX package`_. If hyperlink_color_ is
1092     not "false", the expansion of ::
1094       'colorlinks=true,linkcolor=%s,urlcolor=%s' % (
1095          hyperlink_color, self.hyperlink_color
1097     is prepended. For documents typeset in Cyrillic script,
1098     ``--hyperref-options=unicode`` is recommended.
1100     Default: "".   Option: ``--hyperref-options``.
1102     .. _hyperref TeX package: http://tug.org/applications/hyperref/
1104 _`documentclass`
1105     Specify latex documentclass.
1107     Default: "article".  Option: ``--documentclass``.
1109 _`documentoptions`
1110     Specify document options.  Multiple options can be given, separated by
1111     commas.
1113     Default: "a4paper".  Option: ``--documentoptions``.
1115 _`font_encoding`
1116     Specify LaTeX font encoding. Multiple options can be given, separated
1117     by commas. Possible values are "", "T1", "OT1", "LGR,T1" or any other
1118     combination of `LaTeX font encodings`_.
1120     Default: "T1".  Option: ``--font-encoding``.
1122     .. _LaTeX font encodings:
1123        http://mirror.ctan.org/macros/latex/doc/encguide.pdf
1125 .. _embed_stylesheet [latex2e writer]:
1127 embed_stylesheet
1128     Embed the stylesheet(s) in the header of the output file.  The
1129     stylesheets must be accessible during processing.  Currently, this
1130     fails if the file is not available via the given path (i.e. the
1131     file is *not* searched in the `TeX input path`_).
1132     Also defined for the `HTML Writer`__ (with default *on*).
1134     Default: off.  Options: ``--embed-stylesheet, --link-stylesheet``.
1136     __ `embed_stylesheet [html4css1 writer]`_
1138 .. _stylesheet [latex2e writer]:
1140 stylesheet
1141     A comma-separated list of style files.
1142     Also defined for the `HTML Writer`__.
1144     Overrides also stylesheet_path__. [#override]_
1146     If `embed_stylesheet`__ is False (default), the stylesheet files are
1147     referenced with ``\usepackage`` (extension ``.sty`` or no extension) or
1148     ``\input`` (any other extension).
1150     LaTeX will search the specified files in the `TeX input path`_.
1152     Default: no stylesheet ("").  Option: ``--stylesheet``.
1154     __ `stylesheet_path [latex2e writer]`_
1155     __ `embed_stylesheet [latex2e writer]`_
1156     __ `stylesheet [html4css1 writer]`_
1157     .. _TeX input path:
1158        http://www.tex.ac.uk/cgi-bin/texfaq2html?label=what-TDS
1161 .. _stylesheet_path [latex2e writer]:
1163 stylesheet_path
1164     Similar to stylesheet__, however paths [#pwd]_ are rewritten relative to
1165     the output file (if there is a common part in the given path and the
1166     output file path). Also defined for the `HTML Writer`__.
1168     Run ``latex`` from the directory containing the output file. Fails for
1169     files in the TEXINPUTS path; use stylesheet__ in this case.
1171     Also overrides stylesheet__. [#override]_
1173     Default: no stylesheet ("").  Option: ``--stylesheet-path``.
1175     __ `stylesheet [latex2e writer]`_
1176     __ `stylesheet_path [html4css1 writer]`_
1177     __
1178     __ `stylesheet [latex2e writer]`_
1181 _`latex_preamble`
1182     LaTeX code that will be inserted in the document preamble.
1183     Can be used to load packages with options or (re-) define LaTeX
1184     macros without writing a custom style file (new in Docutils 0.7).
1186     Default: Load the "PDF standard fonts" (Times, Helvetica,
1187     Courier)::
1189       \usepackage{mathptmx} % Times
1190       \usepackage[scaled=.90]{helvet}
1191       \usepackage{courier}
1193     Option: ``--latex-preamble``
1196 .. _template [latex2e writer]:
1198 template
1199     Path to template file, which must be encoded in UTF-8 [#pwd]_.
1200     Also defined for the `HTML Writer`__.
1202     Default: "default.tex" in the docutils/writers/latex2e/
1203     directory (installed automatically; for the exact machine-specific
1204     path, use the ``--help`` option).  Options: ``--template``.
1206     __ `template [html4css1 writer]`_
1208 .. _footnote_references [latex2e writer]:
1210 footnote_references
1211     Format for footnote references: one of "superscript" or
1212     "brackets".  Also defined for the `HTML Writer`__.
1214     Overrides [#override]_ trim_footnote_reference_space_, if
1215     applicable [#footnote_space]_.
1217     Default: "superscript".  Option: ``--footnote-references``.
1219     __ `footnote_references [html4css1 writer]`_
1221 .. _attribution [latex2e writer]:
1223 attribution
1224     Format for block quote attributions, the same as for the
1225     html-writer: one of "dash" (em-dash prefix),
1226     "parentheses"/"parens" or "none".  Also defined for the `HTML
1227     Writer`__.
1229     Default: "dash".  Option: ``--attribution``.
1231     __ `attribution [html4css1 writer]`_
1233 _`compound_enumerators`
1234     Enable or disable compound enumerators for nested enumerated lists
1235     (e.g. "1.2.a.ii").
1237     Default: disabled (None).  Options: ``--compound-enumerators``,
1238     ``--no-compound-enumerators``.
1240 _`literal_block_env`
1241     When possibile\ [#]_, use the specified environment for literal-blocks.
1243     Default: "" (quoting of whitespace and special chars)
1244     Option: ``--literal-block-env``
1246    .. [#] A literal-block element, when processed by a Docutils writer might
1247       have it's origin in a markup with "::" syntax or a "..
1248       parsed-literal::" directive.
1250       A LaTeX verbatim environment is only usable if there is no other
1251       markup contained in the literal-block.
1254 _`section_prefix_for_enumerators`
1255     Enable or disable section ("." subsection ...) prefixes for
1256     compound enumerators.  This has no effect unless
1257     `compound_enumerators`_ are enabled.
1259     Default: disabled (None).  Options:
1260     ``--section-prefix-for-enumerators``,
1261     ``--no-section-prefix-for-enumerators``.
1263 _`section_enumerator_separator`
1264     The separator between section number prefix and enumerator for
1265     compound enumerated lists (see `compound_enumerators`_).
1267     Generally it isn't recommended to use both sub-sections and nested
1268     enumerated lists with compound enumerators.  This setting avoids
1269     ambiguity in the situation where a section "1" has a list item
1270     enumerated "1.1", and subsection "1.1" has list item "1".  With a
1271     separator of ".", these both would translate into a final compound
1272     enumerator of "1.1.1".  With a separator of "-", we get the
1273     unambiguous "1-1.1" and "1.1-1".
1275     Default: "-".  Option: ``--section-enumerator-separator``.
1277 .. _table_style [latex2e writer]:
1279 table_style
1280     Specify the drawing of separation lines.
1281     Supported values:
1283     standard
1284       lines around and between cells.
1285     booktabs
1286       a line above and below the table and one after the head.
1287     borderless
1288       no lines.
1290     Default: "standard".  Option: ``--table-style``.
1292 [xetex writer]
1293 .................
1295 The xetex writer derives from the latex2e writer, and shares
1296 all settings defined in the `[latex2e writer]`_ section.  The
1297 "[latex2e writer]" section of configuration files is processed
1298 before the "[xetex writer]" section.
1300 The following settings differ from those of the latex2e writer:
1302 font_encoding
1303     Disabled as XeTeX uses Unicode-encoded fonts.
1305 .. _latex_preamble [xetex writer]:
1307 latex_preamble
1308     LaTeX code that will be inserted in the document preamble.
1310     Default:
1311       Font setup for `Linux Libertine`_,::
1313         % Linux Libertine (free, wide coverage, not only for Linux)
1314         \setmainfont{Linux Libertine O}
1315         \setsansfont{Linux Biolinum O}
1316         \setmonofont[HyphenChar=None]{DejaVu Sans Mono}
1318       The optional argument ``HyphenChar=None`` to the monospace font
1319       prevents word hyphenation in literal text.
1322     Option: ``--latex-preamble``
1324     .. _Linux Libertine: http://www.linuxlibertine.org/
1326 .. _template [xetex writer]:
1328 template
1329     Path to template file.
1331     Default: "xelatex.tex" in the ``docutils/writers/latex2e/``
1332     directory (installed automatically; for the exact machine-specific
1333     path, use the ``--help`` option).  Options: ``--template``.
1336 [pseudoxml writer]
1337 ``````````````````
1339 No settings are defined for this Writer.
1342 [applications]
1343 --------------
1345 [buildhtml application]
1346 ```````````````````````
1348 _`ignore`
1349     List of wildcard (shell globing) patterns, specifying files to
1350     silently ignore.  To specify multiple patterns, use
1351     colon-separated patterns (in configuration files or on the command
1352     line); on the command line, the option may also be used more than
1353     once.
1355     Default: none ([]).  Options: ``--ignore``.
1357 _`prune`
1358     List of directories not to process.  To specify multiple
1359     directories, use colon-separated paths (in configuration files or
1360     on the command line); on the command line, the option may also be
1361     used more than once.
1363     Default: ['.hg', '.bzr', '.git', '.svn', 'CVS'].  Options:
1364     ``--prune``.
1366 _`recurse`
1367     Recursively scan subdirectories, or ignore subdirectories.
1369     Default: recurse (1).  Options: ``--recurse, --local``.
1371 _`silent`
1372     Work silently (no progress messages).  Independent of
1373     "report_level".
1375     Default: show progress (None).  Options: ``--silent``.
1378 [docfactory application]
1379 ````````````````````````
1381 (To be completed.)
1384 Other Settings
1385 ==============
1387 Command-Line Only
1388 -----------------
1390 These settings are only effective as command-line options; setting
1391 them in configuration files has no effect.
1393 _`config`
1394     Path to a configuration file to read (if it exists) [#pwd]_.
1395     Settings may override defaults and earlier settings.  The config
1396     file is processed immediately.  Multiple ``--config`` options may
1397     be specified; each will be processed in turn.
1399     Filesystem path settings contained within the config file will be
1400     interpreted relative to the config file's location (*not* relative
1401     to the current working directory).
1403     Default: None.  Options: ``--config``.
1406 Internal Settings
1407 -----------------
1409 These settings are for internal use only; setting them in
1410 configuration files has no effect, and there are no corresponding
1411 command-line options.
1413 _`_config_files`
1414     List of paths of applied configuration files.
1416     Default: None.  No command-line options.
1418 _`_directories`
1419     (``buildhtml.py`` front end.)  List of paths to source
1420     directories, set from positional arguments.
1422     Default: current working directory (None).  No command-line
1423     options.
1425 _`_disable_config`
1426     Prevent standard configuration files from being read.  For
1427     programmatic use only.
1429     Default: config files enabled (None).  No command-line options.
1431 _`_destination`
1432     Path to output destination, set from positional arguments.
1434     Default: stdout (None).  No command-line options.
1436 _`_source`
1437     Path to input source, set from positional arguments.
1439     Default: stdin (None).  No command-line options.
1442 .. _language tag: http://www.w3.org/International/articles/language-tags/
1443 .. _BCP 47: http://www.rfc-editor.org/rfc/bcp/bcp47.txt
1444 .. _ISO 639: http://www.loc.gov/standards/iso639-2/php/English_list.php
1445 .. _ISO 3166: http://www.iso.ch/iso/en/prods-services/iso3166ma/
1446    02iso-3166-code-lists/index.html
1448 .. [#pwd] Path relative to the working directory of the process at
1449    launch.
1451 .. [#override] The overridden setting will automatically be set to
1452    ``None`` for command-line options and config file settings.  Client
1453    programs which specify defaults that override other settings must
1454    do the overriding explicitly, by assigning ``None`` to the other
1455    settings.
1457 .. [#dependencies] Images are only added to the dependency list if the
1458    reStructuredText parser extracted image dimensions from the file.
1460 .. [#footnote_space] The footnote space is trimmed if the reference
1461    style is "superscript", and it is left if the reference style is
1462    "brackets".
1464    The overriding only happens if the parser supports the
1465    trim_footnote_reference_space option.
1468 ------------------------------
1469 Old-Format Configuration Files
1470 ------------------------------
1472 Formerly, Docutils configuration files contained a single "[options]"
1473 section only.  This was found to be inflexible, and in August 2003
1474 Docutils adopted the current component-based configuration file
1475 sections as described above.  Docutils will still recognize the old
1476 "[options]" section, but complains with a deprecation warning.
1478 To convert existing config files, the easiest way is to change the
1479 section title: change "[options]" to "[general]".  Most settings
1480 haven't changed.  The only ones to watch out for are these:
1482 =====================  =====================================
1483 Old-Format Setting     New Section & Setting
1484 =====================  =====================================
1485 pep_stylesheet         [pep_html writer] stylesheet
1486 pep_stylesheet_path    [pep_html writer] stylesheet_path
1487 pep_template           [pep_html writer] template
1488 =====================  =====================================