diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2016-08-18 13:06:09 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2016-08-18 13:06:09 +0000 |
| commit | 6351d088a3eb6245e2ec0a64df7783c2e9ee0418 (patch) | |
| tree | a8559fb264716e6722e21f6107f2c538e9f6e2e5 /test/functional | |
| parent | f1cfbaa6be2c8cab486ce52ac16efb04c18f6af1 (diff) | |
| download | docutils-6351d088a3eb6245e2ec0a64df7783c2e9ee0418.tar.gz | |
docutils-xml writer: Fix/improve output with "newlines and "indent".
xmllint says empty elements must not have linebreaks inbetween
(regards transition, image and cospec elements).
Indent text, unless it is FixedText (literal etc.).
Add a functional test for docutils-xml.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@7966 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test/functional')
3 files changed, 1636 insertions, 0 deletions
diff --git a/test/functional/expected/standalone_rst_docutils_xml.xml b/test/functional/expected/standalone_rst_docutils_xml.xml new file mode 100644 index 000000000..956fd8fb9 --- /dev/null +++ b/test/functional/expected/standalone_rst_docutils_xml.xml @@ -0,0 +1,1614 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd"> +<!-- Generated by Docutils 0.13 --> +<document ids="restructuredtext-test-document doctitle" names="restructuredtext\ test\ document doctitle" source="functional/input/standalone_rst_docutils_xml.txt" title="reStructuredText Test Document"> + <title>reStructuredText Test Document</title> + <subtitle ids="examples-of-syntax-constructs subtitle" names="examples\ of\ syntax\ constructs subtitle">Examples of Syntax Constructs</subtitle> + <decoration> + <header> + <paragraph>Document header</paragraph> + </header> + <footer> + <paragraph>Document footer</paragraph> + </footer> + </decoration> + <docinfo> + <author>David Goodger</author> + <address xml:space="preserve">123 Example Street +Example, EX Canada +A1B 2C3</address> + <contact><reference refuri="mailto:goodger@python.org">goodger@python.org</reference></contact> + <authors> + <author>Me</author> + <author>Myself</author> + <author>I</author> + </authors> + <organization>humankind</organization> + <date>Now, or yesterday. Or maybe even <emphasis>before</emphasis> yesterday.</date> + <status>This is a "work in progress"</status> + <revision>is managed by a version control system.</revision> + <version>1</version> + <copyright>This document has been placed in the public domain. You + may do with it as you wish. You may copy, modify, + redistribute, reattribute, sell, buy, rent, lease, + destroy, or improve it, quote it at length, excerpt, + incorporate, collate, fold, staple, or mutilate it, or do + anything else to it that your or anyone else's heart + desires.</copyright> + <field classes="field-name"> + <field_name>field name</field_name> + <field_body> + <paragraph>This is a "generic bibliographic field".</paragraph> + </field_body> + </field> + <field classes="field-name-2"> + <field_name>field name "2"</field_name> + <field_body> + <paragraph>Generic bibliographic fields may contain multiple body elements.</paragraph> + <paragraph>Like this.</paragraph> + </field_body> + </field> + </docinfo> + <topic classes="dedication"> + <title>Dedication</title> + <paragraph>For Docutils users & co-developers.</paragraph> + </topic> + <topic classes="abstract"> + <title>Abstract</title> + <paragraph>This is a test document, containing at least one example of each + reStructuredText construct.</paragraph> + </topic> + <comment xml:space="preserve">This is a comment. Note how any initial comments are moved by +transforms to after the document title, subtitle, and docinfo.</comment> + <target refid="doctitle"></target> + <comment xml:space="preserve">Above is the document title, and below is the subtitle. +They are transformed from section titles after parsing.</comment> + <target refid="subtitle"></target> + <comment xml:space="preserve">bibliographic fields (which also require a transform):</comment> + <raw format="latex" xml:space="preserve">\pagebreak[4] % start ToC on new page</raw> + <topic classes="contents" ids="table-of-contents" names="table\ of\ contents"> + <title>Table of Contents</title> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id34" refid="structural-elements"><generated classes="sectnum">1 </generated>Structural Elements</reference></paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id35" refid="section-title"><generated classes="sectnum">1.1 </generated>Section Title</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id36" refid="empty-section"><generated classes="sectnum">1.2 </generated>Empty Section</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id37" refid="transitions"><generated classes="sectnum">1.3 </generated>Transitions</reference></paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph><reference ids="id38" refid="body-elements"><generated classes="sectnum">2 </generated>Body Elements</reference></paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id39" refid="paragraphs"><generated classes="sectnum">2.1 </generated>Paragraphs</reference></paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id40" refid="inline-markup"><generated classes="sectnum">2.1.1 </generated>Inline Markup</reference></paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph><reference ids="id41" refid="bullet-lists"><generated classes="sectnum">2.2 </generated>Bullet Lists</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id42" refid="enumerated-lists"><generated classes="sectnum">2.3 </generated>Enumerated Lists</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id43" refid="definition-lists"><generated classes="sectnum">2.4 </generated>Definition Lists</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id44" refid="field-lists"><generated classes="sectnum">2.5 </generated>Field Lists</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id45" refid="option-lists"><generated classes="sectnum">2.6 </generated>Option Lists</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id46" refid="literal-blocks"><generated classes="sectnum">2.7 </generated>Literal Blocks</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id47" refid="line-blocks"><generated classes="sectnum">2.8 </generated>Line Blocks</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id48" refid="block-quotes"><generated classes="sectnum">2.9 </generated>Block Quotes</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id49" refid="doctest-blocks"><generated classes="sectnum">2.10 </generated>Doctest Blocks</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id50" refid="footnotes"><generated classes="sectnum">2.11 </generated>Footnotes</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id51" refid="citations"><generated classes="sectnum">2.12 </generated>Citations</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id52" refid="targets"><generated classes="sectnum">2.13 </generated>Targets</reference></paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id53" refid="duplicate-target-names"><generated classes="sectnum">2.13.1 </generated>Duplicate Target Names</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id54" refid="id21"><generated classes="sectnum">2.13.2 </generated>Duplicate Target Names</reference></paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph><reference ids="id55" refid="directives"><generated classes="sectnum">2.14 </generated>Directives</reference></paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id56" refid="document-parts"><generated classes="sectnum">2.14.1 </generated>Document Parts</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id57" refid="images-and-figures"><generated classes="sectnum">2.14.2 </generated>Images and Figures</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id58" refid="admonitions"><generated classes="sectnum">2.14.3 </generated>Admonitions</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id59" refid="topics-sidebars-and-rubrics"><generated classes="sectnum">2.14.4 </generated>Topics, Sidebars, and Rubrics</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id60" refid="target-footnotes"><generated classes="sectnum">2.14.5 </generated>Target Footnotes</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id61" refid="replacement-text"><generated classes="sectnum">2.14.6 </generated>Replacement Text</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id62" refid="compound-paragraph"><generated classes="sectnum">2.14.7 </generated>Compound Paragraph</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id63" refid="parsed-literal-blocks"><generated classes="sectnum">2.14.8 </generated>Parsed Literal Blocks</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id64" refid="code"><generated classes="sectnum">2.14.9 </generated>Code</reference></paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph><reference ids="id65" refid="substitution-definitions"><generated classes="sectnum">2.15 </generated>Substitution Definitions</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id66" refid="comments"><generated classes="sectnum">2.16 </generated>Comments</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id67" refid="raw-text"><generated classes="sectnum">2.17 </generated>Raw text</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id68" refid="container"><generated classes="sectnum">2.18 </generated>Container</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id69" refid="colspanning-tables"><generated classes="sectnum">2.19 </generated>Colspanning tables</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id70" refid="rowspanning-tables"><generated classes="sectnum">2.20 </generated>Rowspanning tables</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id71" refid="complex-tables"><generated classes="sectnum">2.21 </generated>Complex tables</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id72" refid="list-tables"><generated classes="sectnum">2.22 </generated>List Tables</reference></paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph><reference ids="id73" refid="error-handling"><generated classes="sectnum">3 </generated>Error Handling</reference></paragraph> + </list_item> + </bullet_list> + </topic> + <section ids="structural-elements" names="structural\ elements"> + <title auto="1" refid="id34"><generated classes="sectnum">1 </generated>Structural Elements</title> + <section ids="section-title" names="section\ title"> + <title auto="1" refid="id35"><generated classes="sectnum">1.1 </generated>Section Title</title> + <subtitle ids="section-subtitle" names="section\ subtitle">Section Subtitle</subtitle> + <paragraph>Lone subsections are converted to a section subtitle by a transform + activated with the <literal>--section-subtitles</literal> command line option or the + <literal>sectsubtitle-xform</literal> configuration value.</paragraph> + </section> + <section ids="empty-section" names="empty\ section"> + <title auto="1" refid="id36"><generated classes="sectnum">1.2 </generated>Empty Section</title> + </section> + <section ids="transitions" names="transitions"> + <title auto="1" refid="id37"><generated classes="sectnum">1.3 </generated>Transitions</title> + <paragraph>Here's a transition:</paragraph> + <transition></transition> + <paragraph>It divides the section. Transitions may also occur between sections:</paragraph> + </section> + </section> + <transition></transition> + <section ids="body-elements" names="body\ elements"> + <title auto="1" refid="id38"><generated classes="sectnum">2 </generated>Body Elements</title> + <section ids="paragraphs" names="paragraphs"> + <title auto="1" refid="id39"><generated classes="sectnum">2.1 </generated>Paragraphs</title> + <paragraph>A paragraph.</paragraph> + <section ids="inline-markup" names="inline\ markup"> + <title auto="1" refid="id40"><generated classes="sectnum">2.1.1 </generated>Inline Markup</title> + <paragraph>Paragraphs contain text and may contain inline markup: <emphasis>emphasis</emphasis>, + <strong>strong emphasis</strong>, <literal>inline literals</literal>, standalone hyperlinks + (<reference refuri="http://www.python.org">http://www.python.org</reference>), external hyperlinks (<reference name="Python" refuri="http://www.python.org/">Python</reference> <footnote_reference auto="1" ids="id26" refid="id25">5</footnote_reference>), internal + cross-references (<reference name="example" refid="example">example</reference>), external hyperlinks with embedded URIs + (<reference name="Python web site" refuri="http://www.python.org">Python web site</reference>), <reference anonymous="1" name="anonymous hyperlink references" refuri="http://www.python.org/">anonymous hyperlink + references</reference> <footnote_reference auto="1" ids="id31" refid="id25">5</footnote_reference> (<reference anonymous="1" name="a second reference" refuri="http://docutils.sourceforge.net/">a second reference</reference> <footnote_reference auto="1" ids="id33" refid="id32">7</footnote_reference>), footnote references (manually + numbered <footnote_reference ids="id1" refid="id8">1</footnote_reference>, anonymous auto-numbered <footnote_reference auto="1" ids="id2" refid="id12">3</footnote_reference>, labeled auto-numbered + <footnote_reference auto="1" ids="id3" refid="label">2</footnote_reference>, or symbolic <footnote_reference auto="*" ids="id4" refid="id13">*</footnote_reference>), citation references (<citation_reference ids="id5" refid="cit2002">CIT2002</citation_reference>), + substitution references (<image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"></image>), and <target ids="inline-hyperlink-targets" names="inline\ hyperlink\ targets">inline hyperlink targets</target> + (see <reference name="Targets" refid="targets">Targets</reference> below for a reference back to here). Character-level + inline markup is also possible (although exceedingly ugly!) in <emphasis>re</emphasis><literal>Structured</literal><emphasis>Text</emphasis>. Problems are indicated by <problematic ids="id24" refid="id23">|problematic|</problematic> text + (generated by processing errors; this one is intentional). Here is a + reference to the <reference name="doctitle" refid="doctitle">doctitle</reference> and the <reference name="subtitle" refid="subtitle">subtitle</reference>.</paragraph> + <target anonymous="1" ids="id6" refuri="http://www.python.org/"></target> + <target anonymous="1" ids="id7" refuri="http://docutils.sourceforge.net/"></target> + <paragraph>The default role for interpreted text is <title_reference>Title Reference</title_reference>. Here are + some explicit interpreted text roles: a PEP reference (<reference refuri="http://www.python.org/dev/peps/pep-0287">PEP 287</reference>); an + RFC reference (<reference refuri="http://tools.ietf.org/html/rfc2822.html">RFC 2822</reference>); an abbreviation (<abbreviation>abb.</abbreviation>), an acronym + (<acronym>reST</acronym>), code (<literal classes="code">print "hello world"</literal>); a <subscript>subscript</subscript>; + a <superscript>superscript</superscript> and explicit roles for <title_reference>Docutils</title_reference>' + <emphasis>standard</emphasis> <strong>inline</strong> <literal>markup</literal>.</paragraph> + <comment xml:space="preserve">DO NOT RE-WRAP THE FOLLOWING PARAGRAPH!</comment> + <paragraph>Let's test wrapping and whitespace significance in inline literals: + <literal>This is an example of --inline-literal --text, --including some-- +strangely--hyphenated-words. Adjust-the-width-of-your-browser-window +to see how the text is wrapped. -- ---- -------- Now note the +spacing between the words of this sentence (words +should be grouped in pairs).</literal></paragraph> + <paragraph>If the <literal>--pep-references</literal> option was supplied, there should be a + live link to PEP 258 here.</paragraph> + </section> + </section> + <section ids="bullet-lists" names="bullet\ lists"> + <title auto="1" refid="id41"><generated classes="sectnum">2.2 </generated>Bullet Lists</title> + <bullet_list bullet="-"> + <list_item> + <paragraph>A bullet list</paragraph> + <bullet_list bullet="+"> + <list_item> + <paragraph>Nested bullet list.</paragraph> + </list_item> + <list_item> + <paragraph>Nested item 2.</paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph>Item 2.</paragraph> + <paragraph>Paragraph 2 of item 2.</paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph>Nested bullet list.</paragraph> + </list_item> + <list_item> + <paragraph>Nested item 2.</paragraph> + <bullet_list bullet="-"> + <list_item> + <paragraph>Third level.</paragraph> + </list_item> + <list_item> + <paragraph>Item 2.</paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph>Nested item 3.</paragraph> + </list_item> + <list_item> + <paragraph>This nested list should be compacted by the HTML writer.</paragraph> + <target ids="target" names="target"></target> + <comment xml:space="preserve">Even if this item contains a target and a comment.</comment> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </section> + <section ids="enumerated-lists" names="enumerated\ lists"> + <title auto="1" refid="id42"><generated classes="sectnum">2.3 </generated>Enumerated Lists</title> + <enumerated_list enumtype="arabic" prefix="" suffix="."> + <list_item> + <paragraph>Arabic numerals.</paragraph> + <enumerated_list enumtype="loweralpha" prefix="" suffix=")"> + <list_item> + <paragraph>lower alpha)</paragraph> + <enumerated_list enumtype="lowerroman" prefix="(" suffix=")"> + <list_item> + <paragraph>(lower roman)</paragraph> + <enumerated_list enumtype="upperalpha" prefix="" suffix="."> + <list_item> + <paragraph>upper alpha.</paragraph> + <enumerated_list enumtype="upperroman" prefix="" suffix=")"> + <list_item> + <paragraph>upper roman)</paragraph> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </list_item> + <list_item> + <paragraph>Lists that don't start at 1:</paragraph> + <enumerated_list enumtype="arabic" prefix="" start="3" suffix="."> + <list_item> + <paragraph>Three</paragraph> + </list_item> + <list_item> + <paragraph>Four</paragraph> + </list_item> + </enumerated_list> + <system_message level="1" line="8" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Enumerated list start value not ordinal-1: "3" (ordinal 3)</paragraph> + </system_message> + <enumerated_list enumtype="upperalpha" prefix="" start="3" suffix="."> + <list_item> + <paragraph>C</paragraph> + </list_item> + <list_item> + <paragraph>D</paragraph> + </list_item> + </enumerated_list> + <system_message level="1" line="8" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Enumerated list start value not ordinal-1: "C" (ordinal 3)</paragraph> + </system_message> + <enumerated_list enumtype="lowerroman" prefix="" start="3" suffix="."> + <list_item> + <paragraph>iii</paragraph> + </list_item> + <list_item> + <paragraph>iv</paragraph> + </list_item> + </enumerated_list> + <system_message level="1" line="8" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Enumerated list start value not ordinal-1: "iii" (ordinal 3)</paragraph> + </system_message> + </list_item> + </enumerated_list> + </section> + <section ids="definition-lists" names="definition\ lists"> + <title auto="1" refid="id43"><generated classes="sectnum">2.4 </generated>Definition Lists</title> + <definition_list> + <definition_list_item> + <term>Term</term> + <definition> + <paragraph>Definition</paragraph> + </definition> + </definition_list_item> + <definition_list_item> + <term>Term</term> + <classifier>classifier</classifier> + <definition> + <paragraph>Definition paragraph 1.</paragraph> + <paragraph>Definition paragraph 2.</paragraph> + </definition> + </definition_list_item> + <definition_list_item> + <term>Term</term> + <definition> + <paragraph>Definition</paragraph> + </definition> + </definition_list_item> + <definition_list_item> + <term>Term</term> + <classifier>classifier one</classifier> + <classifier>classifier two</classifier> + <definition> + <paragraph>Definition</paragraph> + </definition> + </definition_list_item> + </definition_list> + </section> + <section ids="field-lists" names="field\ lists"> + <title auto="1" refid="id44"><generated classes="sectnum">2.5 </generated>Field Lists</title> + <field_list> + <field> + <field_name>what</field_name> + <field_body> + <paragraph>Field lists map field names to field bodies, like database + records. They are often part of an extension syntax. They are + an unambiguous variant of RFC 2822 fields.</paragraph> + </field_body> + </field> + <field> + <field_name>how arg1 arg2</field_name> + <field_body> + <paragraph>The field marker is a colon, the field name, and a colon.</paragraph> + <paragraph>The field body may contain one or more body elements, indented + relative to the field marker.</paragraph> + </field_body> + </field> + <field> + <field_name>credits</field_name> + <field_body> + <paragraph classes="credits">This paragraph has the <title_reference>credits</title_reference> class set. (This is actually not + about credits but just for ensuring that the class attribute + doesn't get stripped away.)</paragraph> + </field_body> + </field> + </field_list> + </section> + <section ids="option-lists" names="option\ lists"> + <title auto="1" refid="id45"><generated classes="sectnum">2.6 </generated>Option Lists</title> + <paragraph>For listing command-line options:</paragraph> + <option_list> + <option_list_item> + <option_group> + <option> + <option_string>-a</option_string> + </option> + </option_group> + <description> + <paragraph>command-line option "a"</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>-b</option_string> + <option_argument delimiter=" ">file</option_argument> + </option> + </option_group> + <description> + <paragraph>options can have arguments + and long descriptions</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>--long</option_string> + </option> + </option_group> + <description> + <paragraph>options can be long also</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>--input</option_string> + <option_argument delimiter="=">file</option_argument> + </option> + </option_group> + <description> + <paragraph>long options can also have + arguments</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>--very-long-option</option_string> + </option> + </option_group> + <description> + <paragraph>The description can also start on the next line.</paragraph> + <paragraph>The description may contain multiple body elements, + regardless of where it starts.</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>-x</option_string> + </option> + <option> + <option_string>-y</option_string> + </option> + <option> + <option_string>-z</option_string> + </option> + </option_group> + <description> + <paragraph>Multiple options are an "option group".</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>-v</option_string> + </option> + <option> + <option_string>--verbose</option_string> + </option> + </option_group> + <description> + <paragraph>Commonly-seen: short & long options.</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>-1</option_string> + <option_argument delimiter=" ">file</option_argument> + </option> + <option> + <option_string>--one</option_string> + <option_argument delimiter="=">file</option_argument> + </option> + <option> + <option_string>--two</option_string> + <option_argument delimiter=" ">file</option_argument> + </option> + </option_group> + <description> + <paragraph>Multiple options with arguments.</paragraph> + </description> + </option_list_item> + <option_list_item> + <option_group> + <option> + <option_string>/V</option_string> + </option> + </option_group> + <description> + <paragraph>DOS/VMS-style options too</paragraph> + </description> + </option_list_item> + </option_list> + <paragraph>There must be at least two spaces between the option and the + description.</paragraph> + </section> + <section ids="literal-blocks" names="literal\ blocks"> + <title auto="1" refid="id46"><generated classes="sectnum">2.7 </generated>Literal Blocks</title> + <paragraph>Literal blocks are indicated with a double-colon ("::") at the end of + the preceding paragraph (over there <literal>--></literal>). They can be indented:</paragraph> + <literal_block xml:space="preserve">if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None</literal_block> + <paragraph>Or they can be quoted without indentation:</paragraph> + <literal_block xml:space="preserve">>> Great idea! +> +> Why didn't I think of that?</literal_block> + </section> + <section ids="line-blocks" names="line\ blocks"> + <title auto="1" refid="id47"><generated classes="sectnum">2.8 </generated>Line Blocks</title> + <paragraph>This section tests line blocks. Line blocks are body elements which + consist of lines and other line blocks. Nested line blocks cause + indentation.</paragraph> + <line_block> + <line>This is a line block. It ends with a blank line.</line> + <line_block> + <line>New lines begin with a vertical bar ("|").</line> + <line>Line breaks and initial indent are significant, and preserved.</line> + <line_block> + <line>Continuation lines are also possible. A long line that is intended + to wrap should begin with a space in place of the vertical bar.</line> + </line_block> + <line>The left edge of a continuation line need not be aligned with + the left edge of the text above it.</line> + </line_block> + </line_block> + <line_block> + <line>This is a second line block.</line> + <line></line> + <line>Blank lines are permitted internally, but they must begin with a "|".</line> + </line_block> + <paragraph>Another line block, surrounded by paragraphs:</paragraph> + <line_block> + <line>And it's no good waiting by the window</line> + <line>It's no good waiting for the sun</line> + <line>Please believe me, the things you dream of</line> + <line>They don't fall in the lap of no-one</line> + </line_block> + <paragraph>Take it away, Eric the Orchestra Leader!</paragraph> + <block_quote> + <line_block> + <line>A one, two, a one two three four</line> + <line></line> + <line>Half a bee, philosophically,</line> + <line_block> + <line>must, <emphasis>ipso facto</emphasis>, half not be.</line> + </line_block> + <line>But half the bee has got to be,</line> + <line_block> + <line><emphasis>vis a vis</emphasis> its entity. D'you see?</line> + <line></line> + </line_block> + <line>But can a bee be said to be</line> + <line_block> + <line>or not to be an entire bee,</line> + <line_block> + <line>when half the bee is not a bee,</line> + <line_block> + <line>due to some ancient injury?</line> + <line></line> + </line_block> + </line_block> + </line_block> + <line>Singing...</line> + </line_block> + </block_quote> + <paragraph>A line block, like the following poem by Christian Morgenstern, can + also be centre-aligned:</paragraph> + <line_block classes="language-de align-center"> + <line><strong>Die Trichter</strong></line> + <line></line> + <line>Zwei Trichter wandeln durch die Nacht.</line> + <line>Durch ihres Rumpfs verengten Schacht</line> + <line>fließt weißes Mondlicht</line> + <line>still und heiter</line> + <line>auf ihren</line> + <line>Waldweg</line> + <line>u. s.</line> + <line>w.</line> + <line></line> + </line_block> + </section> + <section ids="block-quotes" names="block\ quotes"> + <title auto="1" refid="id48"><generated classes="sectnum">2.9 </generated>Block Quotes</title> + <paragraph>Block quotes consist of indented body elements:</paragraph> + <block_quote> + <paragraph>My theory by A. Elk. Brackets Miss, brackets. This theory goes + as follows and begins now. All brontosauruses are thin at one + end, much much thicker in the middle and then thin again at the + far end. That is my theory, it is mine, and belongs to me and I + own it, and what it is too.</paragraph> + <attribution>Anne Elk (Miss)</attribution> + </block_quote> + <paragraph>The language of a quote (like any other object) can be specified by + a class attribute:</paragraph> + <comment xml:space="preserve"></comment> + <block_quote classes="language-fr"> + <paragraph>ReStructuredText est un langage de balisage léger utilisé + notamment dans la documentation du langage Python.</paragraph> + </block_quote> + </section> + <section ids="doctest-blocks" names="doctest\ blocks"> + <title auto="1" refid="id49"><generated classes="sectnum">2.10 </generated>Doctest Blocks</title> + <doctest_block xml:space="preserve">>>> 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)</doctest_block> + </section> + <section ids="footnotes" names="footnotes"> + <title auto="1" refid="id50"><generated classes="sectnum">2.11 </generated>Footnotes</title> + <footnote backrefs="id1 id9 id22" ids="id8" names="1"> + <label>1</label> + <paragraph>A footnote contains body elements, consistently indented by at + least 3 spaces.</paragraph> + <paragraph>This is the footnote's second paragraph.</paragraph> + </footnote> + <footnote auto="1" backrefs="id3 id10" ids="label" names="label"> + <label>2</label> + <paragraph>Footnotes may be numbered, either manually (as in <footnote_reference ids="id9" refid="id8">1</footnote_reference>) or + automatically using a "#"-prefixed label. This footnote has a + label so it can be referred to from multiple places, both as a + footnote reference (<footnote_reference auto="1" ids="id10" refid="label">2</footnote_reference>) and as a <reference anonymous="1" name="hyperlink reference" refid="label">hyperlink reference</reference>.</paragraph> + <target anonymous="1" ids="id11" refid="label"></target> + </footnote> + <footnote auto="1" backrefs="id2" ids="id12" names="3"> + <label>3</label> + <paragraph>This footnote is numbered automatically and anonymously using a + label of "#" only.</paragraph> + <paragraph>This is the second paragraph.</paragraph> + <paragraph>And this is the third paragraph.</paragraph> + </footnote> + <footnote auto="*" backrefs="id4" ids="id13"> + <label>*</label> + <paragraph>Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: <footnote_reference auto="*" ids="id14" refid="id15">†</footnote_reference>.</paragraph> + </footnote> + <footnote auto="*" backrefs="id14" ids="id15"> + <label>†</label> + <paragraph>This footnote shows the next symbol in the sequence.</paragraph> + </footnote> + <footnote ids="id16" names="4"> + <label>4</label> + <paragraph>Here's an unreferenced footnote, with a reference to a + nonexistent footnote: <problematic ids="id84 id17" refid="id83">[5]_</problematic>.</paragraph> + </footnote> + </section> + <section ids="citations" names="citations"> + <title auto="1" refid="id51"><generated classes="sectnum">2.12 </generated>Citations</title> + <citation backrefs="id5 id18" ids="cit2002" names="cit2002"> + <label>CIT2002</label> + <paragraph>Citations are text-labeled footnotes. They may be + rendered separately and differently from footnotes.</paragraph> + </citation> + <paragraph>Here's a reference to the above, <citation_reference ids="id18" refid="cit2002">CIT2002</citation_reference>, and a <problematic ids="id86 id19" refid="id85">[nonexistent]_</problematic> + citation.</paragraph> + <target refid="another-target"></target> + </section> + <section ids="targets another-target" names="targets another\ target"> + <title auto="1" refid="id52"><generated classes="sectnum">2.13 </generated>Targets</title> + <target refid="example"></target> + <paragraph ids="example" names="example">This paragraph is pointed to by the explicit "example" target. A + reference can be found under <reference name="Inline Markup" refid="inline-markup">Inline Markup</reference>, above. <reference name="Inline hyperlink targets" refid="inline-hyperlink-targets">Inline + hyperlink targets</reference> are also possible.</paragraph> + <paragraph>Section headers are implicit targets, referred to by name. See + <reference name="Targets" refid="targets">Targets</reference>, which is a subsection of <reference name="Body Elements" refid="body-elements">Body Elements</reference>.</paragraph> + <paragraph>Explicit external targets are interpolated into references such as + "<reference name="Python" refuri="http://www.python.org/">Python</reference> <footnote_reference auto="1" ids="id27" refid="id25">5</footnote_reference>".</paragraph> + <target ids="python" names="python" refuri="http://www.python.org/"></target> + <paragraph>Targets may be indirect and anonymous. Thus <reference anonymous="1" name="this phrase" refid="targets">this phrase</reference> may also + refer to the <reference name="Targets" refid="targets">Targets</reference> section.</paragraph> + <target anonymous="1" ids="id20" refid="targets"></target> + <paragraph>Here's a <problematic ids="id88" refid="id87">`hyperlink reference without a target`_</problematic>, which generates an + error.</paragraph> + <section dupnames="duplicate\ target\ names" ids="duplicate-target-names"> + <title auto="1" refid="id53"><generated classes="sectnum">2.13.1 </generated>Duplicate Target Names</title> + <paragraph>Duplicate names in section headers or other implicit targets will + generate "info" (level-1) system messages. Duplicate names in + explicit targets will generate "warning" (level-2) system messages.</paragraph> + </section> + <section dupnames="duplicate\ target\ names" ids="id21"> + <title auto="1" refid="id54"><generated classes="sectnum">2.13.2 </generated>Duplicate Target Names</title> + <system_message backrefs="id21" level="1" line="438" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Duplicate implicit target name: "duplicate target names".</paragraph> + </system_message> + <paragraph>Since there are two "Duplicate Target Names" section headers, we + cannot uniquely refer to either of them by name. If we try to (like + this: <problematic ids="id90" refid="id89">`Duplicate Target Names`_</problematic>), an error is generated.</paragraph> + </section> + </section> + <section ids="directives" names="directives"> + <title auto="1" refid="id55"><generated classes="sectnum">2.14 </generated>Directives</title> + <topic classes="contents local" ids="contents" names="contents"> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph><reference ids="id74" refid="document-parts"><generated classes="sectnum">2.14.1 </generated>Document Parts</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id75" refid="images-and-figures"><generated classes="sectnum">2.14.2 </generated>Images and Figures</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id76" refid="admonitions"><generated classes="sectnum">2.14.3 </generated>Admonitions</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id77" refid="topics-sidebars-and-rubrics"><generated classes="sectnum">2.14.4 </generated>Topics, Sidebars, and Rubrics</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id78" refid="target-footnotes"><generated classes="sectnum">2.14.5 </generated>Target Footnotes</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id79" refid="replacement-text"><generated classes="sectnum">2.14.6 </generated>Replacement Text</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id80" refid="compound-paragraph"><generated classes="sectnum">2.14.7 </generated>Compound Paragraph</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id81" refid="parsed-literal-blocks"><generated classes="sectnum">2.14.8 </generated>Parsed Literal Blocks</reference></paragraph> + </list_item> + <list_item> + <paragraph><reference ids="id82" refid="code"><generated classes="sectnum">2.14.9 </generated>Code</reference></paragraph> + </list_item> + </bullet_list> + </topic> + <paragraph>These are just a sample of the many reStructuredText Directives. For + others, please see + <reference refuri="http://docutils.sourceforge.net/docs/ref/rst/directives.html">http://docutils.sourceforge.net/docs/ref/rst/directives.html</reference>.</paragraph> + <section ids="document-parts" names="document\ parts"> + <title auto="1" refid="id74"><generated classes="sectnum">2.14.1 </generated>Document Parts</title> + <paragraph>An example of the "contents" directive can be seen above this section + (a local, untitled table of <reference name="contents" refid="contents">contents</reference>) and at the beginning of the + document (a document-wide <reference name="table of contents" refid="table-of-contents">table of contents</reference>).</paragraph> + </section> + <section ids="images-and-figures" names="images\ and\ figures"> + <title auto="1" refid="id75"><generated classes="sectnum">2.14.2 </generated>Images and Figures</title> + <paragraph>An image directive (also clickable -- a hyperlink reference):</paragraph> + <reference name="directives" refid="directives"><image classes="class1 class2" uri="../../../docs/user/rst/images/title.png"></image></reference> + <paragraph>Image with multiple IDs:</paragraph> + <target refid="image-target-1"></target> + <target refid="image-target-2"></target> + <target refid="image-target-3"></target> + <image ids="image-target-3 image-target-2 image-target-1" names="image\ target\ 3 image\ target\ 2 image\ target\ 1" uri="../../../docs/user/rst/images/title.png"></image> + <paragraph>A centered image:</paragraph> + <image align="center" uri="../../../docs/user/rst/images/biohazard.png"></image> + <paragraph>A left-aligned image:</paragraph> + <image align="left" uri="../../../docs/user/rst/images/biohazard.png"></image> + <paragraph>This paragraph might flow around the image. + The specific behavior depends upon the style sheet and + the browser or rendering software used.</paragraph> + <paragraph>A right-aligned image:</paragraph> + <image align="right" uri="../../../docs/user/rst/images/biohazard.png"></image> + <paragraph>This paragraph might flow around the image. + The specific behavior depends upon the style sheet and + the browser or rendering software used.</paragraph> + <paragraph>For inline images see <reference name="Substitution Definitions" refid="substitution-definitions">Substitution Definitions</reference>.</paragraph> + <paragraph>Image size:</paragraph> + <paragraph>An image 2 em wide:</paragraph> + <image uri="../../../docs/user/rst/images/biohazard.png" width="2em"></image> + <paragraph>An image 2 em wide and 15 pixel high:</paragraph> + <image height="15px" uri="../../../docs/user/rst/images/biohazard.png" width="2em"></image> + <paragraph>An image occupying 50% of the line width:</paragraph> + <image uri="../../../docs/user/rst/images/title.png" width="50%"></image> + <paragraph>An image 2 cm high:</paragraph> + <image height="2cm" uri="../../../docs/user/rst/images/biohazard.png"></image> + <paragraph>A <emphasis>figure</emphasis> is an image with a caption and/or a legend. With page-based output + media, figures might float to a different position if this helps the page + layout.</paragraph> + <figure classes="figclass1 figclass2"> + <image alt="reStructuredText, the markup syntax" classes="class1 class2" uri="../../../docs/user/rst/images/title.png" width="258"></image> + <caption>Plaintext markup syntax and parser system.</caption> + <legend> + <table> + <tgroup cols="2"> + <colspec colwidth="12"></colspec> + <colspec colwidth="47"></colspec> + <tbody> + <row> + <entry> + <paragraph>re</paragraph> + </entry> + <entry> + <paragraph>Revised, revisited, based on 're' module.</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Structured</paragraph> + </entry> + <entry> + <paragraph>Structure-enhanced text, structuredtext.</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Text</paragraph> + </entry> + <entry> + <paragraph>Well it is, isn't it?</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + <paragraph>This paragraph is also part of the legend.</paragraph> + </legend> + </figure> + <paragraph>A left-aligned figure:</paragraph> + <figure align="left" classes="figclass1 figclass2" width="70%"> + <image alt="reStructuredText, the markup syntax" classes="class1 class2" uri="../../../docs/user/rst/images/biohazard.png" width="40px"></image> + <caption>This is the caption.</caption> + <legend> + <paragraph>This is the legend.</paragraph> + <paragraph>The legend may consist of several paragraphs.</paragraph> + </legend> + </figure> + <paragraph>This paragraph might flow around the figure.</paragraph> + <paragraph>The specific behavior depends upon the style sheet and the browser or + rendering software used.</paragraph> + <paragraph>A centered figure:</paragraph> + <figure align="center"> + <image uri="../../../docs/user/rst/images/biohazard.png" width="40px"></image> + <caption>This is the caption.</caption> + <legend> + <paragraph>This is the legend.</paragraph> + <paragraph>The legend may consist of several paragraphs.</paragraph> + </legend> + </figure> + <paragraph>This paragraph might flow around the figure.</paragraph> + <paragraph>The specific behavior depends upon the style sheet and the browser or + rendering software used.</paragraph> + <paragraph>A right-aligned figure:</paragraph> + <figure align="right"> + <image uri="../../../docs/user/rst/images/biohazard.png" width="40px"></image> + <caption>This is the caption.</caption> + <legend> + <paragraph>This is the legend.</paragraph> + <paragraph>The legend may consist of several paragraphs.</paragraph> + </legend> + </figure> + <paragraph>This paragraph might flow around the figure. The specific behavior depends + upon the style sheet and the browser or rendering software used.</paragraph> + <paragraph>Tables may be given titles and additional arguments with the <emphasis>table</emphasis> + directive:</paragraph> + <table align="left"> + <title>left-aligned table</title> + <tgroup cols="2"> + <colspec colwidth="5"></colspec> + <colspec colwidth="5"></colspec> + <thead> + <row> + <entry> + <paragraph>A</paragraph> + </entry> + <entry> + <paragraph>not A</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + <table align="center"> + <title>center-aligned table</title> + <tgroup cols="2"> + <colspec colwidth="5"></colspec> + <colspec colwidth="5"></colspec> + <thead> + <row> + <entry> + <paragraph>A</paragraph> + </entry> + <entry> + <paragraph>not A</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + <table align="right"> + <title>right-aligned table</title> + <tgroup cols="2"> + <colspec colwidth="5"></colspec> + <colspec colwidth="5"></colspec> + <thead> + <row> + <entry> + <paragraph>A</paragraph> + </entry> + <entry> + <paragraph>not A</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section ids="admonitions" names="admonitions"> + <title auto="1" refid="id76"><generated classes="sectnum">2.14.3 </generated>Admonitions</title> + <attention> + <paragraph>Directives at large.</paragraph> + </attention> + <caution> + <paragraph>Don't take any wooden nickels.</paragraph> + </caution> + <danger> + <paragraph>Mad scientist at work!</paragraph> + </danger> + <error> + <paragraph>Does not compute.</paragraph> + </error> + <hint> + <paragraph>It's bigger than a bread box.</paragraph> + </hint> + <important> + <bullet_list bullet="-"> + <list_item> + <paragraph>Wash behind your ears.</paragraph> + </list_item> + <list_item> + <paragraph>Clean up your room.</paragraph> + </list_item> + <list_item> + <paragraph>Call your mother.</paragraph> + </list_item> + <list_item> + <paragraph>Back up your data.</paragraph> + </list_item> + </bullet_list> + </important> + <note> + <paragraph>This is a note.</paragraph> + </note> + <tip> + <paragraph>15% if the service is good.</paragraph> + </tip> + <warning> + <paragraph>Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised.</paragraph> + </warning> + <admonition classes="admonition-and-by-the-way"> + <title>And, by the way...</title> + <paragraph>You can make up your own admonition too.</paragraph> + <target ids="docutils" names="docutils" refuri="http://docutils.sourceforge.net/"></target> + </admonition> + </section> + <section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"> + <title auto="1" refid="id77"><generated classes="sectnum">2.14.4 </generated>Topics, Sidebars, and Rubrics</title> + <paragraph><emphasis>Sidebars</emphasis> are like miniature, parallel documents.</paragraph> + <sidebar> + <title>Sidebar Title</title> + <subtitle>Optional Subtitle</subtitle> + <paragraph>This is a sidebar. It is for text outside the flow of the main + text.</paragraph> + <rubric>This is a rubric inside a sidebar</rubric> + <paragraph>Sidebars often appear beside the main text with a border and a different + background or font color.</paragraph> + </sidebar> + <paragraph>A <emphasis>topic</emphasis> is like a block quote with a title, or a self-contained section + with no subsections.</paragraph> + <topic> + <title>Topic Title</title> + <paragraph>This is a topic.</paragraph> + </topic> + <paragraph>A <emphasis>rubric</emphasis> is like an informal heading that doesn't correspond to the + document's structure. It is typically highlighted in red (hence the name).</paragraph> + <rubric>This is a rubric</rubric> + <paragraph>Topics and rubrics can be used at places where a <reference name="section title" refid="section-title">section title</reference> is not + allowed (e.g. inside a directive).</paragraph> + </section> + <section ids="target-footnotes" names="target\ footnotes"> + <title auto="1" refid="id78"><generated classes="sectnum">2.14.5 </generated>Target Footnotes</title> + <footnote auto="1" backrefs="id26 id27 id28 id31" ids="id25" names="TARGET_NOTE:\ id25"> + <label>5</label> + <paragraph><reference refuri="http://www.python.org/">http://www.python.org/</reference></paragraph> + </footnote> + <footnote auto="1" backrefs="id30" ids="id29" names="TARGET_NOTE:\ id29"> + <label>6</label> + <paragraph><reference refuri="http://pygments.org/">http://pygments.org/</reference></paragraph> + </footnote> + <footnote auto="1" backrefs="id33" ids="id32" names="TARGET_NOTE:\ id32"> + <label>7</label> + <paragraph><reference refuri="http://docutils.sourceforge.net/">http://docutils.sourceforge.net/</reference></paragraph> + </footnote> + </section> + <section ids="replacement-text" names="replacement\ text"> + <title auto="1" refid="id79"><generated classes="sectnum">2.14.6 </generated>Replacement Text</title> + <paragraph>I recommend you try <reference refuri="http://www.python.org/">Python, <emphasis>the</emphasis> best language around</reference> <footnote_reference auto="1" ids="id28" refid="id25">5</footnote_reference>.</paragraph> + <substitution_definition names="Python">Python, <emphasis>the</emphasis> best language around</substitution_definition> + </section> + <section ids="compound-paragraph" names="compound\ paragraph"> + <title auto="1" refid="id80"><generated classes="sectnum">2.14.7 </generated>Compound Paragraph</title> + <compound classes="some-class"> + <paragraph>Compound 1, paragraph 1.</paragraph> + <paragraph>Compound 1, paragraph 2.</paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph>Compound 1, list item one.</paragraph> + </list_item> + <list_item> + <paragraph>Compound 1, list item two.</paragraph> + </list_item> + </bullet_list> + </compound> + <paragraph>Another compound statement:</paragraph> + <compound> + <paragraph>Compound 2, a literal block:</paragraph> + <literal_block xml:space="preserve">Compound 2, literal.</literal_block> + <paragraph>Compound 2, this is a test.</paragraph> + </compound> + <compound> + <paragraph>Compound 3, only consisting of one paragraph.</paragraph> + </compound> + <compound> + <literal_block xml:space="preserve">Compound 4. +This one starts with a literal block.</literal_block> + <paragraph>Compound 4, a paragraph.</paragraph> + </compound> + <paragraph>Now something <emphasis>really</emphasis> perverted -- a nested compound block. This is + just to test that it works at all; the results don't have to be + meaningful.</paragraph> + <compound> + <paragraph>Compound 5, block 1 (a paragraph).</paragraph> + <compound> + <paragraph>Compound 6, block 2 in compound 5.</paragraph> + <paragraph>Compound 6, another paragraph.</paragraph> + </compound> + <paragraph>Compound 5, block 3 (a paragraph).</paragraph> + </compound> + <compound> + <paragraph>Compound 7, with a table inside:</paragraph> + <table> + <tgroup cols="3"> + <colspec colwidth="20"></colspec> + <colspec colwidth="20"></colspec> + <colspec colwidth="20"></colspec> + <tbody> + <row> + <entry> + <paragraph>Left cell, first + paragraph.</paragraph> + <paragraph>Left cell, second + paragraph.</paragraph> + </entry> + <entry> + <paragraph>Middle cell, + consisting of + exactly one + paragraph.</paragraph> + </entry> + <entry> + <paragraph>Right cell.</paragraph> + <paragraph>Paragraph 2.</paragraph> + <paragraph>Paragraph 3.</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + <paragraph>Compound 7, a paragraph after the table.</paragraph> + <paragraph>Compound 7, another paragraph.</paragraph> + </compound> + </section> + <section ids="parsed-literal-blocks" names="parsed\ literal\ blocks"> + <title auto="1" refid="id81"><generated classes="sectnum">2.14.8 </generated>Parsed Literal Blocks</title> + <literal_block xml:space="preserve">This is a parsed literal block. + This line is indented. The next line is blank. + +Inline markup is supported, e.g. <emphasis>emphasis</emphasis>, <strong>strong</strong>, <literal>literal +text</literal>, <subscript>sub-</subscript> and <superscript>super</superscript>scripts, +inline formulas: <math>A = 2 \pi r^2</math>, +footnotes <footnote_reference ids="id22" refid="id8">1</footnote_reference>, <target ids="hyperlink-targets" names="hyperlink\ targets">hyperlink targets</target>, and <reference name="references" refuri="http://www.python.org/">references</reference><target ids="references" names="references" refuri="http://www.python.org/"></target>.</literal_block> + </section> + <section ids="code" names="code"> + <title auto="1" refid="id82"><generated classes="sectnum">2.14.9 </generated>Code</title> + <paragraph>Blocks of source code can be set with the <title_reference>code</title_reference> directive. If the code + language is specified, the content is parsed and tagged by the <reference name="Pygments" refuri="http://pygments.org/">Pygments</reference> <footnote_reference auto="1" ids="id30" refid="id29">6</footnote_reference> + syntax highlighter and can be formatted with a style sheet. (Code parsing + is turned off using the <literal>syntax-highlight</literal> config setting in the test + conversions in order to get identical results with/without installed + Pygments highlighter.)</paragraph> + <literal_block classes="code python" xml:space="preserve">print 'This is Python code.'</literal_block> + <paragraph>The <literal>:number-lines:</literal> option (with optional start value) generates line + numbers:</paragraph> + <literal_block classes="code python" xml:space="preserve"><inline classes="ln"> 8 </inline># print integers from 0 to 9: +<inline classes="ln"> 9 </inline>for i in range(10): +<inline classes="ln">10 </inline> print i</literal_block> + <paragraph>For inline code snippets, there is the <title_reference>code</title_reference> role, which can be used + directly (the code will not be parsed/tagged, as the language is not known) + or as base for special code roles, e.g. the LaTeX code in the next + paragraph.</paragraph> + <paragraph>Docutils uses LaTeX syntax for math directives and roles: + <literal classes="code tex">\alpha = f(x)</literal> prints <math>\alpha = f(x)</math>.</paragraph> + <paragraph>The <literal>:code:</literal> option of the <title_reference>include</title_reference> directive sets the included content + as a code block, here the rst file <literal>header_footer.txt</literal> with line numbers:</paragraph> + <literal_block classes="code rst" source="functional/input/data/header_footer.txt" xml:space="preserve"><inline classes="ln">1 </inline>.. header:: Document header +<inline classes="ln">2 </inline>.. footer:: Document footer</literal_block> + <target ids="pygments" names="pygments" refuri="http://pygments.org/"></target> + </section> + </section> + <section ids="substitution-definitions" names="substitution\ definitions"> + <title auto="1" refid="id65"><generated classes="sectnum">2.15 </generated>Substitution Definitions</title> + <paragraph>An inline image (<image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"></image>) example:</paragraph> + <substitution_definition names="EXAMPLE"><image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"></image></substitution_definition> + <paragraph>(Substitution definitions are not visible in the HTML source.)</paragraph> + </section> + <section ids="comments" names="comments"> + <title auto="1" refid="id66"><generated classes="sectnum">2.16 </generated>Comments</title> + <paragraph>Here's one:</paragraph> + <comment xml:space="preserve">Comments begin with two dots and a space. Anything may +follow, except for the syntax of footnotes, hyperlink +targets, directives, or substitution definitions. + +Double-dashes -- "--" -- must be escaped somehow in HTML output. + +Comments may contain non-ASCII characters: ä ö ü æ ø å</comment> + <paragraph>(View the HTML source to see the comment.)</paragraph> + </section> + <section ids="raw-text" names="raw\ text"> + <title auto="1" refid="id67"><generated classes="sectnum">2.17 </generated>Raw text</title> + <paragraph>This does not necessarily look nice, because there may be missing white space.</paragraph> + <paragraph>It's just there to freeze the behavior.</paragraph> + <raw format="html latex" xml:space="preserve">A test.</raw> + <raw format="html latex" xml:space="preserve">Second test.</raw> + <raw classes="myclass" format="html latex" xml:space="preserve">Another test with myclass set.</raw> + <paragraph>This is the <raw classes="myrawroleclass" format="html latex" xml:space="preserve">fourth test</raw> with myrawroleclass set.</paragraph> + <raw format="html" xml:space="preserve">Fifth test in HTML.<br />Line two.</raw> + <raw format="latex" xml:space="preserve">Fifth test in LaTeX.\\Line two.</raw> + </section> + <section ids="container" names="container"> + <title auto="1" refid="id68"><generated classes="sectnum">2.18 </generated>Container</title> + <container classes="custom"> + <paragraph>paragraph 1</paragraph> + <paragraph>paragraph 2</paragraph> + </container> + </section> + <section ids="colspanning-tables" names="colspanning\ tables"> + <title auto="1" refid="id69"><generated classes="sectnum">2.19 </generated>Colspanning tables</title> + <paragraph>This table has a cell spanning two columns:</paragraph> + <table> + <tgroup cols="3"> + <colspec colwidth="5"></colspec> + <colspec colwidth="5"></colspec> + <colspec colwidth="6"></colspec> + <thead> + <row> + <entry morecols="1"> + <paragraph>Inputs</paragraph> + </entry> + <entry> + <paragraph>Output</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>A</paragraph> + </entry> + <entry> + <paragraph>B</paragraph> + </entry> + <entry> + <paragraph>A or B</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>False</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + <entry> + <paragraph>True</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section ids="rowspanning-tables" names="rowspanning\ tables"> + <title auto="1" refid="id70"><generated classes="sectnum">2.20 </generated>Rowspanning tables</title> + <paragraph>Here's a table with cells spanning several rows:</paragraph> + <table> + <tgroup cols="3"> + <colspec colwidth="24"></colspec> + <colspec colwidth="12"></colspec> + <colspec colwidth="18"></colspec> + <thead> + <row> + <entry> + <paragraph>Header row, column 1 + (header rows optional)</paragraph> + </entry> + <entry> + <paragraph>Header 2</paragraph> + </entry> + <entry> + <paragraph>Header 3</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>body row 1, column 1</paragraph> + </entry> + <entry> + <paragraph>column 2</paragraph> + </entry> + <entry> + <paragraph>column 3</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>body row 2</paragraph> + </entry> + <entry morerows="1"> + <paragraph>Cells may + span rows.</paragraph> + </entry> + <entry morerows="1"> + <paragraph>Another + rowspanning + cell.</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>body row 3</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section ids="complex-tables" names="complex\ tables"> + <title auto="1" refid="id71"><generated classes="sectnum">2.21 </generated>Complex tables</title> + <paragraph>Here's a complex table, which should test all features.</paragraph> + <table> + <tgroup cols="4"> + <colspec colwidth="24"></colspec> + <colspec colwidth="12"></colspec> + <colspec colwidth="10"></colspec> + <colspec colwidth="10"></colspec> + <thead> + <row> + <entry> + <paragraph>Header row, column 1 + (header rows optional)</paragraph> + </entry> + <entry> + <paragraph>Header 2</paragraph> + </entry> + <entry> + <paragraph>Header 3</paragraph> + </entry> + <entry> + <paragraph>Header 4</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>body row 1, column 1</paragraph> + </entry> + <entry> + <paragraph>column 2</paragraph> + </entry> + <entry> + <paragraph>column 3</paragraph> + </entry> + <entry> + <paragraph>column 4</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>body row 2</paragraph> + </entry> + <entry morecols="2"> + <paragraph>Cells may span columns.</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>body row 3</paragraph> + </entry> + <entry morerows="1"> + <paragraph>Cells may + span rows.</paragraph> + <paragraph>Paragraph.</paragraph> + </entry> + <entry morecols="1" morerows="1"> + <bullet_list bullet="-"> + <list_item> + <paragraph>Table cells</paragraph> + </list_item> + <list_item> + <paragraph>contain</paragraph> + </list_item> + <list_item> + <paragraph>body elements.</paragraph> + </list_item> + </bullet_list> + </entry> + </row> + <row> + <entry> + <paragraph>body row 4</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>body row 5</paragraph> + </entry> + <entry morecols="1"> + <paragraph>Cells may also be + empty: <literal>--></literal></paragraph> + </entry> + <entry> + </entry> + </row> + </tbody> + </tgroup> + </table> + </section> + <section ids="list-tables" names="list\ tables"> + <title auto="1" refid="id72"><generated classes="sectnum">2.22 </generated>List Tables</title> + <paragraph>Here's a list table exercising all features:</paragraph> + <table classes="colwidths-given test"> + <title>list table with integral header</title> + <tgroup cols="3"> + <colspec colwidth="10" stub="1"></colspec> + <colspec colwidth="20"></colspec> + <colspec colwidth="30"></colspec> + <thead> + <row> + <entry> + <paragraph>Treat</paragraph> + </entry> + <entry> + <paragraph>Quantity</paragraph> + </entry> + <entry> + <paragraph>Description</paragraph> + </entry> + </row> + </thead> + <tbody> + <row> + <entry> + <paragraph>Albatross</paragraph> + </entry> + <entry> + <paragraph>2.99</paragraph> + </entry> + <entry> + <paragraph>On a stick!</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Crunchy Frog</paragraph> + </entry> + <entry> + <paragraph>1.49</paragraph> + </entry> + <entry> + <paragraph>If we took the bones out, it wouldn't be + crunchy, now would it?</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Gannet Ripple</paragraph> + </entry> + <entry> + <paragraph>1.99</paragraph> + </entry> + <entry> + <paragraph>On a stick!</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + <table align="center"> + <title>center aligned list table</title> + <tgroup cols="2"> + <colspec colwidth="50"></colspec> + <colspec colwidth="50"></colspec> + <tbody> + <row> + <entry> + <paragraph>Albatross</paragraph> + </entry> + <entry> + <paragraph>2.99</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Crunchy Frog</paragraph> + </entry> + <entry> + <paragraph>1.49</paragraph> + </entry> + </row> + <row> + <entry> + <paragraph>Gannet Ripple</paragraph> + </entry> + <entry> + <paragraph>1.99</paragraph> + </entry> + </row> + </tbody> + </tgroup> + </table> + </section> + </section> + <section ids="error-handling" names="error\ handling"> + <title auto="1" refid="id73"><generated classes="sectnum">3 </generated>Error Handling</title> + <paragraph>Any errors caught during processing will generate system messages.</paragraph> + <paragraph>There should be five messages in the following, auto-generated + section, "Docutils System Messages":</paragraph> + <comment xml:space="preserve">section should be added by Docutils automatically</comment> + </section> + <section classes="system-messages"> + <title>Docutils System Messages</title> + <system_message backrefs="id24" ids="id23" level="3" line="104" source="functional/input/data/standard.txt" type="ERROR"> + <paragraph>Undefined substitution referenced: "problematic".</paragraph> + </system_message> + <system_message backrefs="id84" ids="id83" level="3" line="391" source="functional/input/data/standard.txt" type="ERROR"> + <paragraph>Unknown target name: "5".</paragraph> + </system_message> + <system_message backrefs="id86" ids="id85" level="3" line="400" source="functional/input/data/standard.txt" type="ERROR"> + <paragraph>Unknown target name: "nonexistent".</paragraph> + </system_message> + <system_message backrefs="id88" ids="id87" level="3" line="427" source="functional/input/data/standard.txt" type="ERROR"> + <paragraph>Unknown target name: "hyperlink reference without a target".</paragraph> + </system_message> + <system_message backrefs="id90" ids="id89" level="3" line="440" source="functional/input/data/standard.txt" type="ERROR"> + <paragraph>Duplicate target name, cannot be used as a unique reference: "duplicate target names".</paragraph> + </system_message> + <system_message level="1" line="163" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "target" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="405" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "another-target" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="473" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "image-target-1" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="474" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "image-target-2" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="475" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "image-target-3" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="667" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "docutils" is not referenced.</paragraph> + </system_message> + <system_message level="1" line="788" source="functional/input/data/standard.txt" type="INFO"> + <paragraph>Hyperlink target "hyperlink targets" is not referenced.</paragraph> + </system_message> + </section> +</document> diff --git a/test/functional/input/standalone_rst_docutils_xml.txt b/test/functional/input/standalone_rst_docutils_xml.txt new file mode 100644 index 000000000..05f0287d0 --- /dev/null +++ b/test/functional/input/standalone_rst_docutils_xml.txt @@ -0,0 +1,7 @@ +.. include:: data/standard.txt +.. include:: data/header_footer.txt +.. include:: data/table_colspan.txt +.. include:: data/table_rowspan.txt +.. include:: data/table_complex.txt +.. include:: data/list_table.txt +.. include:: data/errors.txt diff --git a/test/functional/tests/standalone_rst_docutils_xml.py b/test/functional/tests/standalone_rst_docutils_xml.py new file mode 100644 index 000000000..62101acd3 --- /dev/null +++ b/test/functional/tests/standalone_rst_docutils_xml.py @@ -0,0 +1,15 @@ +exec(open('functional/tests/_standalone_rst_defaults.py').read()) + +# Source and destination file names. +test_source = "standalone_rst_docutils_xml.txt" +test_destination = "standalone_rst_docutils_xml.xml" + +# Keyword parameters passed to publish_file. +writer_name = "docutils_xml" + +# Settings +# enable INFO-level system messages in this test: +settings_overrides['report_level'] = 1 + +# format output with indents and newlines +settings_overrides['indents'] = True |
