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