Customizable MathJax URL (based on patch by Dmitry Shachnev).
[docutils.git] / docs / user / config.txt
blob2bbb9b74a047a0b7cf9254de0ac3216c3a8a719c
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       A custom URL can be appended after whitespace,
801       for example a local install
802       ``MathJax file:/usr/share/javascript/mathjax/MathJax.js`` or
803       `access the MathJax CDN using a https secure connection`__
804       ``mathjax https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=config=TeX-AMS-MML_HTMLorMML``.
806       __ http://www.mathjax.org/resources/faqs/#problem-https
808       Pro:
809         Works 'out of the box' across multiple browsers and platforms.
811         Supports a large subset of LaTeX math commands and constructs
812         (see http://www.mathjax.org/docs/1.1/tex.html).
814       Con:
815         Requires an Internet connection (or a local MathJax
816         installation and configuration).
818         Downloads JavaScript code from a third-party site.
820     :HTML:
821       Format math in standard HTML enhanced by CSS rules
823       Requires the ``math.css`` stylesheet (stored in the same
824       installation-dependent directory as the `default stylesheet`__).
826       .. __: `stylesheet_path [html4css1 writer]`_
828     :MathML:
829       Embed math content as presentational MathML_.
831       Pro:
832         The W3C recommendation for math on the web.
834         Self-contained documents (no JavaScript, no external downloads).
836       Con:
837         Docutil's latex2mathml converter supports only a small
838         subset of LaTeX syntax.
840         With the "html4css1" writer, the resulting HTML document does
841         not validate, as there is no DTD for MathML + XHTML
842         Transitional. However, MathML-enabled browsers will render it
843         fine.
845     :LaTeX:
846       Include literal LaTeX code.
848       The failsave fallback.
850     Default: MathJax  Option: ``--math-output``.
852     New in Docutils 0.8.
854     .. _math directive: ../ref/rst/directives.html#math
855     .. _MathJax: http://www.mathjax.org/
856     .. _MathPlayer: http://www.dessci.com/en/products/mathplayer/
857     .. _MathML: http://www.w3.org/TR/MathML/
859 _`option_limit`
860     The maximum width (in characters) for options in option lists.
861     Longer options will span an entire row of the table used to render
862     the option list.  0 indicates "no limit".  See also
863     field_name_limit_.
865     Default: 14 characters.  Option: ``--option-limit``.
867 .. _stylesheet [html4css1 writer]:
869 stylesheet
870     A comma-separated list of CSS stylesheet URLs, used verbatim.
871     Also defined for the `LaTeX Writer`__.
873     Overrides also stylesheet-path__. [#override]_
875     Default: None.  Options: ``--stylesheet``.
877     __ `stylesheet [latex2e writer]`_
878     __ `stylesheet_path [html4css1 writer]`_
880 .. _stylesheet_path [html4css1 writer]:
882 stylesheet_path
883     A comma-separated list of paths [#pwd]_ to CSS stylesheets.
884     If embed_stylesheet__ is False, paths are rewritten relative to the
885     output HTML file. Also defined for the `LaTeX Writer`__.
887     Also overrides "stylesheet". [#override]_
888     Pass an empty string (to either "stylesheet" or "stylesheet_path") to
889     deactivate stylesheet inclusion.
891     Default: "html4css1.css" in the docutils/writers/html4css1/
892     directory (installed automatically; for the exact machine-specific
893     path, use the ``--help`` option).  Options: ``--stylesheet-path``.
895     __ `embed_stylesheet [html4css1 writer]`_
896     __ `stylesheet_path [latex2e writer]`_
898 .. _table_style [html4css1 writer]:
900 table_style
901     Added to standard table classes to allow styling with CSS.
902     The default sylesheet defines:
904     borderless
905       no borders around the table.
907     .. TODO: booktabs
908                a line above and below the table and one after the head.
910     Default: "".  Option: ``--table-style``.
912 .. _template [html4css1 writer]:
914 template
915     Path to template file, which must be encoded in UTF-8 [#pwd]_.
916     Also defined for the `LaTeX Writer`__.
918     Default: "template.txt" in the docutils/writers/html4css1/
919     directory (installed automatically; for the exact machine-specific
920     path, use the ``--help`` option).  Options: ``--template``.
922     __ `template [latex2e writer]`_
924 .. _xml_declaration [html4css1 writer]:
926 xml_declaration
927     Generate XML with an XML declaration.  Also defined for the
928     `Docutils XML Writer`__.
930     .. Caution:: The XML declaration carries text encoding
931        information, without which standard tools may be unable to read
932        the generated XML.
934     Default: do (1).  Options: ``--no-xml-declaration``.
936     __ `xml_declaration [docutils_xml writer]`_
939 [pep_html writer]
940 .................
942 The PEP/HTML Writer derives from the standard HTML Writer, and shares
943 all settings defined in the `[html4css1 writer]`_ section.  The
944 "[html4css1 writer]" section of configuration files is processed
945 before the "[pep_html writer]" section.
947 _`no_random`
948     Do not use a random banner image.  Mainly used to get predictable
949     results when testing.
951     Default: random enabled (None).  Options: ``--no-random``
952     (hidden).
954 _`pep_home`
955     Home URL prefix for PEPs.
957     Default: current directory (".").  Options: ``--pep-home``.
959 _`python_home`
960     Python's home URL.
962     Default: parent directory ("..").  Options: ``--python-home``.
964 The PEP/HTML Writer's default for the following settings differ from
965 those of the standard HTML Writer:
967 * ``stylesheet_path``: The default is
968   ``docutils/writers/pep_html/pep.css`` in the installation directory.
969   For the exact machine-specific path, use the ``--help`` option.
971 * ``template``: The default is
972   ``docutils/writers/pep_html/template.txt`` in the installation
973   directory.  For the exact machine-specific path, use the ``--help``
974   option.
977 [s5_html writer]
978 .................
980 The S5/HTML Writer derives from the standard HTML Writer, and shares
981 all settings defined in the `[html4css1 writer]`_ section.  The
982 "[html4css1 writer]" section of configuration files is processed
983 before the "[s5_html writer]" section.
985 _`hidden_controls`
986     Auto-hide the presentation controls in slideshow mode, or or keep
987     them visible at all times.
989     Default: auto-hide (1).  Options: ``--hidden-controls``,
990     ``--visible-controls``.
992 _`current_slide`
993     Enable or disable the current slide indicator ("1/15").
995     Default: disabled (None).  Options: ``--current-slide``,
996     ``--no-current-slide``.
998 _`overwrite_theme_files`
999     Allow or prevent the overwriting of existing theme files in the
1000     ``ui/<theme>`` directory.  This has no effect if "theme_url_" is
1001     used.
1003     Default: keep existing theme files (None).  Options:
1004     ``--keep-theme-files``, ``--overwrite-theme-files``.
1006 _`theme`
1007     Name of an installed S5 theme, to be copied into a ``ui/<theme>``
1008     subdirectory, beside the destination file (output HTML).  Note
1009     that existing theme files will not be overwritten; the existing
1010     theme directory must be deleted manually.
1011     Also overrides the "theme_url_" setting. [#override]_
1013     Default: "default".  Option: ``--theme``.
1015 _`theme_url`
1016     The URL of an S5 theme directory.  The destination file (output
1017     HTML) will link to this theme; nothing will be copied.  Also overrides
1018     the "theme_" setting. [#override]_
1020     Default: None.  Option: ``--theme-url``.
1022 _`view_mode`
1023     The initial view mode, either "slideshow" or "outline".
1025     Default: "slidewhow".  Option: ``--view-mode``.
1027 The S5/HTML Writer's default for the following settings differ
1028 from those of the standard HTML Writer:
1030 * ``compact_lists``: The default here is to disable compact lists.
1032 * ``template``: The default is
1033   ``docutils/writers/s5_html/template.txt`` in the installation
1034   directory.  For the exact machine-specific path, use the ``--help``
1035   option.
1038 [latex2e writer]
1039 ````````````````
1041 _`use_latex_toc`
1042     To get pagenumbers in the table of contents the table of contents
1043     must be generated by LaTeX. Usually latex must be run twice to get
1044     numbers correct.
1046     Default: on.  Options: ``--use-latex-toc, --use-docutils-toc``.
1048 _`use_latex_docinfo`
1049     Attach author and date to the document title
1050     instead of the document info table.
1052     Default: off.  Options: ``--use-latex-docinfo, --use-docutils-docinfo``
1054 _`docutils_footnotes`
1055     Use the Docutils-specific macros ``\DUfootnote`` and
1056     ``\DUfootnotetext`` for footnotes.
1058     Default: on.  Option: ``--docutils-footnotes``.
1060 _`use_latex_footnotes`
1061     Backwards-compatibility alias for docutils_footnotes_ (deprecated).
1063     *Note*: the planned new option _`latex_footnotes` will use the
1064     ``\footnote`` command and footnote numbering by LaTeX.
1066 _`figure_footnotes`
1067     Typeset footnote text in a figure float.
1068     This may lead to footnotes, citations, and figures being
1069     mixed at page foot.
1071     *Deprecated:* This setting will be removed in a future Docutils
1072     version.
1074     Default: off.  Option: ``--figure-footnotes``.
1076 _`use_latex_citations`
1077     Use \cite for citations instead of a simulation with figure-floats.
1079     Default: off.  Options: ``--use-latex-citations, --figure-citations``.
1081 _`use_latex_abstract`
1082     Use LaTeX abstract environment for the document's abstract.
1084     Default: off.  Options: ``--use-latex-abstract, --topic-abstract``.
1086 _`hyperlink_color`
1087     Color of any hyperlinks embedded in text.
1089     * "0" or "false" disable coloring of links. (Links will be marked
1090       by red boxes that are not printed),
1091     * "black" results in â€œinvisible“ links,
1093     Set hyperref_options_ to "draft" to completely disable
1094     hyperlinking.
1096     Default: "blue".  Option: ``--hyperlink-color``.
1098 _`hyperref_options`
1099     Options for the `hyperref TeX package`_. If hyperlink_color_ is
1100     not "false", the expansion of ::
1102       'colorlinks=true,linkcolor=%s,urlcolor=%s' % (
1103          hyperlink_color, self.hyperlink_color
1105     is prepended. For documents typeset in Cyrillic script,
1106     ``--hyperref-options=unicode`` is recommended.
1108     Default: "".   Option: ``--hyperref-options``.
1110     .. _hyperref TeX package: http://tug.org/applications/hyperref/
1112 _`documentclass`
1113     Specify latex documentclass.
1115     Default: "article".  Option: ``--documentclass``.
1117 _`documentoptions`
1118     Specify document options.  Multiple options can be given, separated by
1119     commas.
1121     Default: "a4paper".  Option: ``--documentoptions``.
1123 _`font_encoding`
1124     Specify LaTeX font encoding. Multiple options can be given, separated
1125     by commas. Possible values are "", "T1", "OT1", "LGR,T1" or any other
1126     combination of `LaTeX font encodings`_.
1128     Default: "T1".  Option: ``--font-encoding``.
1130     .. _LaTeX font encodings:
1131        http://mirror.ctan.org/macros/latex/doc/encguide.pdf
1133 .. _embed_stylesheet [latex2e writer]:
1135 embed_stylesheet
1136     Embed the stylesheet(s) in the header of the output file.  The
1137     stylesheets must be accessible during processing.  Currently, this
1138     fails if the file is not available via the given path (i.e. the
1139     file is *not* searched in the `TeX input path`_).
1140     Also defined for the `HTML Writer`__ (with default *on*).
1142     Default: off.  Options: ``--embed-stylesheet, --link-stylesheet``.
1144     __ `embed_stylesheet [html4css1 writer]`_
1146 .. _stylesheet [latex2e writer]:
1148 stylesheet
1149     A comma-separated list of style files.
1150     Also defined for the `HTML Writer`__.
1152     Overrides also stylesheet_path__. [#override]_
1154     If `embed_stylesheet`__ is False (default), the stylesheet files are
1155     referenced with ``\usepackage`` (extension ``.sty`` or no extension) or
1156     ``\input`` (any other extension).
1158     LaTeX will search the specified files in the `TeX input path`_.
1160     Default: no stylesheet ("").  Option: ``--stylesheet``.
1162     __ `stylesheet_path [latex2e writer]`_
1163     __ `embed_stylesheet [latex2e writer]`_
1164     __ `stylesheet [html4css1 writer]`_
1165     .. _TeX input path:
1166        http://www.tex.ac.uk/cgi-bin/texfaq2html?label=what-TDS
1169 .. _stylesheet_path [latex2e writer]:
1171 stylesheet_path
1172     Similar to stylesheet__, however paths [#pwd]_ are rewritten relative to
1173     the output file (if there is a common part in the given path and the
1174     output file path). Also defined for the `HTML Writer`__.
1176     Run ``latex`` from the directory containing the output file. Fails for
1177     files in the TEXINPUTS path; use stylesheet__ in this case.
1179     Also overrides stylesheet__. [#override]_
1181     Default: no stylesheet ("").  Option: ``--stylesheet-path``.
1183     __ `stylesheet [latex2e writer]`_
1184     __ `stylesheet_path [html4css1 writer]`_
1185     __
1186     __ `stylesheet [latex2e writer]`_
1189 _`latex_preamble`
1190     LaTeX code that will be inserted in the document preamble.
1191     Can be used to load packages with options or (re-) define LaTeX
1192     macros without writing a custom style file (new in Docutils 0.7).
1194     Default: Load the "PDF standard fonts" (Times, Helvetica,
1195     Courier)::
1197       \usepackage{mathptmx} % Times
1198       \usepackage[scaled=.90]{helvet}
1199       \usepackage{courier}
1201     Option: ``--latex-preamble``
1204 .. _template [latex2e writer]:
1206 template
1207     Path to template file, which must be encoded in UTF-8 [#pwd]_.
1208     Also defined for the `HTML Writer`__.
1210     Default: "default.tex" in the docutils/writers/latex2e/
1211     directory (installed automatically; for the exact machine-specific
1212     path, use the ``--help`` option).  Options: ``--template``.
1214     __ `template [html4css1 writer]`_
1216 .. _footnote_references [latex2e writer]:
1218 footnote_references
1219     Format for footnote references: one of "superscript" or
1220     "brackets".  Also defined for the `HTML Writer`__.
1222     Overrides [#override]_ trim_footnote_reference_space_, if
1223     applicable [#footnote_space]_.
1225     Default: "superscript".  Option: ``--footnote-references``.
1227     __ `footnote_references [html4css1 writer]`_
1229 .. _attribution [latex2e writer]:
1231 attribution
1232     Format for block quote attributions, the same as for the
1233     html-writer: one of "dash" (em-dash prefix),
1234     "parentheses"/"parens" or "none".  Also defined for the `HTML
1235     Writer`__.
1237     Default: "dash".  Option: ``--attribution``.
1239     __ `attribution [html4css1 writer]`_
1241 _`compound_enumerators`
1242     Enable or disable compound enumerators for nested enumerated lists
1243     (e.g. "1.2.a.ii").
1245     Default: disabled (None).  Options: ``--compound-enumerators``,
1246     ``--no-compound-enumerators``.
1248 _`literal_block_env`
1249     When possibile\ [#]_, use the specified environment for literal-blocks.
1251     Default: "" (quoting of whitespace and special chars)
1252     Option: ``--literal-block-env``
1254    .. [#] A literal-block element, when processed by a Docutils writer might
1255       have it's origin in a markup with "::" syntax or a "..
1256       parsed-literal::" directive.
1258       A LaTeX verbatim environment is only usable if there is no other
1259       markup contained in the literal-block.
1262 _`section_prefix_for_enumerators`
1263     Enable or disable section ("." subsection ...) prefixes for
1264     compound enumerators.  This has no effect unless
1265     `compound_enumerators`_ are enabled.
1267     Default: disabled (None).  Options:
1268     ``--section-prefix-for-enumerators``,
1269     ``--no-section-prefix-for-enumerators``.
1271 _`section_enumerator_separator`
1272     The separator between section number prefix and enumerator for
1273     compound enumerated lists (see `compound_enumerators`_).
1275     Generally it isn't recommended to use both sub-sections and nested
1276     enumerated lists with compound enumerators.  This setting avoids
1277     ambiguity in the situation where a section "1" has a list item
1278     enumerated "1.1", and subsection "1.1" has list item "1".  With a
1279     separator of ".", these both would translate into a final compound
1280     enumerator of "1.1.1".  With a separator of "-", we get the
1281     unambiguous "1-1.1" and "1.1-1".
1283     Default: "-".  Option: ``--section-enumerator-separator``.
1285 .. _table_style [latex2e writer]:
1287 table_style
1288     Specify the drawing of separation lines.
1289     Supported values:
1291     standard
1292       lines around and between cells.
1293     booktabs
1294       a line above and below the table and one after the head.
1295     borderless
1296       no lines.
1298     Default: "standard".  Option: ``--table-style``.
1300 [xetex writer]
1301 .................
1303 The xetex writer derives from the latex2e writer, and shares
1304 all settings defined in the `[latex2e writer]`_ section.  The
1305 "[latex2e writer]" section of configuration files is processed
1306 before the "[xetex writer]" section.
1308 The following settings differ from those of the latex2e writer:
1310 font_encoding
1311     Disabled as XeTeX uses Unicode-encoded fonts.
1313 .. _latex_preamble [xetex writer]:
1315 latex_preamble
1316     LaTeX code that will be inserted in the document preamble.
1318     Default:
1319       Font setup for `Linux Libertine`_,::
1321         % Linux Libertine (free, wide coverage, not only for Linux)
1322         \setmainfont{Linux Libertine O}
1323         \setsansfont{Linux Biolinum O}
1324         \setmonofont[HyphenChar=None]{DejaVu Sans Mono}
1326       The optional argument ``HyphenChar=None`` to the monospace font
1327       prevents word hyphenation in literal text.
1330     Option: ``--latex-preamble``
1332     .. _Linux Libertine: http://www.linuxlibertine.org/
1334 .. _template [xetex writer]:
1336 template
1337     Path to template file.
1339     Default: "xelatex.tex" in the ``docutils/writers/latex2e/``
1340     directory (installed automatically; for the exact machine-specific
1341     path, use the ``--help`` option).  Options: ``--template``.
1344 [pseudoxml writer]
1345 ``````````````````
1347 No settings are defined for this Writer.
1350 [applications]
1351 --------------
1353 [buildhtml application]
1354 ```````````````````````
1356 _`ignore`
1357     List of wildcard (shell globing) patterns, specifying files to
1358     silently ignore.  To specify multiple patterns, use
1359     colon-separated patterns (in configuration files or on the command
1360     line); on the command line, the option may also be used more than
1361     once.
1363     Default: none ([]).  Options: ``--ignore``.
1365 _`prune`
1366     List of directories not to process.  To specify multiple
1367     directories, use colon-separated paths (in configuration files or
1368     on the command line); on the command line, the option may also be
1369     used more than once.
1371     Default: ['.hg', '.bzr', '.git', '.svn', 'CVS'].  Options:
1372     ``--prune``.
1374 _`recurse`
1375     Recursively scan subdirectories, or ignore subdirectories.
1377     Default: recurse (1).  Options: ``--recurse, --local``.
1379 _`silent`
1380     Work silently (no progress messages).  Independent of
1381     "report_level".
1383     Default: show progress (None).  Options: ``--silent``.
1386 [docfactory application]
1387 ````````````````````````
1389 (To be completed.)
1392 Other Settings
1393 ==============
1395 Command-Line Only
1396 -----------------
1398 These settings are only effective as command-line options; setting
1399 them in configuration files has no effect.
1401 _`config`
1402     Path to a configuration file to read (if it exists) [#pwd]_.
1403     Settings may override defaults and earlier settings.  The config
1404     file is processed immediately.  Multiple ``--config`` options may
1405     be specified; each will be processed in turn.
1407     Filesystem path settings contained within the config file will be
1408     interpreted relative to the config file's location (*not* relative
1409     to the current working directory).
1411     Default: None.  Options: ``--config``.
1414 Internal Settings
1415 -----------------
1417 These settings are for internal use only; setting them in
1418 configuration files has no effect, and there are no corresponding
1419 command-line options.
1421 _`_config_files`
1422     List of paths of applied configuration files.
1424     Default: None.  No command-line options.
1426 _`_directories`
1427     (``buildhtml.py`` front end.)  List of paths to source
1428     directories, set from positional arguments.
1430     Default: current working directory (None).  No command-line
1431     options.
1433 _`_disable_config`
1434     Prevent standard configuration files from being read.  For
1435     programmatic use only.
1437     Default: config files enabled (None).  No command-line options.
1439 _`_destination`
1440     Path to output destination, set from positional arguments.
1442     Default: stdout (None).  No command-line options.
1444 _`_source`
1445     Path to input source, set from positional arguments.
1447     Default: stdin (None).  No command-line options.
1450 .. _language tag: http://www.w3.org/International/articles/language-tags/
1451 .. _BCP 47: http://www.rfc-editor.org/rfc/bcp/bcp47.txt
1452 .. _ISO 639: http://www.loc.gov/standards/iso639-2/php/English_list.php
1453 .. _ISO 3166: http://www.iso.ch/iso/en/prods-services/iso3166ma/
1454    02iso-3166-code-lists/index.html
1456 .. [#pwd] Path relative to the working directory of the process at
1457    launch.
1459 .. [#override] The overridden setting will automatically be set to
1460    ``None`` for command-line options and config file settings.  Client
1461    programs which specify defaults that override other settings must
1462    do the overriding explicitly, by assigning ``None`` to the other
1463    settings.
1465 .. [#dependencies] Images are only added to the dependency list if the
1466    reStructuredText parser extracted image dimensions from the file.
1468 .. [#footnote_space] The footnote space is trimmed if the reference
1469    style is "superscript", and it is left if the reference style is
1470    "brackets".
1472    The overriding only happens if the parser supports the
1473    trim_footnote_reference_space option.
1476 ------------------------------
1477 Old-Format Configuration Files
1478 ------------------------------
1480 Formerly, Docutils configuration files contained a single "[options]"
1481 section only.  This was found to be inflexible, and in August 2003
1482 Docutils adopted the current component-based configuration file
1483 sections as described above.  Docutils will still recognize the old
1484 "[options]" section, but complains with a deprecation warning.
1486 To convert existing config files, the easiest way is to change the
1487 section title: change "[options]" to "[general]".  Most settings
1488 haven't changed.  The only ones to watch out for are these:
1490 =====================  =====================================
1491 Old-Format Setting     New Section & Setting
1492 =====================  =====================================
1493 pep_stylesheet         [pep_html writer] stylesheet
1494 pep_stylesheet_path    [pep_html writer] stylesheet_path
1495 pep_template           [pep_html writer] template
1496 =====================  =====================================