blob: 7cf89b0577ef1dd493a577308740930683a2da43 [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001.. highlightlang:: rest
2
3Additional Markup Constructs
4============================
5
6Sphinx adds a lot of new directives and interpreted text roles to standard reST
7markup. This section contains the reference material for these facilities.
8Documentation for "standard" reST constructs is not included here, though
9they are used in the Python documentation.
10
11File-wide metadata
12------------------
13
14reST has the concept of "field lists"; these are a sequence of fields marked up
15like this::
16
17 :Field name: Field content
18
19A field list at the very top of a file is parsed as the "docinfo", which in
20normal documents can be used to record the author, date of publication and
21other metadata. In Sphinx, the docinfo is used as metadata, too, but not
22displayed in the output.
23
24At the moment, only one metadata field is recognized:
25
26``nocomments``
27 If set, the web application won't display a comment form for a page generated
28 from this source file.
29
30
31Meta-information markup
32-----------------------
33
34.. describe:: sectionauthor
35
36 Identifies the author of the current section. The argument should include
37 the author's name such that it can be used for presentation (though it isn't)
38 and email address. The domain name portion of the address should be lower
39 case. Example::
40
41 .. sectionauthor:: Guido van Rossum <guido@python.org>
42
43 Currently, this markup isn't reflected in the output in any way, but it helps
44 keep track of contributions.
45
46
47Module-specific markup
48----------------------
49
50The markup described in this section is used to provide information about a
51module being documented. Each module should be documented in its own file.
52Normally this markup appears after the title heading of that file; a typical
53file might start like this::
54
55 :mod:`parrot` -- Dead parrot access
56 ===================================
57
58 .. module:: parrot
59 :platform: Unix, Windows
60 :synopsis: Analyze and reanimate dead parrots.
61 .. moduleauthor:: Eric Cleese <eric@python.invalid>
62 .. moduleauthor:: John Idle <john@python.invalid>
63
64As you can see, the module-specific markup consists of two directives, the
65``module`` directive and the ``moduleauthor`` directive.
66
67.. describe:: module
68
69 This directive marks the beginning of the description of a module (or package
70 submodule, in which case the name should be fully qualified, including the
71 package name).
72
73 The ``platform`` option, if present, is a comma-separated list of the
74 platforms on which the module is available (if it is available on all
75 platforms, the option should be omitted). The keys are short identifiers;
76 examples that are in use include "IRIX", "Mac", "Windows", and "Unix". It is
77 important to use a key which has already been used when applicable.
78
79 The ``synopsis`` option should consist of one sentence describing the
80 module's purpose -- it is currently only used in the Global Module Index.
81
Guido van Rossumda27fd22007-08-17 00:24:54 +000082 The ``deprecated`` option can be given (with no value) to mark a module as
83 deprecated; it will be designated as such in various locations then.
84
Georg Brandl116aa622007-08-15 14:28:22 +000085.. describe:: moduleauthor
86
87 The ``moduleauthor`` directive, which can appear multiple times, names the
88 authors of the module code, just like ``sectionauthor`` names the author(s)
89 of a piece of documentation. It too does not result in any output currently.
90
91
92.. note::
93
94 It is important to make the section title of a module-describing file
95 meaningful since that value will be inserted in the table-of-contents trees
96 in overview files.
97
98
99Information units
100-----------------
101
102There are a number of directives used to describe specific features provided by
103modules. Each directive requires one or more signatures to provide basic
104information about what is being described, and the content should be the
105description. The basic version makes entries in the general index; if no index
106entry is desired, you can give the directive option flag ``:noindex:``. The
107following example shows all of the features of this directive type::
108
109 .. function:: spam(eggs)
110 ham(eggs)
111 :noindex:
112
113 Spam or ham the foo.
114
115The signatures of object methods or data attributes should always include the
116type name (``.. method:: FileInput.input(...)``), even if it is obvious from the
117context which type they belong to; this is to enable consistent
118cross-references. If you describe methods belonging to an abstract protocol,
119such as "context managers", include a (pseudo-)type name too to make the
120index entries more informative.
121
122The directives are:
123
124.. describe:: cfunction
125
126 Describes a C function. The signature should be given as in C, e.g.::
127
128 .. cfunction:: PyObject* PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
129
130 This is also used to describe function-like preprocessor macros. The names
131 of the arguments should be given so they may be used in the description.
132
133 Note that you don't have to backslash-escape asterisks in the signature,
134 as it is not parsed by the reST inliner.
135
136.. describe:: cmember
137
138 Describes a C struct member. Example signature::
139
140 .. cmember:: PyObject* PyTypeObject.tp_bases
141
142 The text of the description should include the range of values allowed, how
143 the value should be interpreted, and whether the value can be changed.
144 References to structure members in text should use the ``member`` role.
145
146.. describe:: cmacro
147
148 Describes a "simple" C macro. Simple macros are macros which are used
149 for code expansion, but which do not take arguments so cannot be described as
150 functions. This is not to be used for simple constant definitions. Examples
151 of its use in the Python documentation include :cmacro:`PyObject_HEAD` and
152 :cmacro:`Py_BEGIN_ALLOW_THREADS`.
153
154.. describe:: ctype
155
156 Describes a C type. The signature should just be the type name.
157
158.. describe:: cvar
159
160 Describes a global C variable. The signature should include the type, such
161 as::
162
163 .. cvar:: PyObject* PyClass_Type
164
165.. describe:: data
166
167 Describes global data in a module, including both variables and values used
168 as "defined constants." Class and object attributes are not documented
169 using this environment.
170
171.. describe:: exception
172
173 Describes an exception class. The signature can, but need not include
174 parentheses with constructor arguments.
175
176.. describe:: function
177
178 Describes a module-level function. The signature should include the
179 parameters, enclosing optional parameters in brackets. Default values can be
180 given if it enhances clarity. For example::
181
182 .. function:: Timer.repeat([repeat=3[, number=1000000]])
183
184 Object methods are not documented using this directive. Bound object methods
185 placed in the module namespace as part of the public interface of the module
186 are documented using this, as they are equivalent to normal functions for
187 most purposes.
188
189 The description should include information about the parameters required and
190 how they are used (especially whether mutable objects passed as parameters
191 are modified), side effects, and possible exceptions. A small example may be
192 provided.
193
194.. describe:: class
195
196 Describes a class. The signature can include parentheses with parameters
197 which will be shown as the constructor arguments.
198
199.. describe:: attribute
200
201 Describes an object data attribute. The description should include
202 information about the type of the data to be expected and whether it may be
203 changed directly.
204
205.. describe:: method
206
207 Describes an object method. The parameters should not include the ``self``
208 parameter. The description should include similar information to that
209 described for ``function``.
210
211.. describe:: opcode
212
Georg Brandl9afde1c2007-11-01 20:32:30 +0000213 Describes a Python :term:`bytecode` instruction.
214
215.. describe:: cmdoption
216
217 Describes a command line option or switch. Option argument names should be
218 enclosed in angle brackets. Example::
219
220 .. cmdoption:: -m <module>
221
222 Run a module as a script.
223
224.. describe:: envvar
225
226 Describes an environment variable that Python uses or defines.
Georg Brandl116aa622007-08-15 14:28:22 +0000227
228
229There is also a generic version of these directives:
230
231.. describe:: describe
232
233 This directive produces the same formatting as the specific ones explained
234 above but does not create index entries or cross-referencing targets. It is
235 used, for example, to describe the directives in this document. Example::
236
237 .. describe:: opcode
238
239 Describes a Python bytecode instruction.
240
241
242Showing code examples
243---------------------
244
245Examples of Python source code or interactive sessions are represented using
246standard reST literal blocks. They are started by a ``::`` at the end of the
247preceding paragraph and delimited by indentation.
248
249Representing an interactive session requires including the prompts and output
250along with the Python code. No special markup is required for interactive
251sessions. After the last line of input or output presented, there should not be
252an "unused" primary prompt; this is an example of what *not* to do::
253
254 >>> 1 + 1
255 2
256 >>>
257
258Syntax highlighting is handled in a smart way:
259
260* There is a "highlighting language" for each source file. Per default,
261 this is ``'python'`` as the majority of files will have to highlight Python
262 snippets.
263
264* Within Python highlighting mode, interactive sessions are recognized
265 automatically and highlighted appropriately.
266
267* The highlighting language can be changed using the ``highlightlang``
268 directive, used as follows::
269
270 .. highlightlang:: c
271
272 This language is used until the next ``highlightlang`` directive is
273 encountered.
274
275* The valid values for the highlighting language are:
276
277 * ``python`` (the default)
278 * ``c``
279 * ``rest``
280 * ``none`` (no highlighting)
281
282* If highlighting with the current language fails, the block is not highlighted
283 in any way.
284
285Longer displays of verbatim text may be included by storing the example text in
286an external file containing only plain text. The file may be included using the
287``literalinclude`` directive. [1]_ For example, to include the Python source file
288:file:`example.py`, use::
289
290 .. literalinclude:: example.py
291
292The file name is relative to the current file's path. Documentation-specific
293include files should be placed in the ``Doc/includes`` subdirectory.
294
295
296Inline markup
297-------------
298
299As said before, Sphinx uses interpreted text roles to insert semantic markup in
300documents.
301
302Variable names are an exception, they should be marked simply with ``*var*``.
303
304For all other roles, you have to write ``:rolename:`content```.
305
Guido van Rossumf10aa982007-08-17 18:30:38 +0000306.. note::
307
308 For all cross-referencing roles, if you prefix the content with ``!``, no
309 reference/hyperlink will be created.
310
Georg Brandl116aa622007-08-15 14:28:22 +0000311The following roles refer to objects in modules and are possibly hyperlinked if
312a matching identifier is found:
313
314.. describe:: mod
315
316 The name of a module; a dotted name may be used. This should also be used for
317 package names.
318
319.. describe:: func
320
321 The name of a Python function; dotted names may be used. The role text
Christian Heimesa342c012008-04-20 21:01:16 +0000322 should not include trailing parentheses to enhance readability. The
323 parentheses are stripped when searching for identifiers.
Georg Brandl116aa622007-08-15 14:28:22 +0000324
325.. describe:: data
326
327 The name of a module-level variable.
328
329.. describe:: const
330
331 The name of a "defined" constant. This may be a C-language ``#define``
332 or a Python variable that is not intended to be changed.
333
334.. describe:: class
335
336 A class name; a dotted name may be used.
337
338.. describe:: meth
339
340 The name of a method of an object. The role text should include the type
Christian Heimesa342c012008-04-20 21:01:16 +0000341 name and the method name. A dotted name may be used.
Georg Brandl116aa622007-08-15 14:28:22 +0000342
343.. describe:: attr
344
345 The name of a data attribute of an object.
346
347.. describe:: exc
348
349 The name of an exception. A dotted name may be used.
350
351The name enclosed in this markup can include a module name and/or a class name.
352For example, ``:func:`filter``` could refer to a function named ``filter`` in
353the current module, or the built-in function of that name. In contrast,
354``:func:`foo.filter``` clearly refers to the ``filter`` function in the ``foo``
355module.
356
Guido van Rossumda27fd22007-08-17 00:24:54 +0000357Normally, names in these roles are searched first without any further
358qualification, then with the current module name prepended, then with the
359current module and class name (if any) prepended. If you prefix the name with a
360dot, this order is reversed. For example, in the documentation of the
361:mod:`codecs` module, ``:func:`open``` always refers to the built-in function,
362while ``:func:`.open``` refers to :func:`codecs.open`.
363
Georg Brandl116aa622007-08-15 14:28:22 +0000364A similar heuristic is used to determine whether the name is an attribute of
365the currently documented class.
366
367The following roles create cross-references to C-language constructs if they
368are defined in the API documentation:
369
370.. describe:: cdata
371
372 The name of a C-language variable.
373
374.. describe:: cfunc
375
376 The name of a C-language function. Should include trailing parentheses.
377
378.. describe:: cmacro
379
380 The name of a "simple" C macro, as defined above.
381
382.. describe:: ctype
383
384 The name of a C-language type.
385
386
387The following role does possibly create a cross-reference, but does not refer
388to objects:
389
390.. describe:: token
391
392 The name of a grammar token (used in the reference manual to create links
393 between production displays).
394
Guido van Rossumf10aa982007-08-17 18:30:38 +0000395
396The following role creates a cross-reference to the term in the glossary:
397
398.. describe:: term
399
400 Reference to a term in the glossary. The glossary is created using the
401 ``glossary`` directive containing a definition list with terms and
402 definitions. It does not have to be in the same file as the ``term``
403 markup, in fact, by default the Python docs have one global glossary
404 in the ``glossary.rst`` file.
405
406 If you use a term that's not explained in a glossary, you'll get a warning
407 during build.
408
Georg Brandl116aa622007-08-15 14:28:22 +0000409---------
410
411The following roles don't do anything special except formatting the text
412in a different style:
413
414.. describe:: command
415
416 The name of an OS-level command, such as ``rm``.
417
418.. describe:: dfn
419
420 Mark the defining instance of a term in the text. (No index entries are
421 generated.)
422
423.. describe:: envvar
424
425 An environment variable. Index entries are generated.
426
427.. describe:: file
428
429 The name of a file or directory. Within the contents, you can use curly
430 braces to indicate a "variable" part, for example::
431
432 ... is installed in :file:`/usr/lib/python2.{x}/site-packages` ...
433
434 In the built documentation, the ``x`` will be displayed differently to
435 indicate that it is to be replaced by the Python minor version.
436
437.. describe:: guilabel
438
439 Labels presented as part of an interactive user interface should be marked
440 using ``guilabel``. This includes labels from text-based interfaces such as
441 those created using :mod:`curses` or other text-based libraries. Any label
442 used in the interface should be marked with this role, including button
443 labels, window titles, field names, menu and menu selection names, and even
444 values in selection lists.
445
446.. describe:: kbd
447
448 Mark a sequence of keystrokes. What form the key sequence takes may depend
449 on platform- or application-specific conventions. When there are no relevant
450 conventions, the names of modifier keys should be spelled out, to improve
451 accessibility for new users and non-native speakers. For example, an
452 *xemacs* key sequence may be marked like ``:kbd:`C-x C-f```, but without
453 reference to a specific application or platform, the same sequence should be
454 marked as ``:kbd:`Control-x Control-f```.
455
456.. describe:: keyword
457
Christian Heimes5b5e81c2007-12-31 16:14:33 +0000458 The name of a keyword in Python.
Georg Brandl116aa622007-08-15 14:28:22 +0000459
460.. describe:: mailheader
461
462 The name of an RFC 822-style mail header. This markup does not imply that
463 the header is being used in an email message, but can be used to refer to any
464 header of the same "style." This is also used for headers defined by the
465 various MIME specifications. The header name should be entered in the same
466 way it would normally be found in practice, with the camel-casing conventions
467 being preferred where there is more than one common usage. For example:
468 ``:mailheader:`Content-Type```.
469
470.. describe:: makevar
471
472 The name of a :command:`make` variable.
473
474.. describe:: manpage
475
476 A reference to a Unix manual page including the section,
477 e.g. ``:manpage:`ls(1)```.
478
479.. describe:: menuselection
480
481 Menu selections should be marked using the ``menuselection`` role. This is
482 used to mark a complete sequence of menu selections, including selecting
483 submenus and choosing a specific operation, or any subsequence of such a
484 sequence. The names of individual selections should be separated by
485 ``-->``.
486
487 For example, to mark the selection "Start > Programs", use this markup::
488
489 :menuselection:`Start --> Programs`
490
491 When including a selection that includes some trailing indicator, such as the
492 ellipsis some operating systems use to indicate that the command opens a
493 dialog, the indicator should be omitted from the selection name.
494
495.. describe:: mimetype
496
497 The name of a MIME type, or a component of a MIME type (the major or minor
498 portion, taken alone).
499
500.. describe:: newsgroup
501
502 The name of a Usenet newsgroup.
503
504.. describe:: option
505
506 A command-line option to an executable program. The leading hyphen(s) must
507 be included.
508
509.. describe:: program
510
511 The name of an executable program. This may differ from the file name for
512 the executable for some platforms. In particular, the ``.exe`` (or other)
513 extension should be omitted for Windows programs.
514
515.. describe:: regexp
516
517 A regular expression. Quotes should not be included.
518
519.. describe:: samp
520
521 A piece of literal text, such as code. Within the contents, you can use
522 curly braces to indicate a "variable" part, as in ``:file:``.
523
524 If you don't need the "variable part" indication, use the standard
525 ````code```` instead.
526
527.. describe:: var
528
529 A Python or C variable or parameter name.
530
531
532The following roles generate external links:
533
534.. describe:: pep
535
536 A reference to a Python Enhancement Proposal. This generates appropriate
537 index entries. The text "PEP *number*\ " is generated; in the HTML output,
538 this text is a hyperlink to an online copy of the specified PEP.
539
540.. describe:: rfc
541
542 A reference to an Internet Request for Comments. This generates appropriate
543 index entries. The text "RFC *number*\ " is generated; in the HTML output,
544 this text is a hyperlink to an online copy of the specified RFC.
545
546
547Note that there are no special roles for including hyperlinks as you can use
548the standard reST markup for that purpose.
549
550
551.. _doc-ref-role:
552
553Cross-linking markup
554--------------------
555
556To support cross-referencing to arbitrary sections in the documentation, the
557standard reST labels are "abused" a bit: Every label must precede a section
558title; and every label name must be unique throughout the entire documentation
559source.
560
561You can then reference to these sections using the ``:ref:`label-name``` role.
562
563Example::
564
565 .. _my-reference-label:
566
567 Section to cross-reference
568 --------------------------
569
570 This is the text of the section.
571
572 It refers to the section itself, see :ref:`my-reference-label`.
573
574The ``:ref:`` invocation is replaced with the section title.
575
576
577Paragraph-level markup
578----------------------
579
580These directives create short paragraphs and can be used inside information
581units as well as normal text:
582
583.. describe:: note
584
585 An especially important bit of information about an API that a user should be
586 aware of when using whatever bit of API the note pertains to. The content of
587 the directive should be written in complete sentences and include all
588 appropriate punctuation.
589
590 Example::
591
592 .. note::
593
594 This function is not suitable for sending spam e-mails.
595
596.. describe:: warning
597
598 An important bit of information about an API that a user should be very aware
599 of when using whatever bit of API the warning pertains to. The content of
600 the directive should be written in complete sentences and include all
601 appropriate punctuation. This differs from ``note`` in that it is recommended
602 over ``note`` for information regarding security.
603
604.. describe:: versionadded
605
606 This directive documents the version of Python which added the described
607 feature to the library or C API. When this applies to an entire module, it
608 should be placed at the top of the module section before any prose.
609
610 The first argument must be given and is the version in question; you can add
611 a second argument consisting of a *brief* explanation of the change.
612
613 Example::
614
615 .. versionadded:: 2.5
616 The `spam` parameter.
617
618 Note that there must be no blank line between the directive head and the
619 explanation; this is to make these blocks visually continuous in the markup.
620
621.. describe:: versionchanged
622
623 Similar to ``versionadded``, but describes when and what changed in the named
624 feature in some way (new parameters, changed side effects, etc.).
625
626--------------
627
628.. describe:: seealso
629
630 Many sections include a list of references to module documentation or
631 external documents. These lists are created using the ``seealso`` directive.
632
633 The ``seealso`` directive is typically placed in a section just before any
634 sub-sections. For the HTML output, it is shown boxed off from the main flow
635 of the text.
636
637 The content of the ``seealso`` directive should be a reST definition list.
638 Example::
639
640 .. seealso::
641
642 Module :mod:`zipfile`
643 Documentation of the :mod:`zipfile` standard module.
644
645 `GNU tar manual, Basic Tar Format <http://link>`_
646 Documentation for tar archive files, including GNU tar extensions.
647
648.. describe:: rubric
649
650 This directive creates a paragraph heading that is not used to create a
651 table of contents node. It is currently used for the "Footnotes" caption.
652
653.. describe:: centered
654
655 This directive creates a centered boldfaced paragraph. Use it as follows::
656
657 .. centered::
658
659 Paragraph contents.
660
661
662Table-of-contents markup
663------------------------
664
665Since reST does not have facilities to interconnect several documents, or split
666documents into multiple output files, Sphinx uses a custom directive to add
667relations between the single files the documentation is made of, as well as
668tables of contents. The ``toctree`` directive is the central element.
669
670.. describe:: toctree
671
672 This directive inserts a "TOC tree" at the current location, using the
673 individual TOCs (including "sub-TOC trees") of the files given in the
674 directive body. A numeric ``maxdepth`` option may be given to indicate the
675 depth of the tree; by default, all levels are included.
676
677 Consider this example (taken from the library reference index)::
678
679 .. toctree::
680 :maxdepth: 2
681
682 intro.rst
683 strings.rst
684 datatypes.rst
685 numeric.rst
686 (many more files listed here)
687
688 This accomplishes two things:
689
690 * Tables of contents from all those files are inserted, with a maximum depth
691 of two, that means one nested heading. ``toctree`` directives in those
692 files are also taken into account.
693 * Sphinx knows that the relative order of the files ``intro.rst``,
694 ``strings.rst`` and so forth, and it knows that they are children of the
695 shown file, the library index. From this information it generates "next
696 chapter", "previous chapter" and "parent chapter" links.
697
698 In the end, all files included in the build process must occur in one
699 ``toctree`` directive; Sphinx will emit a warning if it finds a file that is
700 not included, because that means that this file will not be reachable through
701 standard navigation.
702
703 The special file ``contents.rst`` at the root of the source directory is the
704 "root" of the TOC tree hierarchy; from it the "Contents" page is generated.
705
706
707Index-generating markup
708-----------------------
709
710Sphinx automatically creates index entries from all information units (like
711functions, classes or attributes) like discussed before.
712
713However, there is also an explicit directive available, to make the index more
714comprehensive and enable index entries in documents where information is not
715mainly contained in information units, such as the language reference.
716
717The directive is ``index`` and contains one or more index entries. Each entry
718consists of a type and a value, separated by a colon.
719
720For example::
721
722 .. index::
Thomas Wouters89d996e2007-09-08 17:39:28 +0000723 single: execution; context
Georg Brandl116aa622007-08-15 14:28:22 +0000724 module: __main__
725 module: sys
726 triple: module; search; path
727
728This directive contains five entries, which will be converted to entries in the
729generated index which link to the exact location of the index statement (or, in
730case of offline media, the corresponding page number).
731
732The possible entry types are:
733
734single
735 Creates a single index entry. Can be made a subentry by separating the
Thomas Wouters89d996e2007-09-08 17:39:28 +0000736 subentry text with a semicolon (this notation is also used below to describe
737 what entries are created).
Georg Brandl116aa622007-08-15 14:28:22 +0000738pair
739 ``pair: loop; statement`` is a shortcut that creates two index entries,
740 namely ``loop; statement`` and ``statement; loop``.
741triple
742 Likewise, ``triple: module; search; path`` is a shortcut that creates three
743 index entries, which are ``module; search path``, ``search; path, module`` and
744 ``path; module search``.
745module, keyword, operator, object, exception, statement, builtin
746 These all create two index entries. For example, ``module: hashlib`` creates
747 the entries ``module; hashlib`` and ``hashlib; module``.
748
Thomas Wouters89d996e2007-09-08 17:39:28 +0000749For index directives containing only "single" entries, there is a shorthand
750notation::
751
752 .. index:: BNF, grammar, syntax, notation
753
754This creates four index entries.
755
Georg Brandl116aa622007-08-15 14:28:22 +0000756
757Grammar production displays
758---------------------------
759
760Special markup is available for displaying the productions of a formal grammar.
761The markup is simple and does not attempt to model all aspects of BNF (or any
762derived forms), but provides enough to allow context-free grammars to be
763displayed in a way that causes uses of a symbol to be rendered as hyperlinks to
764the definition of the symbol. There is this directive:
765
766.. describe:: productionlist
767
768 This directive is used to enclose a group of productions. Each production is
769 given on a single line and consists of a name, separated by a colon from the
770 following definition. If the definition spans multiple lines, each
771 continuation line must begin with a colon placed at the same column as in the
772 first line.
773
774 Blank lines are not allowed within ``productionlist`` directive arguments.
775
776 The definition can contain token names which are marked as interpreted text
777 (e.g. ``sum ::= `integer` "+" `integer```) -- this generates cross-references
778 to the productions of these tokens.
779
780 Note that no further reST parsing is done in the production, so that you
781 don't have to escape ``*`` or ``|`` characters.
782
783
784.. XXX describe optional first parameter
785
786The following is an example taken from the Python Reference Manual::
787
788 .. productionlist::
789 try_stmt: try1_stmt | try2_stmt
790 try1_stmt: "try" ":" `suite`
791 : ("except" [`expression` ["," `target`]] ":" `suite`)+
792 : ["else" ":" `suite`]
793 : ["finally" ":" `suite`]
794 try2_stmt: "try" ":" `suite`
795 : "finally" ":" `suite`
796
797
798Substitutions
799-------------
800
801The documentation system provides three substitutions that are defined by default.
802They are set in the build configuration file, see :ref:`doc-build-config`.
803
804.. describe:: |release|
805
806 Replaced by the Python release the documentation refers to. This is the full
807 version string including alpha/beta/release candidate tags, e.g. ``2.5.2b3``.
808
809.. describe:: |version|
810
811 Replaced by the Python version the documentation refers to. This consists
812 only of the major and minor version parts, e.g. ``2.5``, even for version
813 2.5.1.
814
815.. describe:: |today|
816
817 Replaced by either today's date, or the date set in the build configuration
818 file. Normally has the format ``April 14, 2007``.
819
820
821.. rubric:: Footnotes
822
823.. [1] There is a standard ``.. include`` directive, but it raises errors if the
824 file is not found. This one only emits a warning.