summaryrefslogtreecommitdiff
path: root/docutils/docs/ref/rst
diff options
context:
space:
mode:
Diffstat (limited to 'docutils/docs/ref/rst')
-rw-r--r--docutils/docs/ref/rst/directives.txt360
-rw-r--r--docutils/docs/ref/rst/introduction.txt307
-rw-r--r--docutils/docs/ref/rst/restructuredtext.txt2350
3 files changed, 0 insertions, 3017 deletions
diff --git a/docutils/docs/ref/rst/directives.txt b/docutils/docs/ref/rst/directives.txt
deleted file mode 100644
index 8012ee9ed..000000000
--- a/docutils/docs/ref/rst/directives.txt
+++ /dev/null
@@ -1,360 +0,0 @@
-=============================
- reStructuredText Directives
-=============================
-:Author: David Goodger
-:Contact: goodger@users.sourceforge.net
-:Revision: $Revision$
-:Date: $Date$
-
-This document describes the directives implemented in the reference
-reStructuredText parser.
-
-
-.. contents::
-
-
--------------
- Admonitions
--------------
-
-DTD elements: attention, caution, danger, error, hint, important,
-note, tip, warning.
-
-Directive block: directive data and all following indented text
-are interpreted as body elements.
-
-Admonitions are specially marked "topics" that can appear anywhere an
-ordinary body element can. They contain arbitrary body elements.
-Typically, an admonition is rendered as an offset block in a document,
-sometimes outlined or shaded, with a title matching the admonition
-type. For example::
-
- .. DANGER::
- Beware killer rabbits!
-
-This directive might be rendered something like this::
-
- +------------------------+
- | !DANGER! |
- | |
- | Beware killer rabbits! |
- +------------------------+
-
-The following admonition directives have been implemented:
-
-- attention
-- caution
-- danger
-- error
-- hint
-- important
-- note
-- tip
-- warning
-
-Any text immediately following the directive indicator (on the same
-line and/or indented on following lines) is interpreted as a directive
-block and is parsed for normal body elements. For example, the
-following "note" admonition directive contains one paragraph and a
-bullet list consisting of two list items::
-
- .. note:: This is a note admonition.
- This is the second line of the first paragraph.
-
- - The note contains all indented body elements
- following.
- - It includes this bullet list.
-
-
---------
- Images
---------
-
-There are two image directives: "image" and "figure".
-
-
-Image
-=====
-
-DTD element: image.
-
-Directive block: directive data and following indented lines (up to
-the first blank line) are interpreted as image URI and optional
-attributes.
-
-An "image" is a simple picture::
-
- .. image:: picture.png
-
-The URI for the image source file is specified in the directive data.
-As with hyperlink targets, the image URI may begin on the same line as
-the explicit markup start and target name, or it may begin in an
-indented text block immediately following, with no intervening blank
-lines. If there are multiple lines in the link block, they are
-stripped of leading and trailing whitespace and joined together.
-
-Optionally, the image link block may end with a flat field list, the
-_`image attributes`. For example::
-
- .. image:: picture.png
- :height: 100
- :width: 200
- :scale: 50
- :alt: alternate text
-
-The following attributes are recognized:
-
-``alt`` : text
- Alternate text: a short description of the image, displayed by
- applications that cannot display images, or spoken by applications
- for visually impaired users.
-``height`` : integer
- The height of the image in pixels, used to reserve space or scale
- the image vertically.
-``width`` : integer
- The width of the image in pixels, used to reserve space or scale
- the image horizontally.
-``scale`` : integer
- The uniform scaling factor of the image, a percentage (but no "%"
- symbol is required or allowed). "100" means full-size.
-
-
-Figure
-======
-
-DTD elements: figure, image, caption, legend.
-
-Directive block: directive data and all following indented text are
-interpreted as an image URI, optional attributes, a caption, and an
-optional legend.
-
-A "figure" consists of image_ data (optionally including `image
-attributes`_), an optional caption (a single paragraph), and an
-optional legend (arbitrary body elements)::
-
- .. figure:: picture.png
- :scale: 50
- :alt: map to buried treasure
-
- This is the caption of the figure (a simple paragraph).
-
- The legend consists of all elements after the caption. In this
- case, the legend consists of this paragraph and the following
- table:
-
- +-----------------------+-----------------------+
- | Symbol | Meaning |
- +=======================+=======================+
- | .. image:: tent.png | Campground |
- +-----------------------+-----------------------+
- | .. image:: waves.png | Lake |
- +-----------------------+-----------------------+
- | .. image:: peak.png | Mountain |
- +-----------------------+-----------------------+
-
-There must be a blank line before the caption paragraph and before the
-legend. To specify a legend without a caption, use an empty comment
-("..") in place of the caption.
-
-
-----------------
- Document Parts
-----------------
-
-Table of Contents
-=================
-
-DTD elements: pending, topic.
-
-Directive block: directive data and following indented lines (up to
-the first blank line) are interpreted as the topic title and optional
-attributes.
-
-The "contents" directive inserts a table of contents (TOC) in two
-passes: initial parse and transform. During the initial parse, a
-"pending" element is generated which acts as a placeholder, storing
-the TOC title and any attributes internally. At a later stage in the
-processing, the "pending" element is replaced by a "topic" element, a
-title and the table of contents proper.
-
-The directive in its simplest form::
-
- .. contents::
-
-Language-dependent boilerplate text will be used for the title. The
-English default title text is "Contents".
-
-An explicit title, may be specified::
-
- .. contents:: Table of Contents
-
-The title may span lines, although it is not recommended::
-
- .. contents:: Here's a very long Table of
- Contents title
-
-Attributes may be specified for the directive, using a field list::
-
- .. contents:: Table of Contents
- :depth: 2
-
-If the default title is to be used, the attribute field list may begin
-on the same line as the directive marker::
-
- .. contents:: :depth: 2
-
-The following attributes are recognized:
-
-``depth`` : integer
- The number of section levels that are collected in the table of
- contents.
-``local`` : empty
- Generate a local table of contents. Entries will only include
- subsections of the section in which the directive is given. If no
- explicit title is given, the table of contents will not be titled.
-
-
-Footnotes
-=========
-
-DTD elements: pending, topic.
-
-@@@
-
-
-Citations
-=========
-
-DTD elements: pending, topic.
-
-@@@
-
-
-Topic
-=====
-
-DTD element: topic.
-
-@@@
-
-
----------------
- HTML-Specific
----------------
-
-Meta
-====
-
-Non-standard element: meta.
-
-Directive block: directive data and following indented lines (up to
-the first blank line) are parsed for a flat field list.
-
-The "meta" directive is used to specify HTML metadata stored in HTML
-META tags. "Metadata" is data about data, in this case data about web
-pages. Metadata is used to describe and classify web pages in the
-World Wide Web, in a form that is easy for search engines to extract
-and collate.
-
-Within the directive block, a flat field list provides the syntax for
-metadata. The field name becomes the contents of the "name" attribute
-of the META tag, and the field body (interpreted as a single string
-without inline markup) becomes the contents of the "content"
-attribute. For example::
-
- .. meta::
- :description: The reStructuredText plaintext markup language
- :keywords: plaintext, markup language
-
-This would be converted to the following HTML::
-
- <meta name="description"
- content="The reStructuredText plaintext markup language">
- <meta name="keywords" content="plaintext, markup language">
-
-Support for other META attributes ("http-equiv", "scheme", "lang",
-"dir") are provided through field arguments, which must be of the form
-"attr=value"::
-
- .. meta::
- :description lang=en: An amusing story
- :description lang=fr: Un histoire amusant
-
-And their HTML equivalents::
-
- <meta name="description" lang="en" content="An amusing story">
- <meta name="description" lang="fr" content="Un histoire amusant">
-
-Some META tags use an "http-equiv" attribute instead of the "name"
-attribute. To specify "http-equiv" META tags, simply omit the name::
-
- .. meta::
- :http-equiv=Content-Type: text/html; charset=ISO-8859-1
-
-HTML equivalent::
-
- <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
-
-
-Imagemap
-========
-
-Non-standard element: imagemap.
-
-
----------------
- Miscellaneous
----------------
-
-Raw Data Pass-Through
-=====================
-
-DTD element: pending.
-
-Directive block: the directive data is interpreted as an output format
-type, and all following indented text is stored verbatim,
-uninterpreted.
-
-The "raw" directive indicates non-reStructuredText data that is to be
-passed untouched to the Writer. The name of the output format is
-given in the directive data. During the initial parse, a "pending"
-element is generated which acts as a placeholder, storing the format
-and raw data internally. The interpretation of the code is up to the
-Writer. A Writer may ignore any raw output not matching its format.
-
-For example, the following input would be passed untouched by an HTML
-Writer::
-
- .. raw:: html
- <hr width=50 size=10>
-
-A LaTeX Writer could insert the following raw content into its
-output stream::
-
- .. raw:: latex
- \documentclass[twocolumn]{article}
-
-
-Restructuredtext-Test-Directive
-===============================
-
-DTD element: system_warning.
-
-Directive block: directive data is stored, and all following indented
-text is interpreted as a literal block.
-
-This directive is provided for test purposes only. (Nobody is
-expected to type in a name *that* long!) It is converted into a
-level-1 (info) system message showing the directive data, possibly
-followed by a literal block containing the rest of the directive
-block.
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
diff --git a/docutils/docs/ref/rst/introduction.txt b/docutils/docs/ref/rst/introduction.txt
deleted file mode 100644
index 3d7cfc5f8..000000000
--- a/docutils/docs/ref/rst/introduction.txt
+++ /dev/null
@@ -1,307 +0,0 @@
-=====================================
- An Introduction to reStructuredText
-=====================================
-:Author: David Goodger
-:Contact: goodger@users.sourceforge.net
-:Revision: $Revision$
-:Date: $Date$
-
-reStructuredText_ is an easy-to-read, what-you-see-is-what-you-get
-plaintext markup syntax and parser system. It is useful for in-line
-program documentation (such as Python docstrings), for quickly
-creating simple web pages, and for standalone documents.
-reStructuredText_ is a proposed revision and reinterpretation of the
-StructuredText_ and Setext_ lightweight markup systems.
-
-reStructuredText is designed for extensibility for specific
-application domains. Its parser is a component of Docutils_.
-
-This document defines the goals_ of reStructuredText and provides a
-history_ of the project. It is written using the reStructuredText
-markup, and therefore serves as an example of its use. Please also
-see an analysis of the `problems with StructuredText`_ and the
-`reStructuredText markup specification`_ itself at project's web page,
-http://docutils.sourceforge.net/rst.html.
-
-.. _reStructuredText: http://docutils.sourceforge.net/rst.html
-.. _StructuredText:
- http://dev.zope.org/Members/jim/StructuredTextWiki/FrontPage
-.. _Setext: http://docutils.sourceforge.net/mirror/setext.html
-.. _Docutils: http://docutils.sourceforge.net/
-.. _Problems with StructuredText: problems.html
-.. _reStructuredText Markup Specification: reStructuredText.html
-
-
-Goals
-=====
-
-The primary goal of reStructuredText_ is to define a markup syntax for
-use in Python docstrings and other documentation domains, that is
-readable and simple, yet powerful enough for non-trivial use. The
-intended purpose of the reStructuredText markup is twofold:
-
-- the establishment of a set of standard conventions allowing the
- expression of structure within plaintext, and
-
-- the conversion of such documents into useful structured data
- formats.
-
-The secondary goal of reStructuredText is to be accepted by the Python
-community (by way of being blessed by PythonLabs and the BDFL [#]_) as
-a standard for Python inline documentation (possibly one of several
-standards, to account for taste).
-
-.. [#] Python's creator and "Benevolent Dictator For Life",
- Guido van Rossum.
-
-To clarify the primary goal, here are specific design goals, in order,
-beginning with the most important:
-
-1. Readable. The marked-up text must be easy to read without any
- prior knowledge of the markup language. It should be as easily
- read in raw form as in processed form.
-
-2. Unobtrusive. The markup that is used should be as simple and
- unobtrusive as possible. The simplicity of markup constructs
- should be roughly proporional to their frequency of use. The most
- common constructs, with natural and obvious markup, should be the
- simplest and most unobtrusive. Less common contstructs, for which
- there is no natural or obvious markup, should be distinctive.
-
-3. Unambiguous. The rules for markup must not be open for
- interpretation. For any given input, there should be one and only
- one possible output (including error output).
-
-4. Unsurprising. Markup constructs should not cause unexpected output
- upon processing. As a fallback, there must be a way to prevent
- unwanted markup processing when a markup construct is used in a
- non-markup context (for example, when documenting the markup syntax
- itself).
-
-5. Intuitive. Markup should be as obvious and easily remembered as
- possible, for the author as well as for the reader. Constructs
- should take their cues from such naturally occurring sources as
- plaintext email messages, newsgroup postings, and text
- documentation such as README.txt files.
-
-6. Easy. It should be easy to mark up text using any ordinary text
- editor.
-
-7. Scalable. The markup should be applicable regardless of the length
- of the text.
-
-8. Powerful. The markup should provide enough constructs to produce a
- reasonably rich structured document.
-
-9. Language-neutral. The markup should apply to multiple natural (as
- well as artificial) languages, not only English.
-
-10. Extensible. The markup should provide a simple syntax and
- interface for adding more complex general markup, and custom
- markup.
-
-11. Output-format-neutral. The markup will be appropriate for
- processing to multiple output formats, and will not be biased
- toward any particular format.
-
-The design goals above were used as criteria for accepting or
-rejecting syntax, or selecting between alternatives.
-
-It is emphatically *not* the goal of reStructuredText to define
-docstring semantics, such as docstring contents or docstring length.
-These issues are orthogonal to the markup syntax and beyond the scope
-of this specification.
-
-Also, it is not the goal of reStructuredText to maintain compatibility
-with StructuredText_ or Setext_. reStructuredText shamelessly steals
-their great ideas and ignores the not-so-great.
-
-Author's note:
-
- Due to the nature of the problem we're trying to solve (or,
- perhaps, due to the nature of the proposed solution), the above
- goals unavoidably conflict. I have tried to extract and distill
- the wisdom accumulated over the years in the Python Doc-SIG_
- mailing list and elsewhere, to come up with a coherent and
- consistent set of syntax rules, and the above goals by which to
- measure them.
-
- There will inevitably be people who disagree with my particular
- choices. Some desire finer control over their markup, others
- prefer less. Some are concerned with very short docstrings,
- others with full-length documents. This specification is an
- effort to provide a reasonably rich set of markup constructs in a
- reasonably simple form, that should satisfy a reasonably large
- group of reasonable people.
-
- David Goodger (goodger@users.sourceforge.net), 2001-04-20
-
-.. _Doc-SIG: http://www.python.org/sigs/doc-sig/
-
-
-History
-=======
-
-reStructuredText_, the specification, is based on StructuredText_ and
-Setext_. StructuredText was developed by Jim Fulton of `Zope
-Corporation`_ (formerly Digital Creations) and first released in 1996.
-It is now released as a part of the open-source 'Z Object Publishing
-Environment' (ZOPE_). Ian Feldman's and Tony Sanders' earlier Setext_
-specification was either an influence on StructuredText or, by their
-similarities, at least evidence of the correctness of this approach.
-
-I discovered StructuredText_ in late 1999 while searching for a way to
-document the Python modules in one of my projects. Version 1.1 of
-StructuredText was included in Daniel Larsson's pythondoc_. Although
-I was not able to get pythondoc to work for me, I found StructuredText
-to be almost ideal for my needs. I joined the Python Doc-SIG_
-(Documentation Special Interest Group) mailing list and found an
-ongoing discussion of the shortcomings of the StructuredText
-'standard'. This discussion has been going on since the inception of
-the mailing list in 1996, and possibly predates it.
-
-I decided to modify the original module with my own extensions and
-some suggested by the Doc-SIG members. I soon realized that the
-module was not written with extension in mind, so I embarked upon a
-general reworking, including adapting it to the 're' regular
-expression module (the original inspiration for the name of this
-project). Soon after I completed the modifications, I discovered that
-StructuredText.py was up to version 1.23 in the ZOPE distribution.
-Implementing the new syntax extensions from version 1.23 proved to be
-an exercise in frustration, as the complexity of the module had become
-overwhelming.
-
-In 2000, development on StructuredTextNG_ ("Next Generation") began at
-`Zope Corporation`_ (then Digital Creations). It seems to have many
-improvements, but still suffers from many of the problems of classic
-StructuredText.
-
-I decided that a complete rewrite was in order, and even started a
-`reStructuredText SourceForge project`_ (now inactive). My
-motivations (the 'itches' I aim to 'scratch') are as follows:
-
-- I need a standard format for inline documentation of the programs I
- write. This inline documentation has to be convertible to other
- useful formats, such as HTML. I believe many others have the same
- need.
-
-- I believe in the Setext/StructuredText idea and want to help
- formalize the standard. However, I feel the current specifications
- and implementations have flaws that desperately need fixing.
-
-- reStructuredText could form part of the foundation for a
- documentation extraction and processing system, greatly benefitting
- Python. But it is only a part, not the whole. reStructuredText is
- a markup language specification and a reference parser
- implementation, but it does not aspire to be the entire system. I
- don't want reStructuredText or a hypothetical Python documentation
- processor to die stillborn because of overambition.
-
-- Most of all, I want to help ease the documentation chore, the bane
- of many a programmer.
-
-Unfortunately I was sidetracked and stopped working on this project.
-In November 2000 I made the time to enumerate the problems of
-StructuredText and possible solutions, and complete the first draft of
-a specification. This first draft was posted to the Doc-SIG in three
-parts:
-
-- `A Plan for Structured Text`__
-- `Problems With StructuredText`__
-- `reStructuredText: Revised Structured Text Specification`__
-
-__ http://mail.python.org/pipermail/doc-sig/2000-November/001239.html
-__ http://mail.python.org/pipermail/doc-sig/2000-November/001240.html
-__ http://mail.python.org/pipermail/doc-sig/2000-November/001241.html
-
-In March 2001 a flurry of activity on the Doc-SIG spurred me to
-further revise and refine my specification, the result of which you
-are now reading. An offshoot of the reStructuredText project has been
-the realization that a single markup scheme, no matter how well
-thought out, may not be enough. In order to tame the endless debates
-on Doc-SIG, a flexible `Docstring Processing System framework`_ needed
-to be constructed. This framework has become the more important of
-the two projects; reStructuredText_ has found its place as one
-possible choice for a single component of the larger framework.
-
-The project web site and the first project release were rolled out in
-June 2001, including posting the second draft of the spec [#spec-2]_
-and the first draft of PEPs 256, 257, and 258 [#peps-1]_ to the
-Doc-SIG. These documents and the project implementation proceeded to
-evolve at a rapid pace. Implementation history details can be found
-in the project file, HISTORY.txt_.
-
-In November 2001, the reStructuredText parser was nearing completion.
-Development of the parser continued with the addition of small
-convenience features, improvements to the syntax, the filling in of
-gaps, and bug fixes. After a long holiday break, in early 2002 most
-development moved over to the other Docutils components, the
-"Readers", "Writers", and "Transforms". A "standalone" reader
-(processes standalone text file documents) was completed in February,
-and a basic HTML writer (producing HTML 4.01, using CSS-1) was
-completed in early March.
-
-`PEP 287`_, "reStructuredText Standard Docstring Format", was created
-to formally propose reStructuredText as a standard format for Python
-docstrings, PEPs, and other files. It was first posted to
-comp.lang.python_ and the Python-dev_ mailing list on 2002-04-02.
-
-Version 0.4 of the reStructuredText__ and `Docstring Processing
-System`_ projects were released in April 2002. The two projects were
-immediately merged, renamed to "Docutils_", and a 0.1 release soon
-followed.
-
-.. __: `reStructuredText SourceForge project`_
-
-.. [#spec-2]
- - `An Introduction to reStructuredText`__
- - `Problems With StructuredText`__
- - `reStructuredText Markup Specification`__
- - `Python Extensions to the reStructuredText Markup
- Specification`__
-
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001858.html
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001859.html
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001860.html
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001861.html
-
-.. [#peps-1]
- - `PEP 256: Docstring Processing System Framework`__
- - `PEP 258: DPS Generic Implementation Details`__
- - `PEP 257: Docstring Conventions`__
-
- Current working versions of the PEPs can be found in
- http://docutils.sourceforge.net/spec/, and official versions can be
- found in the `master PEP repository`_.
-
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001855.html
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001856.html
- __ http://mail.python.org/pipermail/doc-sig/2001-June/001857.html
-
-
-.. _Zope Corporation: http://www.zope.com
-.. _ZOPE: http://www.zope.org
-.. _reStructuredText SourceForge project:
- http://structuredtext.sourceforge.net/
-.. _pythondoc: http://starship.python.net/crew/danilo/pythondoc/
-.. _StructuredTextNG:
- http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG
-.. _HISTORY.txt:
- http://docutils.sourceforge.net/HISTORY.txt
-.. _PEP 287: http://docutils.sourceforge.net/spec/pep-0287.txt
-.. _Docstring Processing System framework:
- http://docutils.sourceforge.net/spec/pep-0256.txt
-.. _comp.lang.python: news:comp.lang.python
-.. _Python-dev: http://mail.python.org/pipermail/python-dev/
-.. _Docstring Processing System: http://docstring.sourceforge.net/
-.. _Docutils: http://docutils.sourceforge.net/
-.. _master PEP repository: http://www.python.org/peps/
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
diff --git a/docutils/docs/ref/rst/restructuredtext.txt b/docutils/docs/ref/rst/restructuredtext.txt
deleted file mode 100644
index 37b53f784..000000000
--- a/docutils/docs/ref/rst/restructuredtext.txt
+++ /dev/null
@@ -1,2350 +0,0 @@
-=======================================
- reStructuredText Markup Specification
-=======================================
-:Author: David Goodger
-:Contact: goodger@users.sourceforge.net
-:Revision: $Revision$
-:Date: $Date$
-
-reStructuredText_ is plain text that uses simple and intuitive
-constructs to indicate the structure of a document. These constructs
-are equally easy to read in raw and processed forms. This document is
-itself an example of reStructuredText (raw, if you are reading the
-text file, or processed, if you are reading an HTML document, for
-example). The reStructuredText parser is a component of Docutils_.
-
-Simple, implicit markup is used to indicate special constructs, such
-as section headings, bullet lists, and emphasis. The markup used is
-as minimal and unobtrusive as possible. Less often-used constructs
-and extensions to the basic reStructuredText syntax may have more
-elaborate or explicit markup.
-
-reStructuredText is applicable to documents of any length, from the
-very small (such as inline program documentation fragments, e.g.
-Python docstrings) to the quite large (this document).
-
-The first section gives a quick overview of the syntax of the
-reStructuredText markup by example. A complete specification is given
-in the `Syntax Details`_ section.
-
-`Literal blocks`_ (in which no markup processing is done) are used for
-examples throughout this document, to illustrate the plain text
-markup.
-
-
-.. contents::
-
-
------------------------
- Quick Syntax Overview
------------------------
-
-A reStructuredText document is made up of body or block-level
-elements, and may be structured into sections. Sections_ are
-indicated through title style (underlines & optional overlines).
-Sections contain body elements and/or subsections. Some body elements
-contain further elements, such as lists containing list items, which
-in turn may contain paragraphs and other body elemens. Others, such
-as paragraphs, contain text and `inline markup`_ elements.
-
-Here are examples of `body elements`_:
-
-- Paragraphs_ (and `inline markup`_)::
-
- Paragraphs contain text and may contain inline markup:
- *emphasis*, **strong emphasis**, `interpreted text`, ``inline
- literals``, standalone hyperlinks (http://www.python.org),
- external hyperlinks (Python_), internal cross-references
- (example_), footnote references ([1]_), citation references
- ([CIT2002]_), substitution references (|example|), and _`inline
- hyperlink targets`.
-
- Paragraphs are separated by blank lines and are left-aligned.
-
-- Five types of lists:
-
- 1. `Bullet lists`_::
-
- - This is a bullet list.
-
- - Bullets can be "-", "*", or "+".
-
- 2. `Enumerated lists`_::
-
- 1. This is an enumerated list.
-
- 2. Enumerators may be arabic numbers, letters, or roman
- numerals.
-
- 3. `Definition lists`_::
-
- what
- Definition lists associate a term with a definition.
-
- how
- The term is a one-line phrase, and the definition is one
- or more paragraphs or body elements, indented relative to
- the term.
-
- 4. `Field lists`_::
-
- :what: Field lists map field names to field bodies, like
- database records. They are often part of an extension
- syntax.
-
- :how: The field marker is a colon, the field name, optional
- field arguments, and a colon.
-
- The field body may contain one or more body elements,
- indented relative to the field marker.
-
- 5. `Option lists`_, for listing command-line options::
-
- -a command-line option "a"
- -b file options can have arguments
- and long descriptions
- --long options can be long also
- --input=file long options can also have
- arguments
- /V DOS/VMS-style options too
-
- There must be at least two spaces between the option and the
- description.
-
-- `Literal blocks`_::
-
- Literal blocks are indented, and indicated with a double-colon
- ("::") at the end of the preceding paragraph (right here -->)::
-
- if literal_block:
- text = 'is left as-is'
- spaces_and_linebreaks = 'are preserved'
- markup_processing = None
-
-- `Block quotes`_::
-
- Block quotes consist of indented body elements:
-
- This theory, that is mine, is mine.
-
- Anne Elk (Miss)
-
-- `Doctest blocks`_::
-
- >>> print 'Python-specific usage examples; begun with ">>>"'
- Python-specific usage examples; begun with ">>>"
- >>> print '(cut and pasted from interactive Python sessions)'
- (cut and pasted from interactive Python sessions)
-
-- Tables_::
-
- +------------------------+------------+----------+
- | Header row, column 1 | Header 2 | Header 3 |
- +========================+============+==========+
- | body row 1, column 1 | column 2 | column 3 |
- +------------------------+------------+----------+
- | body row 2 | Cells may span |
- +------------------------+-----------------------+
-
-- `Explicit markup blocks`_ all begin with an explicit block marker,
- two periods and a space:
-
- - Footnotes_::
-
- .. [1] A footnote contains body elements, consistently
- indented by at least 3 spaces.
-
- - Citations_::
-
- .. [CIT2002] Just like a footnote, except the label is
- textual.
-
- - `Hyperlink targets`_::
-
- .. _Python: http://www.python.org
-
- .. _example:
-
- The "_example" target above points to this paragraph.
-
- - Directives_::
-
- .. image:: mylogo.png
-
- - `Substitution definitions`_::
-
- .. |symbol here| image:: symbol.png
-
- - Comments_::
-
- .. Comments begin with two dots and a space. Anything may
- follow, except for the syntax of footnotes/citations,
- hyperlink targets, directives, or substitution definitions.
-
-
-----------------
- Syntax Details
-----------------
-
-Descriptions below list "DTD elements" (XML "generic identifiers")
-corresponding to syntax constructs. For details on the hierarchy of
-elements, please see `Docutils Document Tree Structure`_ and the
-`Generic Plaintext Document Interface DTD`_ XML document type
-definition.
-
-
-Whitespace
-==========
-
-Spaces are recommended for indentation_, but tabs may also be used.
-Tabs will be converted to spaces. Tab stops are at every 8th column.
-
-Other whitespace characters (form feeds [chr(12)] and vertical tabs
-[chr(11)]) are converted to single spaces before processing.
-
-
-Blank Lines
------------
-
-Blank lines are used to separate paragraphs and other elements.
-Multiple successive blank lines are equivalent to a single blank line,
-except within literal blocks (where all whitespace is preserved).
-Blank lines may be omitted when the markup makes element separation
-unambiguous, in conjunction with indentation. The first line of a
-document is treated as if it is preceded by a blank line, and the last
-line of a document is treated as if it is followed by a blank line.
-
-
-Indentation
------------
-
-Indentation is used to indicate, and is only significant in
-indicating:
-
-- multi-line contents of list items,
-- multiple body elements within a list item (including nested lists),
-- the definition part of a definition list item,
-- block quotes,
-- the extent of literal blocks, and
-- the extent of explicit markup blocks.
-
-Any text whose indentation is less than that of the current level
-(i.e., unindented text or "dedents") ends the current level of
-indentation.
-
-Since all indentation is significant, the level of indentation must be
-consistent. For example, indentation is the sole markup indicator for
-`block quotes`_::
-
- This is a top-level paragraph.
-
- This paragraph belongs to a first-level block quote.
-
- Paragraph 2 of the first-level block quote.
-
-Multiple levels of indentation within a block quote will result in
-more complex structures::
-
- This is a top-level paragraph.
-
- This paragraph belongs to a first-level block quote.
-
- This paragraph belongs to a second-level block quote.
-
- Another top-level paragraph.
-
- This paragraph belongs to a second-level block quote.
-
- This paragraph belongs to a first-level block quote. The
- second-level block quote above is inside this first-level
- block quote.
-
-When a paragraph or other construct consists of more than one line of
-text, the lines must be left-aligned::
-
- This is a paragraph. The lines of
- this paragraph are aligned at the left.
-
- This paragraph has problems. The
- lines are not left-aligned. In addition
- to potential misinterpretation, warning
- and/or error messages will be generated
- by the parser.
-
-Several constructs begin with a marker, and the body of the construct
-must be indented relative to the marker. For constructs using simple
-markers (`bullet lists`_, `enumerated lists`_, footnotes_, citations_,
-`hyperlink targets`_, directives_, and comments_), the level of
-indentation of the body is determined by the position of the first
-line of text, which begins on the same line as the marker. For
-example, bullet list bodies must be indented by at least two columns
-relative to the left edge of the bullet::
-
- - This is the first line of a bullet list
- item's paragraph. All lines must align
- relative to the first line. [1]_
-
- This indented paragraph is interpreted
- as a block quote.
-
- Because it is not sufficiently indented,
- this paragraph does not belong to the list
- item.
-
- .. [1] Here's a footnote. The second line is aligned
- with the beginning of the footnote label. The ".."
- marker is what determines the indentation.
-
-For constructs using complex markers (`field lists`_ and `option
-lists`_), where the marker may contain arbitrary text, the indentation
-of the first line *after* the marker determines the left edge of the
-body. For example, field lists may have very long markers (containing
-the field names)::
-
- :Hello: This field has a short field name, so aligning the field
- body with the first line is feasible.
-
- :Number-of-African-swallows-requried-to-carry-a-coconut: It would
- be very difficult to align the field body with the left edge
- of the first line. It may even be preferable not to begin the
- body on the same line as the marker.
-
-
-Escaping Mechanism
-==================
-
-The character set universally available to plain text documents, 7-bit
-ASCII, is limited. No matter what characters are used for markup,
-they will already have multiple meanings in written text. Therefore
-markup characters *will* sometimes appear in text **without being
-intended as markup**. Any serious markup system requires an escaping
-mechanism to override the default meaning of the characters used for
-the markup. In reStructuredText we use the backslash, commonly used
-as an escaping character in other domains.
-
-A backslash followed by any character escapes that character. The
-escaped character represents the character itself, and is prevented
-from playing a role in any markup interpretation. The backslash is
-removed from the output. A literal backslash is represented by two
-backslashes in a row (the first backslash "escapes" the second,
-preventing it being interpreted in an "escaping" role).
-
-There are two contexts in which backslashes have no special meaning:
-literal blocks and inline literals. In these contexts, a single
-backslash represents a literal backslash, without having to double up.
-
-Please note that the reStructuredText specification and parser do not
-address the issue of the representation or extraction of text input
-(how and in what form the text actually *reaches* the parser).
-Backslashes and other characters may serve a character-escaping
-purpose in certain contexts and must be dealt with appropriately. For
-example, Python uses backslashes in strings to escape certain
-characters, but not others. The simplest solution when backslashes
-appear in Python docstrings is to use raw docstrings::
-
- r"""This is a raw docstring. Backslashes (\) are not touched."""
-
-
-Reference Names
-===============
-
-Simple reference names are single words consisting of alphanumerics
-plus internal hypens, underscores, and periods; no whitespace or other
-characters are allowed. Footnote labels (Footnotes_ & `Footnote
-References`_), citation labels (Citations_ & `Citation References`_),
-`interpreted text`_ roles, and some `hyperlink references`_ use the
-simple reference name syntax.
-
-Reference names using punctuation or whose names are phrases (two or
-more space-separated words) are called "phrase-references".
-Phrase-references are expressed by enclosing the phrase in backquotes
-and treating the backquoted text as a reference name::
-
- Want to learn about `my favorite programming language`_?
-
- .. _my favorite programming language: http://www.python.org
-
-Simple reference names may also optionally use backquotes.
-
-Reference names are whitespace-neutral and case-insensitive. When
-resolving reference names internally:
-
-- whitespace is normalized (one or more spaces, horizontal or vertical
- tabs, newlines, carriage returns, or form feeds, are interpreted as
- a single space), and
-
-- case is normalized (all alphabetic characters are converted to
- lowercase).
-
-For example, the following `hyperlink references`_ are equivalent::
-
- - `A HYPERLINK`_
- - `a hyperlink`_
- - `A
- Hyperlink`_
-
-Hyperlinks_, footnotes_, and citations_ all share the same namespace
-for reference names. The labels of citations (simple reference names)
-and manually-numbered footnotes (numbers) are entered into the same
-database as other hyperlink names. This means that a footnote
-(defined as "``.. [1]``") which can be referred to by a footnote
-reference (``[1]_``), can also be referred to by a plain hyperlink
-reference (1_). Of course, each type of reference (hyperlink,
-footnote, citation) may be processed and rendered differently. Some
-care should be taken to avoid reference name conflicts.
-
-
-Document Structure
-==================
-
-Document
---------
-
-DTD element: document.
-
-The top-level element of a parsed reStructuredText document is the
-"document" element. After initial parsing, the document element is a
-simple container for a document fragment, consisting of `body
-elements`_, transitions_, and sections_, but lacking a document title
-or other bibliographic elements. The code that calls the parser may
-choose to run one or more optional post-parse transforms_,
-rearranging the document fragment into a complete document with a
-title and possibly other metadata elements (author, date, etc.; see
-`Bibliographic Fields`_).
-
-Specifically, there is no way to specify a document title and subtitle
-explicitly in reStructuredText. Instead, a lone top-level section
-title (see Sections_ below) can be treated as the document
-title. Similarly, a lone second-level section title immediately after
-the "document title" can become the document subtitle. See the
-`DocTitle transform`_ for details.
-
-
-Sections
---------
-
-DTD elements: section, title.
-
-Sections are identified through their titles, which are marked up with
-adornment: "underlines" below the title text, and, in some cases,
-matching "overlines" above the title. An underline/overline is a
-single repeated punctuation character that begins in column 1 and
-forms a line extending at least as far as the right edge of the title
-text. Specifically, an underline/overline character may be any
-non-alphanumeric printable 7-bit ASCII character [#]_. An
-underline/overline must be at least 4 characters long (to avoid
-mistaking ellipses ["..."] for overlines). When an overline is used,
-the length and character used must match the underline. There may be
-any number of levels of section titles, although some output formats
-may have limits (HTML has 6 levels).
-
-.. [#] The following are all valid section title adornment
- characters::
-
- ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
-
- Some characters are more suitable than others. The following are
- recommended::
-
- = - ` : ' " ~ ^ _ * + # < >
-
-Rather than imposing a fixed number and order of section title
-adornment styles, the order enforced will be the order as encountered.
-The first style encountered will be an outermost title (like HTML H1),
-the second style will be a subtitle, the third will be a subsubtitle,
-and so on.
-
-Below are examples of section title styles::
-
- ===============
- Section Title
- ===============
-
- ---------------
- Section Title
- ---------------
-
- Section Title
- =============
-
- Section Title
- -------------
-
- Section Title
- `````````````
-
- Section Title
- '''''''''''''
-
- Section Title
- .............
-
- Section Title
- ~~~~~~~~~~~~~
-
- Section Title
- *************
-
- Section Title
- +++++++++++++
-
- Section Title
- ^^^^^^^^^^^^^
-
-When a title has both an underline and an overline, the title text may
-be inset, as in the first two examples above. This is merely
-aesthetic and not significant. Underline-only title text may *not* be
-inset.
-
-A blank line after a title is optional. All text blocks up to the
-next title of the same or higher level are included in a section (or
-subsection, etc.).
-
-All section title styles need not be used, nor need any specific
-section title style be used. However, a document must be consistent
-in its use of section titles: once a hierarchy of title styles is
-established, sections must use that hierarchy.
-
-Each section title automatically generates a hyperlink target pointing
-to the section. The text of the hyperlink target (the "reference
-name") is the same as that of the section title. See `Implicit
-Hyperlink Targets`_ for a complete description.
-
-Sections may contain `body elements`_, transitions_, and nested
-sections.
-
-
-Transitions
------------
-
-DTD element: transition.
-
- Instead of subheads, extra space or a type ornament between
- paragraphs may be used to mark text divisions or to signal
- changes in subject or emphasis.
-
- (The Chicago Manual of Style, 14th edition, section 1.80)
-
-Transitions are commonly seen in novels and short fiction, as a gap
-spanning one or more lines, with or without a type ornament such as a
-row of asterisks. Transitions separate other body elements. A
-transition should not begin or end a section or document, nor should
-two transitions be immediately adjacent.
-
-The syntax for a transition marker is a horizontal line of 4 or more
-repeated punctuation characters. The syntax is the same as section
-title underlines without title text. Transition markers require blank
-lines before and after::
-
- Para.
-
- ----------
-
- Para.
-
-Unlike section title underlines, no hierarchy of transition markers is
-enforced, nor do differences in transition markers accomplish
-anything. It is recommended that a single consistent style be used.
-
-The processing system is free to render transitions in output in any
-way it likes. For example, horizontal rules (``<HR>``) in HTML output
-would be an obvious choice.
-
-
-Body Elements
-=============
-
-Paragraphs
-----------
-
-DTD element: paragraph.
-
-Paragraphs consist of blocks of left-aligned text with no markup
-indicating any other body element. Blank lines separate paragraphs
-from each other and from other body elements. Paragraphs may contain
-`inline markup`_.
-
-Syntax diagram::
-
- +------------------------------+
- | paragraph |
- | |
- +------------------------------+
-
- +------------------------------+
- | paragraph |
- | |
- +------------------------------+
-
-
-Bullet Lists
-------------
-
-DTD elements: bullet_list, list_item.
-
-A text block which begins with a "-", "*", or "+", followed by
-whitespace, is a bullet list item (a.k.a. "unordered" list item).
-List item bodies must be left-aligned and indented relative to the
-bullet; the text immediately after the bullet determines the
-indentation. For example::
-
- - This is the first bullet list item. The blank line above the
- first list item is required; blank lines between list items
- (such as below this paragraph) are optional.
-
- - This is the first paragraph in the second item in the list.
-
- This is the second paragraph in the second item in the list.
- The blank line above this paragraph is required. The left edge
- of this paragraph lines up with the paragraph above, both
- indented relative to the bullet.
-
- - This is a sublist. The bullet lines up with the left edge of
- the text blocks above. A sublist is a new list so requires a
- blank line above and below.
-
- - This is the third item of the main list.
-
- This paragraph is not part of the list.
-
-Here are examples of **incorrectly** formatted bullet lists::
-
- - This first line is fine.
- A blank line is required between list items and paragraphs.
- (Warning)
-
- - The following line appears to be a new sublist, but it is not:
- - This is a paragraph contination, not a sublist (since there's
- no blank line). This line is also incorrectly indented.
- - Warnings may be issued by the implementation.
-
-Syntax diagram::
-
- +------+-----------------------+
- | "- " | list item |
- +------| (body elements)+ |
- +-----------------------+
-
-
-Enumerated Lists
-----------------
-
-DTD elements: enumerated_list, list_item.
-
-Enumerated lists (a.k.a. "ordered" lists) are similar to bullet lists,
-but use enumerators instead of bullets. An enumerator consists of an
-enumeration sequence member and formatting, followed by whitespace.
-The following enumeration sequences are recognized:
-
-- arabic numerals: 1, 2, 3, ... (no upper limit).
-- uppercase alphabet characters: A, B, C, ..., Z.
-- lower-case alphabet characters: a, b, c, ..., z.
-- uppercase Roman numerals: I, II, III, IV, ..., MMMMCMXCIX (4999).
-- lowercase Roman numerals: i, ii, iii, iv, ..., mmmmcmxcix (4999).
-
-The following formatting types are recognized:
-
-- suffixed with a period: "1.", "A.", "a.", "I.", "i.".
-- surrounded by parentheses: "(1)", "(A)", "(a)", "(I)", "(i)".
-- suffixed with a right-parenthesis: "1)", "A)", "a)", "I)", "i)".
-
-While parsing an enumerated list, a new list will be started whenever:
-
-- An enumerator is encountered which does not have the same format and
- sequence type as the current list (e.g. "1.", "(a)" produces two
- separate lists).
-
-- The enumerators are not in sequence (e.g., "1.", "3." produces two
- separate lists).
-
-It is recommended that the enumerator of the first list item be
-ordinal-1 ("1", "A", "a", "I", or "i"). Although other start-values
-will be recognized, they may not be supported by the output format. A
-level-1 [info] system message will be generated for any list beginning
-with a non-ordinal-1 enumerator.
-
-Lists using Roman numerals must begin with "I"/"i" or a
-multi-character value, such as "II" or "XV". Any other
-single-character Roman numeral ("V", "X", "L", "C", "D", "M") will be
-interpreted as a letter of the alphabet, not as a Roman numeral.
-Likewise, lists using letters of the alphabet may not begin with
-"I"/"i", since these are recognized as Roman numeral 1.
-
-Nested enumerated lists must be created with indentation. For
-example::
-
- 1. Item 1.
-
- a) Item 1a.
- b) Item 1b.
-
-Example syntax diagram::
-
- +-------+----------------------+
- | "1. " | list item |
- +-------| (body elements)+ |
- +----------------------+
-
-
-Definition Lists
-----------------
-
-DTD elements: definition_list, definition_list_item, term, classifier,
-definition.
-
-Each definition list item contains a term, an optional classifier, and
-a definition. A term is a simple one-line word or phrase. An
-optional classifier may follow the term on the same line, after " : "
-(space, colon, space). A definition is a block indented relative to
-the term, and may contain multiple paragraphs and other body elements.
-There may be no blank line between a term and a definition (this
-distinguishes definition lists from `block quotes`_). Blank lines are
-required before the first and after the last definition list item, but
-are optional in-between. For example::
-
- term 1
- Definition 1.
-
- term 2
- Definition 2, paragraph 1.
-
- Definition 2, paragraph 2.
-
- term 3 : classifier
- Definition 3.
-
-A definition list may be used in various ways, including:
-
-- As a dictionary or glossary. The term is the word itself, a
- classifier may be used to indicate the usage of the term (noun,
- verb, etc.), and the definition follows.
-
-- To describe program variables. The term is the variable name, a
- classifier may be used to indicate the type of the variable (string,
- integer, etc.), and the definition describes the variable's use in
- the program. This usage of definition lists supports the classifier
- syntax of Grouch_, a system for describing and enforcing a Python
- object schema.
-
-Syntax diagram::
-
- +---------------------------+
- | term [ " : " classifier ] |
- +--+------------------------+--+
- | definition |
- | (body elements)+ |
- +---------------------------+
-
-
-Field Lists
------------
-
-DTD elements: field_list, field, field_name, field_argument,
-field_body.
-
-Field lists are most often used as part of an extension syntax, such
-as attributes for directives_, or database-like fields meant for
-further processing. They are not intended to be an alternative to
-definition lists. Applications of reStructuredText may recognize
-field names and transform fields or field bodies in certain contexts.
-See `Bibliographic Fields`_ below for one example, or the "image"
-directive in `reStructuredText Directives`_ for another.
-
-Field lists are mappings from field names to field bodies, modeled on
-RFC822_ headers. A field name is made up of one or more letters,
-numbers, and punctuation, except colons (":") and whitespace. Field
-names are case-insensitive. There may be additional data separated
-from the field name, called field arguments. The field name and
-optional field argument(s), along with a single colon prefix and
-suffix, together form the field marker. The field marker is followed
-by whitespace and the field body. The field body may contain multiple
-body elements, indented relative to the field marker. The first line
-after the field name marker determines the indentation of the field
-body. For example::
-
- :Date: 2001-08-16
- :Version: 1
- :Authors: - Me
- - Myself
- - I
- :Indentation: Since the field marker may be quite long, the second
- and subsequent lines of the field body do not have to line up
- with the first line, but they must be indented relative to the
- field name marker, and they must line up with each other.
- :Parameter i: integer
-
-Field arguments are separated from the field name and each other by
-whitespace, and may not contain colons (":"). The interpretation of
-field arguments is up to the application. For example::
-
- :name1 word number=1:
- Both "word" and "number=1" are single words.
-
-The syntax for field arguments may be extended in the future. For
-example, quoted phrases may be treated as a single argument, and
-direct support for the "name=value" syntax may be added.
-
-Standard RFC822 headers cannot be used for this construct because they
-are ambiguous. A word followed by a colon at the beginning of a line
-is common in written text. However, in well-defined contexts such as
-when a field list invariably occurs at the beginning of a document
-(PEPs and email messages), standard RFC822 headers could be used.
-
-Syntax diagram (simplified)::
-
- +------------------------------+------------+
- | ":" name (" " argument)* ":" | field body |
- +-------+----------------------+ |
- | (body elements)+ |
- +-----------------------------------+
-
-
-Bibliographic Fields
-````````````````````
-
-DTD elements: docinfo, author, authors, organization, contact,
-version, status, date, copyright, topic.
-
-When a field list is the first non-comment element in a document
-(after the document title, if there is one), it may have certain
-specific fields transformed to document bibliographic data. This
-bibliographic data corresponds to the front matter of a book, such as
-the title page and copyright page.
-
-Certain field names (listed below) are recognized and transformed to
-the corresponding DTD elements, most becoming child elements of the
-"docinfo" element. No ordering is required of these fields, although
-they may be rearranged to fit the document structure, as noted.
-Unless otherwise indicated in the list below, each of the
-bibliographic elements' field bodies may contain a single paragraph
-only. Field bodies may be checked for `RCS keywords`_ and cleaned up.
-Any unrecognized fields will remain in a generic field list in the
-document body.
-
-The registered bibliographic field names and their corresponding DTD
-elements are as follows:
-
-- Field name "Author": author element.
-- "Authors": authors. May contain either: a single paragraph
- consisting of a list of authors, separated by ";" or ","; or a
- bullet list whose elements each contain a single paragraph per
- author.
-- "Organization": organization.
-- "Contact": contact.
-- "Version": version.
-- "Status": status.
-- "Date": date.
-- "Copyright": copyright.
-- "Abstract": topic. May contain arbitrary body elements. Only one
- abstract is allowed. The abstract becomes a topic element with
- title "Abstract" (or language equivalent) immediately following the
- docinfo element.
-
-This field-name-to-element mapping can be extended, or replaced for
-other languages. See the `DocInfo transform`_ implementation
-documentation for details.
-
-
-RCS Keywords
-````````````
-
-`Bibliographic fields`_ recognized by the parser are normally checked
-for RCS [#]_ keywords and cleaned up [#]_. RCS keywords may be
-entered into source files as "$keyword$", and once stored under RCS or
-CVS [#]_, they are expanded to "$keyword: expansion text $". For
-example, a "Status" field will be transformed to a "status" element::
-
- :Status: $keyword: expansion text $
-
-.. [#] Revision Control System.
-.. [#] RCS keyword processing can be turned off (unimplemented).
-.. [#] Concurrent Versions System. CVS uses the same keywords as RCS.
-
-Processed, the "status" element's text will become simply "expansion
-text". The dollar sign delimiters and leading RCS keyword name are
-removed.
-
-The RCS keyword processing only kicks in when all of these conditions
-hold:
-
-1. The field list is in bibliographic context (first non-comment
- contstruct in the document, after a document title if there is
- one).
-
-2. The field name is a recognized bibliographic field name.
-
-3. The sole contents of the field is an expanded RCS keyword, of the
- form "$Keyword: data $".
-
-
-Option Lists
-------------
-
-DTD elements: option_list, option_list_item, option_group, option,
-option_string, option_argument, description.
-
-Option lists are two-column lists of command-line options and
-descriptions, documenting a program's options. For example::
-
- -a Output all.
- -b Output both (this description is
- quite long).
- -c arg Output just arg.
- --long Output all day long.
-
- -p This option has two paragraphs in the description.
- This is the first.
-
- This is the second. Blank lines may be omitted between
- options (as above) or left in (as here and below).
-
- --very-long-option A VMS-syle option. Note the adjustment for
- the required two spaces.
-
- --an-even-longer-option
- The description can also start on the next line.
-
- -2, --two This option has two variants.
-
- -f FILE, --file=FILE These two options are synonyms; both have
- arguments.
-
- /V A VMS/DOS-style option.
-
-There are several types of options recognized by reStructuredText:
-
-- Short POSIX options consist of one dash and an option letter.
-- Long POSIX options consist of two dashes and an option word; some
- systems use a single dash.
-- Old GNU-style "plus" options consist of one plus and an option
- letter ("plus" options are deprecated now, their use discouraged).
-- DOS/VMS options consist of a slash and an option letter or word.
-
-Please note that both POSIX-style and DOS/VMS-style options may be
-used by DOS or Windows software. These and other variations are
-sometimes used mixed together. The names above have been chosen for
-convenience only.
-
-The syntax for short and long POSIX options is based on the syntax
-supported by Python's getopt.py_ module, which implements an option
-parser similar to the `GNU libc getopt_long()`_ function but with some
-restrictions. There are many variant option systems, and
-reStructuredText option lists do not support all of them.
-
-Although long POSIX and DOS/VMS option words may be allowed to be
-truncated by the operating system or the application when used on the
-command line, reStructuredText option lists do not show or support
-this with any special syntax. The complete option word should be
-given, supported by notes about truncation if and when applicable.
-
-Options may be followed by an argument placeholder, whose role and
-syntax should be explained in the description text. Either a space or
-an equals sign may be used as a delimiter between options and option
-argument placeholders.
-
-Multiple option "synonyms" may be listed, sharing a single
-description. They must be separated by comma-space.
-
-There must be at least two spaces between the option(s) and the
-description. The description may contain multiple body elements. The
-first line after the option marker determines the indentation of the
-description. As with other types of lists, blank lines are required
-before the first option list item and after the last, but are optional
-between option entries.
-
-Syntax diagram (simplified)::
-
- +----------------------------+-------------+
- | option [" " argument] " " | description |
- +-------+--------------------+ |
- | (body elements)+ |
- +----------------------------------+
-
-
-Literal Blocks
---------------
-
-DTD element: literal_block.
-
-A paragraph consisting of two colons ("::") signifies that all
-following **indented** text blocks comprise a literal block. No
-markup processing is done within a literal block. It is left as-is,
-and is typically rendered in a monospaced typeface::
-
- This is a typical paragraph. A literal block follows.
-
- ::
-
- for a in [5,4,3,2,1]: # this is program code, shown as-is
- print a
- print "it's..."
- # a literal block continues until the indentation ends
-
- This text has returned to the indentation of the first paragraph,
- is outside of the literal block, and is therefore treated as an
- ordinary paragraph.
-
-The paragraph containing only "::" will be completely removed from the
-output; no empty paragraph will remain.
-
-As a convenience, the "::" is recognized at the end of any paragraph.
-If immediately preceded by whitespace, both colons will be removed
-from the output (this is the "partially minimized" form). When text
-immediately precedes the "::", *one* colon will be removed from the
-output, leaving only one colon visible (i.e., "::" will be replaced by
-":"; this is the "fully minimized" form).
-
-In other words, these are all equivalent (please pay attention to the
-colons after "Paragraph"):
-
-1. Expanded form::
-
- Paragraph:
-
- ::
-
- Literal block
-
-2. Partially minimized form::
-
- Paragraph: ::
-
- Literal block
-
-3. Fully minimized form::
-
- Paragraph::
-
- Literal block
-
-The minimum leading whitespace will be removed from each line of the
-literal block. Other than that, all whitespace (including line
-breaks) is preserved. Blank lines are required before and after a
-literal block, but these blank lines are not included as part of the
-literal block.
-
-Syntax diagram::
-
- +------------------------------+
- | paragraph |
- | (ends with "::") |
- +------------------------------+
- +---------------------------+
- | literal block |
- +---------------------------+
-
-
-Block Quotes
-------------
-
-DTD element: block_quote.
-
-A text block that is indented relative to the preceding text, without
-markup indicating it to be a literal block, is a block quote. All
-markup processing (for body elements and inline markup) continues
-within the block quote::
-
- This is an ordinary paragraph, introducing a block quote.
-
- "It is my business to know things. That is my trade."
-
- -- Sherlock Holmes
-
-Blank lines are required before and after a block quote, but these
-blank lines are not included as part of the block quote.
-
-Syntax diagram::
-
- +------------------------------+
- | (current level of |
- | indentation) |
- +------------------------------+
- +---------------------------+
- | block quote |
- | (body elements)+ |
- +---------------------------+
-
-
-Doctest Blocks
---------------
-
-DTD element: doctest_block.
-
-Doctest blocks are interactive Python sessions cut-and-pasted into
-docstrings. They are meant to illustrate usage by example, and
-provide an elegant and powerful testing environment via the `doctest
-module`_ in the Python standard library.
-
-Doctest blocks are text blocks which begin with ``">>> "``, the Python
-interactive interpreter main prompt, and end with a blank line.
-Doctest blocks are treated as a special case of literal blocks,
-without requiring the literal block syntax. If both are present, the
-literal block syntax takes priority over Doctest block syntax::
-
- This is an ordinary paragraph.
-
- >>> print 'this is a Doctest block'
- this is a Doctest block
-
- The following is a literal block::
-
- >>> This is not recognized as a doctest block by
- reStructuredText. It *will* be recognized by the doctest
- module, though!
-
-Indentation is not required for doctest blocks.
-
-
-Tables
-------
-
-DTD elements: table, tgroup, colspec, thead, tbody, row, entry.
-
-Tables are described with a visual outline made up of the characters
-"-", "=", "|", and "+". The hyphen ("-") is used for horizontal lines
-(row separators). The equals sign ("=") may be used to separate
-optional header rows from the table body. The vertical bar ("|") is
-used for vertical lines (column separators). The plus sign ("+") is
-used for intersections of horizontal and vertical lines.
-
-Each table cell is treated as a miniature document; the top and bottom
-cell boundaries act as delimiting blank lines. Each cell contains
-zero or more body elements. Cell contents may include left and/or
-right margins, which are removed before processing. Example::
-
- +------------------------+------------+----------+----------+
- | Header row, column 1 | Header 2 | Header 3 | Header 4 |
- | (header rows optional) | | | |
- +========================+============+==========+==========+
- | body row 1, column 1 | column 2 | column 3 | column 4 |
- +------------------------+------------+----------+----------+
- | body row 2 | Cells may span columns. |
- +------------------------+------------+---------------------+
- | body row 3 | Cells may | - Table cells |
- +------------------------+ span rows. | - contain |
- | body row 4 | | - body elements. |
- +------------------------+------------+---------------------+
-
-As with other body elements, blank lines are required before and after
-tables. Tables' left edges should align with the left edge of
-preceding text blocks; otherwise, the table is considered to be part
-of a block quote.
-
-Some care must be taken with tables to avoid undesired interactions
-with cell text in rare cases. For example, the following table
-contains a cell in row 2 spanning from column 2 to column 4::
-
- +--------------+----------+-----------+-----------+
- | row 1, col 1 | column 2 | column 3 | column 4 |
- +--------------+----------+-----------+-----------+
- | row 2 | |
- +--------------+----------+-----------+-----------+
- | row 3 | | | |
- +--------------+----------+-----------+-----------+
-
-If a vertical bar is used in the text of that cell, it could have
-unintended effects if accidentally aligned with column boundaries::
-
- +--------------+----------+-----------+-----------+
- | row 1, col 1 | column 2 | column 3 | column 4 |
- +--------------+----------+-----------+-----------+
- | row 2 | Use the command ``ls | more``. |
- +--------------+----------+-----------+-----------+
- | row 3 | | | |
- +--------------+----------+-----------+-----------+
-
-Several solutions are possible. All that is needed is to break the
-continuity of the cell outline rectangle. One possibility is to shift
-the text by adding an extra space before::
-
- +--------------+----------+-----------+-----------+
- | row 1, col 1 | column 2 | column 3 | column 4 |
- +--------------+----------+-----------+-----------+
- | row 2 | Use the command ``ls | more``. |
- +--------------+----------+-----------+-----------+
- | row 3 | | | |
- +--------------+----------+-----------+-----------+
-
-Another possibility is to add an extra line to row 2::
-
- +--------------+----------+-----------+-----------+
- | row 1, col 1 | column 2 | column 3 | column 4 |
- +--------------+----------+-----------+-----------+
- | row 2 | Use the command ``ls | more``. |
- | | |
- +--------------+----------+-----------+-----------+
- | row 3 | | | |
- +--------------+----------+-----------+-----------+
-
-
-Explicit Markup Blocks
-----------------------
-
-An explicit markup block is a text block:
-
-- whose first line begins with ".." followed by whitespace (the
- "explicit markup start"),
-- whose second and subsequent lines (if any) are indented relative to
- the first, and
-- which ends before an unindented line.
-
-Explicit markup blocks are analogous to bullet list items, with ".."
-as the bullet. The text immediately after the explicit markup start
-determines the indentation of the block body. Blank lines are
-required between explicit markup blocks and other elements, but are
-optional between explicit markup blocks where unambiguous.
-
-The explicit markup syntax is used for footnotes, citations, hyperlink
-targets, directives, and comments.
-
-
-Footnotes
-`````````
-
-DTD elements: footnote, label.
-
-Each footnote consists of an explicit markup start (".. "), a left
-square bracket, the footnote label, a right square bracket, and
-whitespace, followed by indented body elements. A footnote label can
-be:
-
-- a whole decimal number consisting of one or more digits,
-
-- a single "#" (denoting `auto-numbered footnotes`_),
-
-- a "#" followed by a simple reference name (an `autonumber label`_),
- or
-
-- a single "*" (denoting `auto-symbol footnotes`_).
-
-If the first body element within a footnote is a simple paragraph, it
-may begin on the same line as the footnote label. Other elements must
-begin on a new line, consistently indented (by at least 3 spaces) and
-left-aligned.
-
-Footnotes may occur anywhere in the document, not only at the end.
-Where or how they appear in the processed output depends on the
-processing system.
-
-Here is a manually numbered footnote::
-
- .. [1] Body elements go here.
-
-Each footnote automatically generates a hyperlink target pointing to
-itself. The text of the hyperlink target name is the same as that of
-the footnote label. `Auto-numbered footnotes`_ generate a number as
-their footnote label and reference name. See `Implicit Hyperlink
-Targets`_ for a complete description of the mechanism.
-
-Syntax diagram::
-
- +-------+-------------------------+
- | ".. " | "[" label "]" footnote |
- +-------+ |
- | (body elements)+ |
- +-------------------------+
-
-
-Auto-Numbered Footnotes
-.......................
-
-A number sign ("#") may be used as the first character of a footnote
-label to request automatic numbering of the footnote or footnote
-reference.
-
-The first footnote to request automatic numbering is assigned the
-label "1", the second is assigned the label "2", and so on (assuming
-there are no manually numbered footnotes present; see `Mixed Manual
-and Auto-Numbered Footnotes`_ below). A footnote which has
-automatically received a label "1" generates an implicit hyperlink
-target with name "1", just as if the label was explicitly specified.
-
-.. _autonumber label: `autonumber labels`_
-
-A footnote may specify a label explicitly while at the same time
-requesting automatic numbering: ``[#label]``. These labels are called
-_`autonumber labels`. Autonumber labels do two things:
-
-- On the footnote itself, they generate a hyperlink target whose name
- is the autonumber label (doesn't include the "#").
-
-- They allow an automatically numbered footnote to be referred to more
- than once, as a footnote reference or hyperlink reference. For
- example::
-
- If [#note]_ is the first footnote reference, it will show up as
- "[1]". We can refer to it again as [#note]_ and again see
- "[1]". We can also refer to it as note_ (an ordinary internal
- hyperlink reference).
-
- .. [#note] This is the footnote labeled "note".
-
-The numbering is determined by the order of the footnotes, not by the
-order of the references. For footnote references without autonumber
-labels (``[#]_``), the footnotes and footnote references must be in
-the same relative order but need not alternate in lock-step. For
-example::
-
- [#]_ is a reference to footnote 1, and [#]_ is a reference to
- footnote 2.
-
- .. [#] This is footnote 1.
- .. [#] This is footnote 2.
- .. [#] This is footnote 3.
-
- [#]_ is a reference to footnote 3.
-
-Special care must be taken if footnotes themselves contain
-auto-numbered footnote references, or if multiple references are made
-in close proximity. Footnotes and references are noted in the order
-they are encountered in the document, which is not necessarily the
-same as the order in which a person would read them.
-
-
-Auto-Symbol Footnotes
-.....................
-
-An asterisk ("*") may be used for footnote labels to request automatic
-symbol generation for footnotes and footnote references. The asterisk
-may be the only character in the label. For example::
-
- Here is a symbolic footnote reference: [*]_.
-
- .. [*] This is the footnote.
-
-A transform will insert symbols as labels into corresponding footnotes
-and footnote references.
-
-The standard Docutils system uses the following symbols for footnote
-marks [#]_:
-
-- asterisk/star ("*")
-- dagger (HTML character entity "&dagger;")
-- double dagger ("&Dagger;")
-- section mark ("&sect;")
-- pilcrow or paragraph mark ("&para;")
-- number sign ("#")
-- spade suit ("&spades;")
-- heart suit ("&hearts;")
-- diamond suit ("&diams;")
-- club suit ("&clubs;")
-
-.. [#] This list was inspired by the list of symbols for "Note
- Reference Marks" in The Chicago Manual of Style, 14th edition,
- section 12.51. "Parallels" ("\|\|") were given in CMoS instead of
- the pilcrow. The last four symbols (the card suits) were added
- arbitrarily.
-
-If more than ten symbols are required, the same sequence will be
-reused, doubled and then tripled, and so on ("**" etc.).
-
-
-Mixed Manual and Auto-Numbered Footnotes
-........................................
-
-Manual and automatic footnote numbering may both be used within a
-single document, although the results may not be expected. Manual
-numbering takes priority. Only unused footnote numbers are assigned
-to auto-numbered footnotes. The following example should be
-illustrative::
-
- [2]_ will be "2" (manually numbered),
- [#]_ will be "3" (anonymous auto-numbered), and
- [#label]_ will be "1" (labeled auto-numbered).
-
- .. [2] This footnote is labeled manually, so its number is fixed.
-
- .. [#label] This autonumber-labeled footnote will be labeled "1".
- It is the first auto-numbered footnote and no other footnote
- with label "1" exists. The order of the footnotes is used to
- determine numbering, not the order of the footnote references.
-
- .. [#] This footnote will be labeled "3". It is the second
- auto-numbered footnote, but footnote label "2" is already used.
-
-
-Citations
-`````````
-
-Citations are identical to footnotes except that they use only
-non-numeric labels such as ``[note]`` or ``[GVR2001]``. Citation
-labels are simple `reference names`_ (case-insensitive single words
-consisting of alphanumerics plus internal hyphens, underscores, and
-periods; no whitespace). Citations may be rendered separately and
-differently from footnotes. For example::
-
- Here is a citation reference: [CIT2002]_.
-
- .. [CIT2002] This is the citation. It's just like a footnote,
- except the label is textual.
-
-
-.. _hyperlinks:
-
-Hyperlink Targets
-`````````````````
-
-DTD element: target.
-
-These are also called _`explicit hyperlink targets`, to differentiate
-them from `implicit hyperlink targets`_ defined below.
-
-Hyperlink targets identify a location within or outside of a document,
-which may be linked to by `hyperlink references`_.
-
-Hyperlink targets may be named or anonymous. Named hyperlink targets
-consist of an explicit markup start (".. "), an underscore, the
-reference name (no trailing underscore), a colon, whitespace, and a
-link block::
-
- .. _hyperlink-name: link-block
-
-Reference names are whitespace-neutral and case-insensitive. See
-`Reference Names`_ for details and examples.
-
-Anonymous hyperlink targets consist of an explicit markup start
-(".. "), two underscores, a colon, whitespace, and a link block; there
-is no reference name::
-
- .. __: anonymous-hyperlink-target-link-block
-
-An alternate syntax for anonymous hyperlinks consists of two
-underscores, a space, and a link block::
-
- __ anonymous-hyperlink-target-link-block
-
-See `Anonymous Hyperlinks`_ below.
-
-There are three types of hyperlink targets: internal, external, and
-indirect.
-
-1. _`Internal hyperlink targets` have empty link blocks. They provide
- an end point allowing a hyperlink to connect one place to another
- within a document. An internal hyperlink target points to the
- element following the target. For example::
-
- Clicking on this internal hyperlink will take us to the target_
- below.
-
- .. _target:
-
- The hyperlink target above points to this paragraph.
-
- Internal hyperlink targets may be "chained". Multiple adjacent
- internal hyperlink targets all point to the same element::
-
- .. _target1:
- .. _target2:
-
- The targets "target1" and "target2" are synonyms; they both
- point to this paragraph.
-
- If the element "pointed to" is an external hyperlink target (with a
- URI in its link block; see #2 below) the URI from the external
- hyperlink target is propagated to the internal hyperlink targets;
- they will all "point to" the same URI. There is no need to
- duplicate a URI. For example, all three of the following hyperlink
- targets refer to the same URI::
-
- .. _Python DOC-SIG mailing list archive:
- .. _archive:
- .. _Doc-SIG: http://mail.python.org/pipermail/doc-sig/
-
- An inline form of internal hyperlink target is available; see
- `Inline Hyperlink Targets`_.
-
-2. _`External hyperlink targets` have an absolute or relative URI in
- their link blocks. For example, take the following input::
-
- See the Python_ home page for info.
-
- .. _Python: http://www.python.org
-
- After processing into HTML, the hyperlink might be expressed as::
-
- See the <A HREF="http://www.python.org">Python</A> home page
- for info.
-
- An external hyperlink's URI may begin on the same line as the
- explicit markup start and target name, or it may begin in an
- indented text block immediately following, with no intervening
- blank lines. If there are multiple lines in the link block, they
- are stripped of leading and trailing whitespace and concatenated.
- The following external hyperlink targets are equivalent::
-
- .. _one-liner: http://docutils.sourceforge.net/rst.html
-
- .. _starts-on-this-line: http://
- docutils.sourceforge.net/rst.html
-
- .. _entirely-below:
- http://docutils.
- sourceforge.net/rst.html
-
- If an external hyperlink target's URI contains an underscore as its
- last character, it must be escaped to avoid being mistaken for an
- indirect hyperlink target::
-
- This link_ refers to a file called ``underscore_``.
-
- .. _link: underscore\_
-
-3. _`Indirect hyperlink targets` have a hyperlink reference in their
- link blocks. In the following example, target "one" indirectly
- references whatever target "two" references, and target "two"
- references target "three", an internal hyperlink target. In
- effect, all three reference the same thing::
-
- .. _one: two_
- .. _two: three_
- .. _three:
-
- Just as with `hyperlink references`_ anywhere else in a document,
- if a phrase-reference is used in the link block it must be enclosed
- in backquotes. As with `external hyperlink targets`_, the link
- block of an indirect hyperlink target may begin on the same line as
- the explicit markup start or the next line. It may also be split
- over multiple lines, in which case the lines are joined with
- whitespace before being normalized.
-
- For example, the following indirect hyperlink targets are
- equivalent::
-
- .. _one-liner: `A HYPERLINK`_
- .. _entirely-below:
- `a hyperlink`_
- .. _split: `A
- Hyperlink`_
-
-If a reference name contains a colon followed by whitespace, either:
-
-- the phrase must be enclosed in backquotes::
-
- .. _`FAQTS: Computers: Programming: Languages: Python`:
- http://python.faqts.com/
-
-- or the colon(s) must be backslash-escaped in the link target::
-
- .. _Chapter One\: "Tadpole Days":
-
- It's not easy being green...
-
-See `Implicit Hyperlink Targets`_ below for the resolution of
-duplicate reference names.
-
-Syntax diagram::
-
- +-------+----------------------+
- | ".. " | "_" name ":" link |
- +-------+ block |
- | |
- +----------------------+
-
-
-Anonymous Hyperlinks
-....................
-
-The `World Wide Web Consortium`_ recommends in its `HTML Techniques
-for Web Content Accessibility Guidelines`_ that authors should
-"clearly identify the target of each link." Hyperlink references
-should be as verbose as possible, but duplicating a verbose hyperlink
-name in the target is onerous and error-prone. Anonymous hyperlinks
-are designed to allow convenient verbose hyperlink references, and are
-analogous to `Auto-Numbered Footnotes`_. They are particularly useful
-in short or one-off documents.
-
-Anonymous `hyperlink references`_ are specified with two underscores
-instead of one::
-
- See `the web site of my favorite programming language`__.
-
-Anonymous targets begin with ".. __:"; no reference name is required
-or allowed::
-
- .. __: http://www.python.org
-
-As a convenient alternative, anonymous targets may begin with "__"
-only::
-
- __ http://www.python.org
-
-The reference name of the reference is not used to match the reference
-to its target. Instead, the order of anonymous hyperlink references
-and targets within the document is significant: the first anonymous
-reference will link to the first anonymous target. The number of
-anonymous hyperlink references in a document must match the number of
-anonymous targets.
-
-
-Directives
-``````````
-
-DTD elements: depend on the directive.
-
-Directives are indicated by an explicit markup start (".. ") followed
-by the directive type, two colons, and whitespace. Directive types
-are case-insensitive single words (alphanumerics plus internal
-hyphens, underscores, and periods; no whitespace). Two colons are
-used after the directive type for these reasons:
-
-- To avoid clashes with common comment text like::
-
- .. Danger: modify at your own risk!
-
-- If an implementation of reStructuredText does not recognize a
- directive (i.e., the directive-handler is not installed), the entire
- directive block (including the directive itself) will be treated as
- a literal block, and a level-3 (error) system message generated.
- Thus "::" is a natural choice.
-
-Any text on the first line after the directive indicator is directive
-data. The interpretation of directive data is up to the directive
-code. Directive data may be interpreted as arguments to the
-directive, or simply as the first line of the directive's text block.
-
-Actions taken in response to directives and the interpretation of text
-in the directive block or subsequent text block(s) are
-directive-dependent. Indented text following a directive may be
-interpreted as a directive block. Simple directives may not require
-any text beyond the directive data (if that), and will not process any
-following indented text.
-
-Directives which have been implemented and registered in the reference
-reStructuredText parser are described in the `reStructuredText
-Directives`_ document. Below are examples of implemented directives.
-
-Directives are meant for the arbitrary processing of their contents
-(the directive data & text block), which can be transformed into
-something possibly unrelated to the original text. Directives are
-used as an extension mechanism for reStructuredText, a way of adding
-support for new constructs without adding new syntax. For example,
-here's how an image may be placed::
-
- .. image:: mylogo.png
-
-A figure (a graphic with a caption) may placed like this::
-
- .. figure:: larch.png
- The larch.
-
-An admonition (note, caution, etc.) contains other body elements::
-
- .. note:: This is a paragraph
-
- - Here is a bullet list.
-
-It may also be possible for directives to be used as pragmas, to
-modify the behavior of the parser, such as to experiment with
-alternate syntax. There is no parser support for this functionality
-at present; if a reasonable need for pragma directives is found, they
-may be supported.
-
-Directives normally do not survive as "directive" elements past the
-parsing stage; they are a *parser construct* only, and have no
-intrinsic meaning outside of reStructuredText. Instead, the parser
-will transform recognized directives into (possibly specialized)
-document elements. Unknown directives will trigger level-3 (error)
-system messages.
-
-Syntax diagram::
-
- +-------+--------------------------+
- | ".. " | directive type "::" data |
- +-------+ directive block |
- | |
- +--------------------------+
-
-
-Substitution Definitions
-````````````````````````
-
-DTD element: substitution_definition.
-
-Substitution definitions are indicated by an explicit markup start
-(".. ") followed by a vertical bar, the substitution text, another
-vertical bar, whitespace, and the definition block. Substitution text
-may not begin or end with whitespace. A substitution definition block
-contains an embedded inline-compatible directive (without the leading
-".. "), such as an image. For example::
-
- The |biohazard| symbol must be used on containers used to
- dispose of medical waste.
-
- .. |biohazard| image:: biohazard.png
-
-It is an error for a substitution definition block to directly or
-indirectly contain a circular substitution reference.
-
-`Substitution references`_ are replaced in-line by the processed
-contents of the corresponding definition (linked by matching
-substitution text). Substitution definitions allow the power and
-flexibility of block-level directives_ to be shared by inline text.
-They are a way to include arbitrarily complex inline structures within
-text, while keeping the details out of the flow of text. They are the
-equivalent of SGML/XML's named entities or programming language
-macros.
-
-Without the substitution mechanism, every time someone wants an
-application-specific new inline structure, they would have to petition
-for a syntax change. In combination with existing directive syntax,
-any inline structure can be coded without new syntax (except possibly
-a new directive).
-
-Syntax diagram::
-
- +-------+-----------------------------------------------------+
- | ".. " | "|" substitution text "| " directive type "::" data |
- +-------+ directive block |
- | |
- +-----------------------------------------------------+
-
-Following are some use cases for the substitution mechanism. Please
-note that most of the embedded directives shown are examples only and
-have not been implemented.
-
-Objects
- Substitution references may be used to associate ambiguous text
- with a unique object identifier.
-
- For example, many sites may wish to implement an inline "user"
- directive::
-
- |Michael| and |Jon| are our widget-wranglers.
-
- .. |Michael| user:: mjones
- .. |Jon| user:: jhl
-
- Depending on the needs of the site, this may be used to index the
- document for later searching, to hyperlink the inline text in
- various ways (mailto, homepage, mouseover Javascript with profile
- and contact information, etc.), or to customize presentation of
- the text (include username in the inline text, include an icon
- image with a link next to the text, make the text bold or a
- different color, etc.).
-
- The same approach can be used in documents which frequently refer
- to a particular type of objects with unique identifiers but
- ambiguous common names. Movies, albums, books, photos, court
- cases, and laws are possible. For example::
-
- |The Transparent Society| offers a fascinating alternate view
- on privacy issues.
-
- .. |The Transparent Society| book:: isbn=0738201448
-
- Classes or functions, in contexts where the module or class names
- are unclear and/or interpreted text cannot be used, are another
- possibility::
-
- 4XSLT has the convenience method |runString|, so you don't
- have to mess with DOM objects if all you want is the
- transformed output.
-
- .. |runString| function:: module=xml.xslt class=Processor
-
-Images
- Images are a common use for substitution references::
-
- West led the |H| 3, covered by dummy's |H| Q, East's |H| K,
- and trumped in hand with the |S| 2.
-
- .. |H| image:: /images/heart.png
- :height: 11
- :width: 11
- .. |S| image:: /images/spade.png
- :height: 11
- :width: 11
-
- * |Red light| means stop.
- * |Green light| means go.
- * |Yellow light| means go really fast.
-
- .. |Red light| image:: red_light.png
- .. |Green light| image:: green_light.png
- .. |Yellow light| image:: yellow_light.png
-
- |-><-| is the official symbol of POEE_.
-
- .. |-><-| image:: discord.png
- .. _POEE: http://www.poee.org/
-
- The "image" directive has been implemented.
-
-Styles [#]_
- Substitution references may be used to associate inline text with
- an externally defined presentation style::
-
- Even |the text in Texas| is big.
-
- .. |the text in Texas| style:: big
-
- The style name may be meaningful in the context of some particular
- output format (CSS class name for HTML output, LaTeX style name
- for LaTeX, etc), or may be ignored for other output formats (often
- for plain text).
-
- .. @@@ This needs to be rethought & rewritten or removed:
-
- Interpreted text is unsuitable for this purpose because the set
- of style names cannot be predefined - it is the domain of the
- content author, not the author of the parser and output
- formatter - and there is no way to associate a stylename
- argument with an interpreted text style role. Also, it may be
- desirable to use the same mechanism for styling blocks::
-
- .. style:: motto
- At Bob's Underwear Shop, we'll do anything to get in
- your pants.
-
- .. style:: disclaimer
- All rights reversed. Reprint what you like.
-
- .. [#] There may be sufficient need for a "style" mechanism to
- warrant simpler syntax such as an extension to the interpreted
- text role syntax. The substitution mechanism is cumbersome for
- simple text styling.
-
-Templates
- Inline markup may be used for later processing by a template
- engine. For example, a Zope_ author might write::
-
- Welcome back, |name|!
-
- .. |name| tal:: replace user/getUserName
-
- After processing, this ZPT output would result::
-
- Welcome back,
- <span tal:replace="user/getUserName">name</span>!
-
- Zope would then transform this to something like "Welcome back,
- David!" during a session with an actual user.
-
-Replacement text
- The substitution mechanism may be used for simple macro
- substitution. This may be appropriate when the replacement text
- is repeated many times throughout one or more documents,
- especially if it may need to change later. A short example is
- unavoidably contrived::
-
- |RST| is a little annoying to type over and over, especially
- when writing about |RST| itself, and spelling out the
- bicapitalized word |RST| every time isn't really necessary for
- |RST| source readability.
-
- .. |RST| replace:: reStructuredText_
- .. _reStructuredText: http://docutils.sourceforge.net/rst.html
-
- Substitution is also appropriate when the replacement text cannot
- be represented using other inline constructs, or is obtrusively
- long::
-
- But still, that's nothing compared to a name like
- |j2ee-cas|__.
-
- .. |j2ee-cas| replace::
- the Java `TM`:super: 2 Platform, Enterprise Edition Client
- Access Services
- __ http://developer.java.sun.com/developer/earlyAccess/
- j2eecas/
-
-
-Comments
-````````
-
-DTD element: comment.
-
-Arbitrary indented text may follow the explicit markup start and will
-be processed as a comment element. No further processing is done on
-the comment block text; a comment contains a single "text blob".
-Depending on the output formatter, comments may be removed from the
-processed output. The only restriction on comments is that they not
-use the same syntax as directives, footnotes, citations, or hyperlink
-targets.
-
-A explicit markup start followed by a blank line and nothing else
-(apart from whitespace) is an "empty comment". It serves to terminate
-a preceding construct, and does **not** consume any indented text
-following. To have a block quote follow a list or any indented
-construct, insert an unindented empty comment in-between.
-
-Syntax diagram::
-
- +-------+----------------------+
- | ".. " | comment |
- +-------+ block |
- | |
- +----------------------+
-
-
-Implicit Hyperlink Targets
-==========================
-
-Implicit hyperlink targets are generated by section titles, footnotes,
-and citations, and may also be generated by extension constructs.
-Implicit hyperlink targets otherwise behave identically to explicit
-`hyperlink targets`_.
-
-Problems of ambiguity due to conflicting duplicate implicit and
-explicit reference names are avoided by following this procedure:
-
-1. `Explicit hyperlink targets`_ override any implicit targets having
- the same reference name. The implicit hyperlink targets are
- removed, and level-1 (info) system messages are inserted.
-
-2. Duplicate implicit hyperlink targets are removed, and level-1
- (info) system messages inserted. For example, if two or more
- sections have the same title (such as "Introduction" subsections of
- a rigidly-structured document), there will be duplicate implicit
- hyperlink targets.
-
-3. Duplicate explicit hyperlink targets are removed, and level-2
- (warning) system messages are inserted. Exception: duplicate
- `external hyperlink targets`_ (identical hyperlink names and
- referenced URIs) do not conflict, and are not removed.
-
-System messages are inserted where target links have been removed.
-See "Error Handling" in `PEP 258`_.
-
-The parser must return a set of *unique* hyperlink targets. The
-calling software (such as the Docutils_) can warn of unresolvable
-links, giving reasons for the messages.
-
-
-Inline Markup
-=============
-
-In reStructuredText, inline markup applies to words or phrases within
-a text block. The same whitespace and punctuation that serves to
-delimit words in written text is used to delimit the inline markup
-syntax constructs. The text within inline markup may not begin or end
-with whitespace. Arbitrary character-level markup is not supported;
-it is not possible to mark up individual characters within a word.
-Inline markup cannot be nested.
-
-There are nine inline markup constructs. Five of the constructs use
-identical start-strings and end-strings to indicate the markup:
-
-- emphasis_: "*"
-- `strong emphasis`_: "**"
-- `interpreted text`_: "`"
-- `inline literals`_: "``"
-- `substitution references`_: "|"
-
-Three constructs use different start-strings and end-strings:
-
-- `inline hyperlink targets`_: "_`" and "`"
-- `footnote references`_: "[" and "]_"
-- `hyperlink references`_: "`" and "\`_" (phrases), or just a
- trailing "_" (single words)
-
-`Standalone hyperlinks`_ are recognized implicitly, and use no extra
-markup.
-
-The inline markup start-string and end-string recognition rules are as
-follows. If any of the conditions are not met, the start-string or
-end-string will not be recognized or processed.
-
-1. Inline markup start-strings must start a text block or be
- immediately preceded by whitespace, single or double quotes, "(",
- "[", "{", or "<".
-
-2. Inline markup start-strings must be immediately followed by
- non-whitespace.
-
-3. Inline markup end-strings must be immediately preceded by
- non-whitespace.
-
-4. Inline markup end-strings must end a text block or be immediately
- followed by whitespace or one of::
-
- ' " . , : ; ! ? - ) ] } >
-
-5. If an inline markup start-string is immediately preceded by a
- single or double quote, "(", "[", "{", or "<", it must not be
- immediately followed by the corresponding single or double quote,
- ")", "]", "}", or ">".
-
-6. An inline markup end-string must be separated by at least one
- character from the start-string.
-
-7. An unescaped backslash preceding a start-string or end-string will
- disable markup recognition, except for the end-string of `inline
- literals`_. See `Escaping Mechanism`_ above for details.
-
-For example, none of the following are recognized as containing inline
-markup start-strings: " * ", '"*"', "'*'", "(*)", "(* ", "[*]", "{*}",
-"\*", " ` ", etc.
-
-The inline markup recognition rules were devised intentionally to
-allow 90% of non-markup uses of "*", "`", "_", and "|" *without*
-resorting to backslashes. For 9 of the remaining 10%, use inline
-literals or literal blocks::
-
- "``\*``" -> "\*" (possibly in another font or quoted)
-
-Only those who understand the escaping and inline markup rules should
-attempt the remaining 1%. ;-)
-
-Inline markup delimiter characters are used for multiple constructs,
-so to avoid ambiguity there must be a specific recognition order for
-each character. The inline markup recognition order is as follows:
-
-- Asterisks: `Strong emphasis`_ ("**") is recognized before emphasis_
- ("*").
-
-- Backquotes: `Inline literals`_ ("``"), `inline hyperlink targets`_
- (leading "_`", trailing "`"), are mutually independent, and are
- recognized before phrase `hyperlink references`_ (leading "`",
- trailing "\`_") and `interpreted text`_ ("`").
-
-- Trailing underscores: Footnote references ("[" + label + "]_") and
- simple `hyperlink references`_ (name + trailing "_") are mutually
- independent.
-
-- Vertical bars: `Substitution references`_ ("|") are independently
- recognized.
-
-- `Standalone hyperlinks`_ are the last to be recognized.
-
-
-Emphasis
---------
-
-DTD element: emphasis.
-
-Start-string = end-string = "*".
-
-Text enclosed by single asterisk characters is emphasized::
-
- This is *emphasized text*.
-
-Emphasized text is typically displayed in italics.
-
-
-Strong Emphasis
----------------
-
-DTD element: strong.
-
-Start-string = end-string = "**".
-
-Text enclosed by double-asterisks is emphasized strongly::
-
- This is **strong text**.
-
-Strongly emphasized text is typically displayed in boldface.
-
-
-Interpreted Text
-----------------
-
-DTD element: interpreted.
-
-Start-string = end-string = "`".
-
-Text enclosed by single backquote characters is interpreted::
-
- This is `interpreted text`.
-
-Interpreted text is text that is meant to be related, indexed, linked,
-summarized, or otherwise processed, but the text itself is left
-alone. The text is "tagged" directly, in-place. The semantics of
-interpreted text are domain-dependent. It can be used as implicit or
-explicit descriptive markup (such as for program identifiers, as in
-the `Python Source Reader`_), for cross-reference interpretation (such
-as index entries), or for other applications where context can be
-inferred.
-
-The role of the interpreted text determines how the text is
-interpreted. It is normally inferred implicitly. The role of the
-interpreted text may also be indicated explicitly, using a role
-marker, either as a prefix or as a suffix to the interpreted text,
-depending on which reads better::
-
- :role:`interpreted text`
-
- `interpreted text`:role:
-
-Roles are simply extensions of the available inline constructs; to
-emphasis_, `strong emphasis`_, `inline literals`_, and `hyperlink
-references`_, we can add "index entry", "acronym", "class", "red",
-"blinking" or anything else we want.
-
-A role marker consists of a colon, the role name, and another colon.
-A role name is a single word consisting of alphanumerics plus internal
-hypens, underscores, and periods; no whitespace or other characters
-are allowed.
-
-
-Inline Literals
----------------
-
-DTD element: literal.
-
-Start-string = end-string = "``".
-
-Text enclosed by double-backquotes is treated as inline literals::
-
- This text is an example of ``inline literals``.
-
-Inline literals may contain any characters except two adjacent
-backquotes in an end-string context (according to the recognition
-rules above). No markup interpretation (including backslash-escape
-interpretation) is done within inline literals.
-
-Line breaks are *not* preserved in inline literals. Although a
-reStructuredText parser will preserve runs of spaces in its output,
-the final representation of the processed document is dependent on the
-output formatter, thus the preservation of whitespace cannot be
-guaranteed. If the preservation of line breaks and/or other
-whitespace is important, `literal blocks`_ should be used.
-
-Inline literals are useful for short code snippets. For example::
-
- The regular expression ``[+-]?(\d+(\.\d*)?|\.\d+)`` matches
- floating-point numbers (without exponents).
-
-
-Hyperlink References
---------------------
-
-DTD element: reference.
-
-- Named hyperlink references:
-
- - Start-string = "" (empty string), end-string = "_".
- - Start-string = "`", end-string = "\`_". (Phrase references.)
-
-- Anonymous hyperlink references:
-
- - Start-string = "" (empty string), end-string = "__".
- - Start-string = "`", end-string = "\`__". (Phrase references.)
-
-Hyperlink references are indicated by a trailing underscore, "_",
-except for `standalone hyperlinks`_ which are recognized
-independently. The underscore can be thought of as a right-pointing
-arrow. The trailing underscores point away from hyperlink references,
-and the leading underscores point toward `hyperlink targets`_.
-
-Hyperlinks consist of two parts. In the text body, there is a source
-link, a reference name with a trailing underscore (or two underscores
-for `anonymous hyperlinks`_)::
-
- See the Python_ home page for info.
-
-A target link with a matching reference name must exist somewhere else
-in the document. See `Hyperlink Targets`_ for a full description).
-
-`Anonymous hyperlinks`_ (which see) do not use reference names to
-match references to targets, but otherwise behave similarly to named
-hyperlinks.
-
-
-Inline Hyperlink Targets
-------------------------
-
-DTD element: target.
-
-Start-string = "_`", end-string = "`".
-
-Inline hyperlink targets are the equivalent of explicit `internal
-hyperlink targets`_, but may appear within running text. The syntax
-begins with an underscore and a backquote, is followed by a hyperlink
-name or phrase, and ends with a backquote. Inline hyperlink targets
-may not be anonymous.
-
-For example, the following paragraph contains a hyperlink target named
-"Norwegian Blue"::
-
- Oh yes, the _`Norwegian Blue`. What's, um, what's wrong with it?
-
-See `Implicit Hyperlink Targets`_ for the resolution of duplicate
-reference names.
-
-
-Footnote References
--------------------
-
-DTD element: footnote_reference.
-
-Start-string = "[", end-string = "]_".
-
-Each footnote reference consists of a square-bracketed label followed
-by a trailing underscore. Footnote labels are one of:
-
-- one or more digits (i.e., a number),
-
-- a single "#" (denoting `auto-numbered footnotes`_),
-
-- a "#" followed by a simple reference name (an `autonumber label`_),
- or
-
-- a single "*" (denoting `auto-symbol footnotes`_).
-
-For example::
-
- Please RTFM [1]_.
-
- .. [1] Read The Fine Manual
-
-
-Citation References
--------------------
-
-DTD element: citation_reference.
-
-Start-string = "[", end-string = "]_".
-
-Each citation reference consists of a square-bracketed label followed
-by a trailing underscore. Citation labels are simple `reference
-names`_ (case-insensitive single words, consisting of alphanumerics
-plus internal hyphens, underscores, and periods; no whitespace).
-
-For example::
-
- Here is a citation reference: [CIT2002]_.
-
-See Citations_ for the citation itself.
-
-
-Substitution References
------------------------
-
-DTD element: substitution_reference, reference.
-
-Start-string = "|", end-string = "|" (optionally followed by "_" or
-"__").
-
-Vertical bars are used to bracket the substitution reference text. A
-substitution reference may also be a hyperlink reference by appending
-a "_" (named) or "__" (anonymous) suffix; the substitution text is
-used for the reference text in the named case.
-
-The processing system replaces substitution references with the
-processed contents of the corresponding `substitution definitions`_.
-Substitution definitions produce inline-compatible elements.
-
-Examples::
-
- This is a simple |substitution reference|. It will be replaced by
- the processing system.
-
- This is a combination |substitution and hyperlink reference|_. In
- addition to being replaced, the replacement text or element will
- refer to the "substitution and hyperlink reference" target.
-
-
-Standalone Hyperlinks
----------------------
-
-DTD element: link.
-
-Start-string = end-string = "" (empty string).
-
-A URI (absolute URI [#URI]_ or standalone email address) within a text
-block is treated as a general external hyperlink with the URI itself
-as the link's text. For example::
-
- See http://www.python.org for info.
-
-would be marked up in HTML as::
-
- See <A HREF="http://www.python.org">http://www.python.org</A> for
- info.
-
-Two forms of URI are recognized:
-
-1. Absolute URIs. These consist of a scheme, a colon (":"), and a
- scheme-specific part whose interpretation depends on the scheme.
-
- The scheme is the name of the protocol, such as "http", "ftp",
- "mailto", or "telnet". The scheme consists of an initial letter,
- followed by letters, numbers, and/or "+", "-", ".". Recognition is
- limited to known schemes, per the W3C's `Index of WWW Addressing
- Schemes`_.
-
- The scheme-specific part of the resource identifier may be either
- hierarchical or opaque:
-
- - Hierarchical identifiers begin with one or two slashes and may
- use slashes to separate hierarchical components of the path.
- Examples are web pages and FTP sites::
-
- http://www.python.org
-
- ftp://ftp.python.org/pub/python
-
- - Opaque identifiers do not begin with slashes. Examples are
- email addresses and newsgroups::
-
- mailto:someone@somewhere.com
-
- news:comp.lang.python
-
- With queries, fragments, and %-escape sequences, URIs can become
- quite complicated. A reStructuredText parser must be able to
- recognize any absolute URI, as defined in RFC2396_ and RFC2732_.
-
-2. Standalone email addresses, which are treated as if they were
- ablsolute URIs with a "mailto:" scheme. Example::
-
- someone@somewhere.com
-
-Punctuation at the end of a URI is not considered part of the URI.
-
-.. [#URI] Uniform Resource Identifier. URIs are a general form of
- URLs (Uniform Resource Locators). For the syntax of URIs see
- RFC2396_ and RFC2732_.
-
-
-----------------
- Error Handling
-----------------
-
-DTD element: system_message, problematic.
-
-Markup errors are handled according to the specification in `PEP
-258`_.
-
-
-.. _reStructuredText: http://docutils.sourceforge.net/rst.html
-.. _Docutils: http://docutils.sourceforge.net/
-.. _Docutils Document Tree Structure:
- http://docutils.sourceforge.net/spec/doctree.txt
-.. _Generic Plaintext Document Interface DTD:
- http://docutils.sourceforge.net/spec/gpdi.dtd
-.. _transforms:
- http://docutils.sourceforge.net/docutils/transforms/
-.. _Grouch: http://www.mems-exchange.org/software/grouch/
-.. _RFC822: http://www.rfc-editor.org/rfc/rfc822.txt
-.. _DocTitle transform:
-.. _DocInfo transform:
- http://docutils.sourceforge.net/docutils/transforms/frontmatter.py
-.. _doctest module:
- http://www.python.org/doc/current/lib/module-doctest.html
-.. _getopt.py:
- http://www.python.org/doc/current/lib/module-getopt.html
-.. _GNU libc getopt_long():
- http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_516.html
-.. _Index of WWW Addressing Schemes:
- http://www.w3.org/Addressing/schemes.html
-.. _World Wide Web Consortium: http://www.w3.org/
-.. _HTML Techniques for Web Content Accessibility Guidelines:
- http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-text
-.. _reStructuredText Directives: directives.html
-.. _Python Source Reader:
- http://docutils.sourceforge.net/spec/pysource.txt
-.. _RFC2396: http://www.rfc-editor.org/rfc/rfc2396.txt
-.. _RFC2732: http://www.rfc-editor.org/rfc/rfc2732.txt
-.. _Zope: http://www.zope.com/
-.. _PEP 258: http://docutils.sourceforge.net/spec/pep-0258.txt
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End: