diff options
author | smerten <smerten@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2010-11-01 12:18:09 +0000 |
---|---|---|
committer | smerten <smerten@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2010-11-01 12:18:09 +0000 |
commit | 3fec6bb014603c9111138abcdf7ddef9f21e120a (patch) | |
tree | fdc12e660155d7133dd209ca8dbd29b5f6328a2a | |
parent | 7fff15d41fa012970d06bed19c0774c55b5c57ba (diff) | |
download | docutils-3fec6bb014603c9111138abcdf7ddef9f21e120a.tar.gz |
Added tests.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@6466 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
85 files changed, 18205 insertions, 0 deletions
diff --git a/sandbox/xml2rst/tests.xalan/common.cfg b/sandbox/xml2rst/tests.xalan/common.cfg new file mode 100644 index 000000000..69273e62d --- /dev/null +++ b/sandbox/xml2rst/tests.xalan/common.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +expectedExtension = .rst + +command = xalan +options = -qc -xsl ../../rst/xml2rst-noexslt.xsl diff --git a/sandbox/xml2rst/tests.xalan/real/filterunit.cfg b/sandbox/xml2rst/tests.xalan/real/filterunit.cfg new file mode 100644 index 000000000..473233209 --- /dev/null +++ b/sandbox/xml2rst/tests.xalan/real/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/real diff --git a/sandbox/xml2rst/tests.xalan/simple/filterunit.cfg b/sandbox/xml2rst/tests.xalan/simple/filterunit.cfg new file mode 100644 index 000000000..96a9c42ee --- /dev/null +++ b/sandbox/xml2rst/tests.xalan/simple/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/simple diff --git a/sandbox/xml2rst/tests.xalan/synthetic/filterunit.cfg b/sandbox/xml2rst/tests.xalan/synthetic/filterunit.cfg new file mode 100644 index 000000000..93b49a55f --- /dev/null +++ b/sandbox/xml2rst/tests.xalan/synthetic/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/synthetic diff --git a/sandbox/xml2rst/tests.xsltproc/common.cfg b/sandbox/xml2rst/tests.xsltproc/common.cfg new file mode 100644 index 000000000..ea64f21ab --- /dev/null +++ b/sandbox/xml2rst/tests.xsltproc/common.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +expectedExtension = .rst + +command = xsltproc +options = ../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests.xsltproc/options/filterunit.cfg b/sandbox/xml2rst/tests.xsltproc/options/filterunit.cfg new file mode 100644 index 000000000..f5d3f0f3c --- /dev/null +++ b/sandbox/xml2rst/tests.xsltproc/options/filterunit.cfg @@ -0,0 +1,7 @@ +suiteDirectory = ../../tests/options + +inputExtension = .xml +optionExtension = .xsltproc +expectedExtension = .rst + +command = xsltproc diff --git a/sandbox/xml2rst/tests.xsltproc/real/filterunit.cfg b/sandbox/xml2rst/tests.xsltproc/real/filterunit.cfg new file mode 100644 index 000000000..473233209 --- /dev/null +++ b/sandbox/xml2rst/tests.xsltproc/real/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/real diff --git a/sandbox/xml2rst/tests.xsltproc/simple/filterunit.cfg b/sandbox/xml2rst/tests.xsltproc/simple/filterunit.cfg new file mode 100644 index 000000000..96a9c42ee --- /dev/null +++ b/sandbox/xml2rst/tests.xsltproc/simple/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/simple diff --git a/sandbox/xml2rst/tests.xsltproc/synthetic/filterunit.cfg b/sandbox/xml2rst/tests.xsltproc/synthetic/filterunit.cfg new file mode 100644 index 000000000..93b49a55f --- /dev/null +++ b/sandbox/xml2rst/tests.xsltproc/synthetic/filterunit.cfg @@ -0,0 +1,3 @@ +include ../common.cfg + +suiteDirectory = ../../tests/synthetic diff --git a/sandbox/xml2rst/tests/options/expected/adornmentDefault.rst b/sandbox/xml2rst/tests/options/expected/adornmentDefault.rst new file mode 100644 index 000000000..d6510c913 --- /dev/null +++ b/sandbox/xml2rst/tests/options/expected/adornmentDefault.rst @@ -0,0 +1,46 @@ +===== +Title +===== + +-------- +Subtitle +-------- + +Section 1 +========= + +First text. + +Second section +============== + +Subsection +---------- + +Before a transition. + +----- + +After a transition. + +Another subsection +------------------ + +SubSub +~~~~~~ + +Level 4 +``````` + +Level 5 +,,,,,,, + +Level 6 +....... + +Text on deepest level. + +Top section +=========== + +Final words. diff --git a/sandbox/xml2rst/tests/options/expected/adornmentEmacs.rst b/sandbox/xml2rst/tests/options/expected/adornmentEmacs.rst new file mode 100644 index 000000000..f90de2dcb --- /dev/null +++ b/sandbox/xml2rst/tests/options/expected/adornmentEmacs.rst @@ -0,0 +1,46 @@ +===== +Title +===== + +-------- +Subtitle +-------- + +Section 1 +========= + +First text. + +Second section +============== + +Subsection +---------- + +Before a transition. + +----- + +After a transition. + +Another subsection +------------------ + +SubSub +~~~~~~ + +Level 4 +....... + +Level 5 +,,,,,,, + +Level 6 +``````` + +Text on deepest level. + +Top section +=========== + +Final words. diff --git a/sandbox/xml2rst/tests/options/expected/adornmentReverse.rst b/sandbox/xml2rst/tests/options/expected/adornmentReverse.rst new file mode 100644 index 000000000..893df0478 --- /dev/null +++ b/sandbox/xml2rst/tests/options/expected/adornmentReverse.rst @@ -0,0 +1,46 @@ +Title +````` + +Subtitle +,,,,,,,, + +Section 1 +......... + +First text. + +Second section +.............. + +Subsection +~~~~~~~~~~ + +Before a transition. + +----- + +After a transition. + +Another subsection +~~~~~~~~~~~~~~~~~~ + +SubSub +------ + +Level 4 +======= + +------- +Level 5 +------- + +======= +Level 6 +======= + +Text on deepest level. + +Top section +........... + +Final words. diff --git a/sandbox/xml2rst/tests/options/expected/fold20.rst b/sandbox/xml2rst/tests/options/expected/fold20.rst new file mode 100644 index 000000000..e034b8768 --- /dev/null +++ b/sandbox/xml2rst/tests/options/expected/fold20.rst @@ -0,0 +1,13 @@ +This is a text +consisting of many +lines. The lines are +broken according to +the "natural" +folding of Emacs. +This folding sets in +at the fill-column +which happens to be +[^HV fill-column] 70 +in this case. Could +be any other value +though. diff --git a/sandbox/xml2rst/tests/options/expected/fold70.rst b/sandbox/xml2rst/tests/options/expected/fold70.rst new file mode 100644 index 000000000..9e21cb0ed --- /dev/null +++ b/sandbox/xml2rst/tests/options/expected/fold70.rst @@ -0,0 +1,4 @@ +This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. diff --git a/sandbox/xml2rst/tests/options/filterunit.cfg b/sandbox/xml2rst/tests/options/filterunit.cfg new file mode 100644 index 000000000..8983786e3 --- /dev/null +++ b/sandbox/xml2rst/tests/options/filterunit.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +optionExtension = .opt +expectedExtension = .rst + +command = ../../xml2rst.py diff --git a/sandbox/xml2rst/tests/options/input/adornmentDefault.opt b/sandbox/xml2rst/tests/options/input/adornmentDefault.opt new file mode 100644 index 000000000..2337820a9 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentDefault.opt @@ -0,0 +1 @@ +$< diff --git a/sandbox/xml2rst/tests/options/input/adornmentDefault.xml b/sandbox/xml2rst/tests/options/input/adornmentDefault.xml new file mode 100644 index 000000000..07ff518ed --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentDefault.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.6 --> +<document ids="title" names="title" source="original/adornmentX.rst" title="Title"><title>Title</title><subtitle ids="subtitle" names="subtitle">Subtitle</subtitle><section ids="section-1" names="section\ 1"><title>Section 1</title><paragraph>First text.</paragraph></section><section ids="second-section" names="second\ section"><title>Second section</title><section ids="subsection" names="subsection"><title>Subsection</title><paragraph>Before a transition.</paragraph><transition/><paragraph>After a transition.</paragraph></section><section ids="another-subsection" names="another\ subsection"><title>Another subsection</title><section ids="subsub" names="subsub"><title>SubSub</title><section ids="level-4" names="level\ 4"><title>Level 4</title><section ids="level-5" names="level\ 5"><title>Level 5</title><section ids="level-6" names="level\ 6"><title>Level 6</title><paragraph>Text on deepest level.</paragraph></section></section></section></section></section></section><section ids="top-section" names="top\ section"><title>Top section</title><paragraph>Final words.</paragraph></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/options/input/adornmentDefault.xsltproc b/sandbox/xml2rst/tests/options/input/adornmentDefault.xsltproc new file mode 100644 index 000000000..ee94a3d55 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentDefault.xsltproc @@ -0,0 +1 @@ +../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests/options/input/adornmentEmacs.opt b/sandbox/xml2rst/tests/options/input/adornmentEmacs.opt new file mode 100644 index 000000000..3e079459b --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentEmacs.opt @@ -0,0 +1 @@ +'--adornment=o=o-u=u-u~u.u,u`' $< diff --git a/sandbox/xml2rst/tests/options/input/adornmentEmacs.xml b/sandbox/xml2rst/tests/options/input/adornmentEmacs.xml new file mode 100644 index 000000000..07ff518ed --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentEmacs.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.6 --> +<document ids="title" names="title" source="original/adornmentX.rst" title="Title"><title>Title</title><subtitle ids="subtitle" names="subtitle">Subtitle</subtitle><section ids="section-1" names="section\ 1"><title>Section 1</title><paragraph>First text.</paragraph></section><section ids="second-section" names="second\ section"><title>Second section</title><section ids="subsection" names="subsection"><title>Subsection</title><paragraph>Before a transition.</paragraph><transition/><paragraph>After a transition.</paragraph></section><section ids="another-subsection" names="another\ subsection"><title>Another subsection</title><section ids="subsub" names="subsub"><title>SubSub</title><section ids="level-4" names="level\ 4"><title>Level 4</title><section ids="level-5" names="level\ 5"><title>Level 5</title><section ids="level-6" names="level\ 6"><title>Level 6</title><paragraph>Text on deepest level.</paragraph></section></section></section></section></section></section><section ids="top-section" names="top\ section"><title>Top section</title><paragraph>Final words.</paragraph></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/options/input/adornmentEmacs.xsltproc b/sandbox/xml2rst/tests/options/input/adornmentEmacs.xsltproc new file mode 100644 index 000000000..ae9419fc0 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentEmacs.xsltproc @@ -0,0 +1 @@ +--stringparam adornment 'o=o-u=u-u~u.u,u`' ../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests/options/input/adornmentReverse.opt b/sandbox/xml2rst/tests/options/input/adornmentReverse.opt new file mode 100644 index 000000000..f226af9c2 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentReverse.opt @@ -0,0 +1 @@ +'--adornment=u`u,u.u~u-u=o-o=' $< diff --git a/sandbox/xml2rst/tests/options/input/adornmentReverse.xml b/sandbox/xml2rst/tests/options/input/adornmentReverse.xml new file mode 100644 index 000000000..07ff518ed --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentReverse.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.6 --> +<document ids="title" names="title" source="original/adornmentX.rst" title="Title"><title>Title</title><subtitle ids="subtitle" names="subtitle">Subtitle</subtitle><section ids="section-1" names="section\ 1"><title>Section 1</title><paragraph>First text.</paragraph></section><section ids="second-section" names="second\ section"><title>Second section</title><section ids="subsection" names="subsection"><title>Subsection</title><paragraph>Before a transition.</paragraph><transition/><paragraph>After a transition.</paragraph></section><section ids="another-subsection" names="another\ subsection"><title>Another subsection</title><section ids="subsub" names="subsub"><title>SubSub</title><section ids="level-4" names="level\ 4"><title>Level 4</title><section ids="level-5" names="level\ 5"><title>Level 5</title><section ids="level-6" names="level\ 6"><title>Level 6</title><paragraph>Text on deepest level.</paragraph></section></section></section></section></section></section><section ids="top-section" names="top\ section"><title>Top section</title><paragraph>Final words.</paragraph></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/options/input/adornmentReverse.xsltproc b/sandbox/xml2rst/tests/options/input/adornmentReverse.xsltproc new file mode 100644 index 000000000..6b0115fc3 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/adornmentReverse.xsltproc @@ -0,0 +1 @@ +--stringparam adornment 'u`u,u.u~u-u=o-o=' ../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests/options/input/fold20.opt b/sandbox/xml2rst/tests/options/input/fold20.opt new file mode 100644 index 000000000..5dce727d2 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold20.opt @@ -0,0 +1 @@ +--fold 20 $< diff --git a/sandbox/xml2rst/tests/options/input/fold20.xml b/sandbox/xml2rst/tests/options/input/fold20.xml new file mode 100644 index 000000000..ac003b6b9 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold20.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.6 --> +<document source="original/manyLines.rst"><paragraph>This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though.</paragraph></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/options/input/fold20.xsltproc b/sandbox/xml2rst/tests/options/input/fold20.xsltproc new file mode 100644 index 000000000..af66193df --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold20.xsltproc @@ -0,0 +1 @@ +--param fold 20 ../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests/options/input/fold70.opt b/sandbox/xml2rst/tests/options/input/fold70.opt new file mode 100644 index 000000000..ba3fa2152 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold70.opt @@ -0,0 +1 @@ +--fold 70 $< diff --git a/sandbox/xml2rst/tests/options/input/fold70.xml b/sandbox/xml2rst/tests/options/input/fold70.xml new file mode 100644 index 000000000..ac003b6b9 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold70.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.6 --> +<document source="original/manyLines.rst"><paragraph>This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though.</paragraph></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/options/input/fold70.xsltproc b/sandbox/xml2rst/tests/options/input/fold70.xsltproc new file mode 100644 index 000000000..947576d32 --- /dev/null +++ b/sandbox/xml2rst/tests/options/input/fold70.xsltproc @@ -0,0 +1 @@ +--param fold 70 ../../rst/xml2rst.xsl - diff --git a/sandbox/xml2rst/tests/options/original/adornmentX.rst b/sandbox/xml2rst/tests/options/original/adornmentX.rst new file mode 100644 index 000000000..f65bd463d --- /dev/null +++ b/sandbox/xml2rst/tests/options/original/adornmentX.rst @@ -0,0 +1,46 @@ +===== +Title +===== + +-------- +Subtitle +-------- + +Section 1 +========= + +First text. + +Second section +============== + +Subsection +---------- + +Before a transition. + +============================ + +After a transition. + +Another subsection +------------------ + +SubSub +~~~~~~ + +Level 4 +....... + +Level 5 +,,,,,,, + +Level 6 +``````` + +Text on deepest level. + +Top section +=========== + +Final words. diff --git a/sandbox/xml2rst/tests/options/original/foldX.rst b/sandbox/xml2rst/tests/options/original/foldX.rst new file mode 100644 index 000000000..9e21cb0ed --- /dev/null +++ b/sandbox/xml2rst/tests/options/original/foldX.rst @@ -0,0 +1,4 @@ +This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. diff --git a/sandbox/xml2rst/tests/options/readable/adornmentX.xml b/sandbox/xml2rst/tests/options/readable/adornmentX.xml new file mode 100644 index 000000000..58a745ef9 --- /dev/null +++ b/sandbox/xml2rst/tests/options/readable/adornmentX.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="title" names="title" source="original/adornmentX.rst" title="Title"> + <title> + Title + </title> + <subtitle ids="subtitle" names="subtitle"> + Subtitle + </subtitle> + <section ids="section-1" names="section\ 1"> + <title> + Section 1 + </title> + <paragraph> + First text. + </paragraph> + </section> + <section ids="second-section" names="second\ section"> + <title> + Second section + </title> + <section ids="subsection" names="subsection"> + <title> + Subsection + </title> + <paragraph> + Before a transition. + </paragraph> + <transition/> + <paragraph> + After a transition. + </paragraph> + </section> + <section ids="another-subsection" names="another\ subsection"> + <title> + Another subsection + </title> + <section ids="subsub" names="subsub"> + <title> + SubSub + </title> + <section ids="level-4" names="level\ 4"> + <title> + Level 4 + </title> + <section ids="level-5" names="level\ 5"> + <title> + Level 5 + </title> + <section ids="level-6" names="level\ 6"> + <title> + Level 6 + </title> + <paragraph> + Text on deepest level. + </paragraph> + </section> + </section> + </section> + </section> + </section> + </section> + <section ids="top-section" names="top\ section"> + <title> + Top section + </title> + <paragraph> + Final words. + </paragraph> + </section> +</document> diff --git a/sandbox/xml2rst/tests/options/readable/foldX.xml b/sandbox/xml2rst/tests/options/readable/foldX.xml new file mode 100644 index 000000000..238ef014e --- /dev/null +++ b/sandbox/xml2rst/tests/options/readable/foldX.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/foldX.rst"> + <paragraph> + This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. + </paragraph> +</document> diff --git a/sandbox/xml2rst/tests/real/expected/Machinery.rst b/sandbox/xml2rst/tests/real/expected/Machinery.rst new file mode 100644 index 000000000..d9067db5d --- /dev/null +++ b/sandbox/xml2rst/tests/real/expected/Machinery.rst @@ -0,0 +1,484 @@ +#format rst +#language en + +Discussion__ + +__ /Talk + +.. contents:: Contents + +This page describes the machinery used by the `Oekonux community`_. +This page is motivated by a `thread about this topic <http://www.oekonux.de/projekt/liste/archive/msg03333.html>`_ on the +`project list`_, which cares about the organization of the project. + +The intention of this page is to reflect the current state of the +machinery. It is originally written in German which is available as +the first version of this page. + +Overview +======== + +The `Oekonux community`_ currently uses the following technical +facilities: + +* `mailing lists`_ + +* `web sites`_ + +* OpenTheory_ + +* `news groups`_ + +* Wiki_ + +As far as I know other facilities such as IRC are currently not used. + +.. _oekonux server: + +Dedicated Oekonux server +======================== + +There is a dedicated server for the Oekonux project. Currently this is +a virtual server based on Debian and hosted by `VD server`_. This +dedicated server is paid by the `Projekt Oekonux e.V.`_, a registered +association in Germany. + +Today the server runs most of the technical infrastructure of the +project. It has a fixed IP address and the DNS entries for the domains +point to this server. The generic address of the server is +``server.oekonux.de``. + +The general maintainer of this server is HolgerWeiss_, certain +facilities are maintained mainly by StefanMerten_. + +In case it is necessary because the project needs more computing +resources a real server could be hosted by `Individual Network +Berlin`_. + +Mailing lists +============= + +Existing lists +-------------- + +The following lists exist: + +* ``liste AT oekonux DOT de`` + +* ``list-en AT oekonux DOT org`` + +* ``projekt AT oekonux DOT de`` + +* ``chat AT oekonux DOT de`` + +* ``mitglieder AT oekonux DOT de`` + +* ``helfer AT oekonux-konferenz DOT de`` + +* ``referenten AT oekonux-konferenz DOT de`` + +For all mailing lists there are archives_, which are on the web sites +of the domain they belong to. + +Hosting +------- + +All mailing lists are hosted on the `Oekonux server`_. The mailing +lists are all served by a Majordomo_. + +Features +-------- + +Spam protection +~~~~~~~~~~~~~~~ + +Mail to all mailing lists is routed over a SpamAssassin_. This is +indispensable because the addresses of the mailing lists have a wide +distribution. + +The SpamAssassin installation needs some maintenance once in a while +to be ready for the latest ideas of spammers. This maintenance is done +by StefanMerten_. + +Unfortunately the spam filtering does not catch all spam :-( . +Therefore the mailing lists have been closed so only subscribers can +post to the list unmoderated. The bounces of spam and legitimate mail +from non-subscribers are handled by StefanMerten_. All other tasks +necessary for keeping the mailing lists running are also handled by +StefanMerten_. + +Web sites +========= + +Hosting +------- + +Provider +~~~~~~~~ + +There is no special provider for the web sites. All web sites are +hosted on the `Oekonux server`_. + +Because of their size the audio files which mainly have been recorded +during the conferences are kept on web space donated by various +people. + +Before conferences resources of the `OpenTheory project`_ are used +for online creation and presentation of the program of the conference. + +Domains +~~~~~~~ + +There are four domains for which the `e.V.`_ is the owner: + +* ``oekonux.de`` + + Under ``www`` the German main page of the project can be found. + +* ``oekonux.org`` + + Under ``www`` the international main page of the project can be + found. + + Also the Wikis are all hosted here: + + * ``en.wiki`` + + The English language Wiki. + + * ``de.wiki`` + + The German language Wiki. + +* ``oekonux-konferenz.de`` + + The German domain for everything around the Oekonux conferences. + + - ``www`` + + Entry point for the most recent conference. + + - ``erste``, ``zweite``, ``dritte`` + + Entry points for the respective conference. + +* ``oekonux-conference.org`` + + The international domains for everything around the Oekonux + conferences. + + - ``www`` + + Entry point for the most recent conference. + + - ``second``, ``third`` + + Entry points for the respective conference. + +More domains were present before the `e.V.`_ took them over but they +have been abandoned. + +Features +-------- + +Web space +~~~~~~~~~ + +The audio files hosted externally sum up to about 4GB. + +Traffic +~~~~~~~ + + +.. $$$ + +There are statistics about the `network traffic <http://traffic.oekonux.de/>`_ and the `page hits +http://www.oekonux.de/projekt/statistik/website/`_. + +Mail addresses +~~~~~~~~~~~~~~ + +All domains support a couple of mail addresses. They are mainly used +for the `mailing lists`_. + +Besides the functional mail addresses there is only one private mail +address. Generally it is possible to create more private mail +addresses. Such private mail address must contain the family name of +the person. + +Generation and Upload +~~~~~~~~~~~~~~~~~~~~~ + +At the moment all content of the web sites is generated by +StefanMerten_ on his private computer and uploaded onto the server. +Among other facilities the SDF format is used and the whole thing is +embedded in a ``make`` based automation. + +.. important:: The sources for the static pages have been brought to a + CVS repository eons ago. However, this has not been used. + + In general it would be good if a new solution for the web sites + would be available by CVS. With this many people could work on the + site. + + StefanMerten_ would appreciate that the sources of the web pages + are created in a format close to ASCII - at best reStructuredText_. + He is ready to provide a converter from the current format. + +Static pages +~~~~~~~~~~~~ + +Apart from the Wiki pages nearly all pages in the Oekonux domains are +static HTML pages without any JavaScript or other active elements. By +this they are + +* usable by *all* browsers + +* readable for all times + +* no security risk for the server + +* stable URLs without variable parts + + Many search engines ignore links containing a ``?``. + +* need no maintenance + +* friendly to external search engines + + Though navigation is done by frames there is always a ``<noframes>`` + section which contains the links. + +* can be downloaded with tools like ``wget`` completely and without + problems + +* works with every web hosting offer + +Navigation +~~~~~~~~~~ + +Navigation is realized with frames. A narrow frame on the left is +modeled after a file browser. It permanently presents the current +position in the site. The right frame contains the selected content. +If a directory is selected in the navigation the content frame +``default.html`` always appears. + +Apart from this each third level domain has a separate site map. + +Links in all pages are followed by QBullets_ which roughly give the +type of the link. + +Locale search engine +~~~~~~~~~~~~~~~~~~~~ + + +.. $$$ Link ht://dig + +Currently the local search engine is replaced by a ht://dig based +solution. + +RSS-Feed +~~~~~~~~ + +.. important:: There is no RSS feed yet but it would be nice to have + one. + +Content +------- + +General +~~~~~~~ + +.. important:: In general the sites are not maintained really. This is + bad. + +.. important:: In particular it would be good if the international + site would have more of the content of the German site. + Particularly it would be good to have the `Oekonux links`_ in + English. Also the structure of the project should be presented on + the international site. + +Archives +~~~~~~~~ + +All `mailing lists`_ of the project are archived on the web sites. +StefanMerten_ converts the incoming mails to HTML by MHonArc_ and +uploaded automatically. + +HTML pages for the archives are filtered. At the moment + +* comments of MHonArc_ are removed + +* phone numbers are replaced by a fixed text + +* names of certain people who decided to late that they not want to be + found in Oekonux by Google are shortened + +* all URLs pointing to mail addresses are obfuscated a bit + +* mail addresses are obfuscated + +.. important:: There is a request to have the archives on the `web + sites`_ in mbox format. For this it must be clarified what can be + done against mail address harvesting. + +Removal of archived pages is also widely automated. However, it needs +an explicit call with the number of the mail to remove. + +.. important:: Right now the removed mail is removed only from the + indexes but *not* from the server. By this it is no longer + reachable by neighboring mails or an index but the are generally + accessible. This must be changed. + +Texts +~~~~~ + +Several texts of the project are available on the `web sites`_. + +Among them is an introduction for which MagicPoint sources are +available. + +Link page +~~~~~~~~~ + +One of the most important content resources of the `Oekonux +community`_ are the `Oekonux links`_, where interesting links are +entered with a short comment. The page is structured. + +.. important:: It would be good if each of the `Oekonux links`_ would + get a creation date. Meanwhile this would have some historical + value. + + In general for existing links this would be possible by ``cvs + annotate``. + +.. important:: It would be useful if the language of the page behind + the link would be given. This can be done by the HTML attribute + ``hreflang``. + +Statistics +~~~~~~~~~~ + +Statistics are available about the usage of the `mailing lists`_ as +well as about the `web sites`_ usage on the `web sites`_. All +statistics are created weekly by some Free Software (webalizer_, +mail2clf_, mail2chart_) automatically by StefanMerten_ and uploaded. + +OpenTheory +========== + +Many texts from the project and from its environment are available in +the `OpenTheory project`_. Some of them are gathered in the `Oekonux +OpenTheory project`_. + +The texts are about Oekonux content as well as for organizational +purposes. In particular the conference preparation has been done +there. + +Wiki +==== + +Currently there are two Oekonux Wikis at + +* http://en.wiki.oekonux.org/ + +* http://de.wiki.oekonux.org/ + +They are based on the MoinMoin_ Wiki engine. + +The content is maintained by a group of maintainers (`English <http://en.wiki.oekonux.org/MaintainerGroup>`_, `German <http://de.wiki.oekonux.org/MaintainerGruppe>`_ . The technical part +of the Wikis is maintained by StefanMerten_. + +News groups +=========== + +Since end of 2003 the main discussion `mailing lists`_ are available +through Gmane_ as Usenet newsgroups: + +* news://news.gmane.org/gmane.politics.oekonux.german + + Mirrors ``liste AT oekonux DOT de``. + +* news://news.gmane.org/gmane.politics.oekonux.english + + Mirrors ``list-en AT oekonux DOT org``. + +The newsgroups are configured in a way replies by news are not +possible. + +.. important:: For now the newsgroup archives contain only those mails + written after the newsgroup feature was in place. After the problem + of readable mail addresses has been solved the whole archive shall + be `brought <http://gmane.org/import.php>`_ to the newsgroup archive + +Features +-------- + +Search engine +~~~~~~~~~~~~~ + +Gmane_ has a search engine which searches the newsgroups. + +.. ############################################################################ + +.. _restructuredtext: http://docutils.sourceforge.net/rst.html + +.. _oekonux community: http://www.oekonux.de/ + +.. _project list: http://www.oekonux.de/projekt/liste/ + +.. _majordomo: http://www.greatcircle.com/majordomo/ + +.. _spamassassin: http://www.spamassassin.org/ + +.. _projekt oekonux e.v.: + +.. _e.v.: http://www.oekonux.de/projekt/verein/ + +.. _opentheory project: http://www.opentheory.org/ + +.. _individual network berlin: http://www.in-berlin.de/ + +.. _qbullets: http://www.matterform.com/qbullets/ + +.. _mhonarc: http://www.mhonarc.org/ + +.. _oekonux links: http://www.oekonux.de/projekt/links.html + +.. _webalizer: http://www.webalizer.org/ + +.. _mail2clf: http://www.merten-home.de/FreeSoftware/mail2clf/ + +.. _mail2chart: http://www.merten-home.de/FreeSoftware/mail2chart/ + +.. _oekonux opentheory project: http://www.opentheory.org/oekonux/ + +.. _gmane: http://gmane.org/ + +.. _vd server: http://www.vd-server.de/ + +.. _moinmoin: http://moinmoin.wikiwikiweb.de/ + +.. ############################################################################ + +.. LocalWords: reStructuredText Premium page premium oekonux www org Hoster + +.. LocalWords: konferenz conference second third gehosteten MagicPoint Upload + +.. LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes + +.. LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you + +.. LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat + +.. LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs + +.. LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList rst + +.. LocalWords: MailMan buug SpamAssassin Individual Network vLinux server IRC + +.. LocalWords: Repository QBullets annotate hreflang OpenTheory Debian VD DNS + +.. LocalWords: HolgerWeiss StefanMerten mitglieder erste zweite dritte RSS + +.. LocalWords: MoinMoin diff --git a/sandbox/xml2rst/tests/real/expected/MediaWikiFAQ.rst b/sandbox/xml2rst/tests/real/expected/MediaWikiFAQ.rst new file mode 100644 index 000000000..b51ceab2a --- /dev/null +++ b/sandbox/xml2rst/tests/real/expected/MediaWikiFAQ.rst @@ -0,0 +1,222 @@ +#format rst + +FAQ for people used to Wikipedia and other MediaWiki wikis +========================================================== + +.. contents:: Contents + + +Introduction +------------ + +This page is a FAQ page for users used to Wikipedia and other +MediaWiki_ [#]_ wikis. In Project Oekonux we chose MoinMoin_ because +at the time of the decision there was a slight technological +superiority opening more options for its use. If you are interested in +the reasons you may want to consult the requirements_ which have been +found then. + +.. [#] MediaWiki_ is the name of the software used for Wikipedia and + other Wikis. The software running this Wiki is called + MoinMoin_. + +However, MediaWiki_ and it's use is widely known and thus Project +Oekonux strives to make the use of this MoinMoin_ wiki as easy to +MediaWiki_ users as possible. This FAQ is one attempt to do so. If you +are a MediaWiki_ user and have questions not covered here feel free to +contact projekt@oekonux.de. + +.. ############################################################################ + +.. ############################################################################ + +Question and answers +-------------------- + +Of all users +~~~~~~~~~~~~ + +What about the namespace concept? +````````````````````````````````` + +Most of the namespaces in MediaWiki_ are nothing else than a +structuring facility establishing structure on a top level. + +In MoinMoin_ there is no concept of namespaces in the sense of +MediaWiki_. However, there is the concept of `sub pages`_ [#]_ which +have names containing one or more slashes (``/``). + +.. [#] There are also sub pages in MediaWiki_ but they are rarely used + in any area but the ``Users:`` namespace. + +In MoinMoin_ we map the concept of namespaces to the top level `sub +pages`_ of the wiki. So if you have a page named ``Oekonux:Project`` +in MediaWiki_ it would be named ``Oekonux/Project`` in MoinMoin_. + +Please note that `sub pages`_ are more flexible than namespaces +because they allow for more than one level or semantic hierarchy. + +What about the ``Users:`` namespace? +```````````````````````````````````` + +Unfortunately the ``Users:`` namespace as such can not be easily +modeled into MoinMoin_. The homepages of users need to stay on the +top level so the MediaWiki_ page ``Users:JohnDoe`` is mapped to +``JohnDoe`` in MoinMoin_. + +What about the ``Special:`` namespace? +`````````````````````````````````````` + +The ``Special:`` namespace in MediaWiki_ does not lead to normal pages +but to pages which are generated dynamically by the software. + +In MoinMoin_ such pages (and a lot more) are modeled by macros_. So +what in MediaWiki_ reads ``Special:RecentChanges`` in MoinMoin_ is +written ``[[RecentChanges]]``. + +What about the ``Talk:`` namespace? +``````````````````````````````````` + +Actually the ``Talk:`` namespace in MediaWiki_ reachable by the +``Discussion`` tab is not a namespace in the sense of the other +namespaces. Instead it is an add-on for pages in all namespaces. + +In MoinMoin_ this is modeled by `sub pages`_. However, instead of +tagging the term ``Talk`` in the very front of the name of a page in +MoinMoin_ this is added to the end. So for the MediaWiki_ page name +``Oekonux_Talk:Project`` in MoinMoin_ the name +``Oekonux/Project/Talk`` is used. + +To foster similarity to MediaWiki_ wikis most of the page templates +for this wiki contain a link to a ``/Talk`` `sub page`_. + +.. ############################################################################ + +Of editors +~~~~~~~~~~ + +I'm used to `MediaWiki syntax`_. Can I use it in this Wiki? +``````````````````````````````````````````````````````````` + +By default MoinMoin_ has a slightly `different syntax`_ then +MediaWiki_. However, MoinMoin_ can support many languages if only a +parser is available for it. There is a parser for MediaWiki_ syntax +which can be used for this Wiki. All you have to do is to put + +:: + +#format media + +in the very first line of your document. From that point on `MediaWiki +syntax`_ is recognized. + +Currently the parser does not support the full `MediaWiki syntax`_ but +a considerable subset of it. For most pages this subset is completely +sufficient. For an extensive list of supported and unsupported +features please check the `documentation of the parser`_. + +Though I'm used to `MediaWiki syntax`_ I think it sucks. Any alternatives? +`````````````````````````````````````````````````````````````````````````` + +Because in principle MoinMoin_ supports different syntaxes the general +answer is: Yes, you can use other syntaxes if and when the parser +plug-in for it exists and is installed. The default parser for +MoinMoin_ parses the `MoinMoin syntax`_. + +In this Wiki by default we use a variant without automatic CamelCase +links and without InterWiki_ links without special markup. If you want +CamelCase and InterWiki_ links put + +:: + +#format wiki + +in the first line of your page. The MoinMoin wiki markup language has +more options than the MediaWiki markup language but still is quite +illogical. + +Otherwise a very promising ASCII based markup is reStructuredText_. It +is far more logical than any wiki markup language and it has a set of +nice features. If you want to use it put + +:: + +#format rst + +in the first line of your page. + +I tried to create a new page and ended up on this page offering templates. What's this? +``````````````````````````````````````````````````````````````````````````````````````` + +In MoinMoin_ it is possible to have page templates. A page templates +are an easy way to help people to conform to some style guide lines +established for the given wiki. They are created by the maintainers of +the wiki. + +The name of a page template is build from the type of page the page +template is for and the suffix ``Template`` (in English). So for +instance a page template meant for talk pages is named +``TalkTemplate``. + +In a sense a page template bundles some general knowledge about the +wiki ready to be used by the users of the wiki. Of course you can +start a new page from scratch but usually it makes more sense to use +an existing page template. + +Page templates, ok. What about the MediaWiki_ templates? +```````````````````````````````````````````````````````` + +In MoinMoin_ the term "template" is used differently than in +MediaWiki_. In MoinMoin_ a template is a *page* template [#]_ while in +MediaWiki_ it is more like a function call in a programming language. + +.. [#] The concept of page templates is probably not known in + MediaWiki_. + +In general there are two ways to get the functionality of MediaWiki_ +templates in MoinMoin_. MediaWiki_ templates which are used as +shortcuts for links are mapped to InterWiki_ links. For instance a +link to the posting containing the requirements_ for this wiki in the +archive of the project mailing list ``[pox]`` is named +``poxArchive:04957`` which expands to the rather long link +http://www.oekonux.de/projekt/liste/archive/msg04957.html. You +probably agree that the former is easier to type :-) . Such a link can +be used as any other link. In particular it can be used together with +a display text. If your favorite link target is not yet supported by +this wiki please contact projekt@oekonux.de about it. + +MediaWiki_ templates not building shortcuts for links generally can be +mapped to MoinMoin_ macros_. If the functionality you need is not yet +supported by this wiki please contact projekt@oekonux.de about it. + +.. ############################################################################ + +.. ############################################################################ + +.. _mediawiki: http://wikipedia.sourceforge.net/ + +.. _moinmoin: http://moinmoin.wikiwikiweb.de/ + +.. _requirements: Oekonux/Project/Wiki/Requirements_ + +.. _mediawiki syntax: http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup + +.. _different syntax: + +.. _moinmoin syntax: + +.. _documentation of the parser: http://www.merten-home.de/FreeSoftware/media4moin/manual.html + +.. _sub page: + +.. _sub pages: HelpOnEditing/SubPages_ + +.. _macros: + +.. _restructuredtext: http://docutils.sourceforge.net/rst.html + +.. LocalWords: rst Wikipedia MediaWiki MoinMoin homepages JohnDoe CamelCase + +.. LocalWords: RecentChanges InterWiki reStructuredText TalkTemplate SubPages + +.. LocalWords: poxArchive HelpOnEditing HelpOnMacros diff --git a/sandbox/xml2rst/tests/real/expected/Technik.rst b/sandbox/xml2rst/tests/real/expected/Technik.rst new file mode 100644 index 000000000..1ddcd54f0 --- /dev/null +++ b/sandbox/xml2rst/tests/real/expected/Technik.rst @@ -0,0 +1,543 @@ +.. note:: Sorry, wegen kaputter Formatierung, aber ich habe keine + Ahnung, wie das geht und es gibt leider keine Hilfe. Ich verwende + einfach mal reStructuredText_. + +.. _restructuredtext: http://docutils.sourceforge.net/rst.html + +Diese Seite beschäftigt sich mit der Technik, die die +`Oekonux-Community`_ nutzt. Ausgelöst wurde dies durch einen `Thread +zum Thema <http://www.oekonux.de/projekt/liste/archive/msg03333.html>`_ auf der +`Projekt-Liste`_, die sich um die Organisation des Projekts kümmert. + +.. _oekonux-community: http://www.oekonux.de/ + +.. _projekt-liste: http://www.oekonux.de/projekt/liste/ + +Überblick +========= + +Die Oekonux-Community nutzt derzeit die folgenden technischen +Einrichtungen: + +* `Mailing-Listen`_ + +* `Web-Sites`_ + +* OpenTheory_ + +* `News-Groups`_ + +* Wiki_ + +Weitere Einrichtungen wie IRC werden nach meiner Kenntnis derzeit +nicht genutzt. + +Mailing-Listen +============== + +Existierende Listen +------------------- + +Folgende Listen existieren: + +* ``liste AT oekonux DOT de`` + +* ``list-en AT oekonux DOT org`` + +* ``projekt AT oekonux DOT de`` + +* ``chat AT oekonux DOT de`` + +* ``mitglieder AT oekonux DOT de`` + +* ``helfer AT oekonux-konferenz DOT de`` + +* ``referenten AT oekonux-konferenz DOT de`` + +Für alle Mailing-Listen existieren Archive_, die auf der Web-Site +stehen, zu deren Domain sie gehören. + +Hosting +------- + +Außer ``liste AT oekonux DOT de`` werden alle Mailing-Listen bei +StefanMn gehostet. Für diese sind POP-Boxen eingerichtet, die +regelmäßig gepollt werden. Diese Mailing-Listen werden von einem +Majordomo_ betreut. + +.. _majordomo: http://www.greatcircle.com/majordomo/ + +.. important:: Da Majordomo_ keine völlig Freie Software ist, gab es + den Vorschlag eine Alternative zu benutzen. Vorschläge waren Sympa + oder SmartList. Mit einer ganz neuen Lösung würde vermutlich + MailMan_ zum Einsatz kommen. + +``liste AT oekonux DOT de`` wird aus historischen Gründen von buug_ +gehostet. Dort kommt seit einiger Zeit MailMan_ als +Verwaltungs-Software zum Einsatz. + +.. _buug: http://post.openoffice.de/ + +.. _mailman: http://www.list.org/ + +.. important:: In einer integrierten Lösung mit einem dedizierten + Server könnten und sollten auch die Mailing-Listen auf diesem + Server gehostet werden. + +Features +-------- + +Spam-Schutz +~~~~~~~~~~~ + +Mail an sämtliche Mailing-Listen wird über einen SpamAssassin_ +geleitet. Dies ist absolut unverzichtbar, da die Adressen der +Mailing-Listen mittlerweile sehr weit verbreitet sind. Die +SpamAssassin-Installation benötigt gelegentliche Wartung um gegen die +neuesten Ideen der SpammerInnen gewappnet zu sein. + +.. _spamassassin: http://www.spamassassin.org/ + +Web-Sites +========= + +Hosting +------- + +Provider +~~~~~~~~ + +Im Moment bezahlt der `e.V.`_ bei `1&1`_ ein `Premium-Paket <http://hosting.1und1.de/xml/static?__page=premium>`_. + +.. _e.v.: http://www.oekonux.de/projekt/verein/ + +.. _1&1: http://hosting.1und1.de/ + +Die Möglichkeiten dieses Pakets treffen nicht ganz die Bedürfnisse. +Einerseits beinhaltet es ungenutzte Features (z.B. Datenbank, +in2site_), andererseits fehlen erwünschte Features (Möglichkeit für +lokale Suchmaschine, die auf dem Server den Index erstellt). + +.. important:: Es gibt ein `Angebot <http://www.oekonux.de/projekt/liste/archive/msg03128.html>`_ von + Hostsharing_ e.G., die das Hosting übernehmen könnten. + +.. _hostsharing: http://www.hostsharing.net/ + +Die Audio-Dateien, die vor allem bei den Konferenzen aufgezeichnet +worden sind, liegen wegen ihrer Größe auf anderen Servern. + +Mit Ressourcen aus dem `OpenTheory-Projekt`_ wird im Vorfeld der +Konferenz das Programm der Konferenz online erstellt und präsentiert. + +.. _opentheory-projekt: http://www.opentheory.org/ + +.. important:: Es gibt Überlegungen, alle von der Oekonux-Community + genutzten Ressourcen zu zentralisieren. Dazu würde vermutlich ein + dedizierter Server benötigt. + +.. important:: Als weiterer Hoster käme das `Individual Network + Berlin`_ in Frage. + + `vLinux.de`_ oder server4you_ könnten weitere, vor allem preisgünstige + Alternative sein. + +.. _individual network berlin: http://www.in-berlin.de/ + +.. _vlinux.de: http://vlinux.de/ + +.. _server4you: http://www.server4you.de/de/v/ + +.. important:: Holger hat sich grundsätzlich bereit erklärt, einen + dedizierten Server zu betreuen. + +Domains +~~~~~~~ + +Die fünf Domains, die auf den Verein laufen, sind: + +* ``oekonux.de`` + + Unter ``www`` liegt hier die deutsche Hauptseite des Projekts. + +* ``oekonux.org`` + + Unter ``www`` liegt hier die internationale Hauptseite des Projekts. + +* ``oekonux-konferenz.de`` + + Die deutsche Domain für alles rund um die Oekonux-Konferenzen. + + - ``www`` + + Einstiegsseite für die jeweils aktuelle Konferenz. + + - ``erste``, ``zweite``, ``dritte`` + + Einstiegsseiten für die jeweilige spezifische Konferenz. + +* ``oekonux-konferenz.org``, ``oekonux-conference.org`` + + Die internationalen Domains für alles rund um die + Oekonux-Konferenzen. + + - ``www`` + + Einstiegsseite für die jeweils aktuelle Konferenz. + + - ``second``, ``third`` + + Einstiegsseiten für die jeweilige spezifische Konferenz. + + .. important:: ``oekonux-konferenz.org`` kann wahrscheinlich + mittelfristig entfallen. + +Weitere Domains waren vor der Übernahme durch den `e.V.`_ vorhanden, +diese sind aber zurück gegeben worden. + +Features +-------- + +Web-Space +~~~~~~~~~ + +Derzeit sind in allen vier Web-Präsenzen insgesamt knapp 200MB von ca. +17000 Files belegt. Die extern gehosteten Audio-Files umfassen ca. +1GB. + +Traffic +~~~~~~~ + +Derzeit generieren die Web-Sites ca. 2GB Traffic pro Monat. + +Formulare +~~~~~~~~~ + +Die von `1&1`_ angebotenen so genannten Web-Elements werden im Vorfeld +einer Konferenz für Anmeldungsformulare verwendet. + +Weitere Formulare werden nicht genutzt. + +Mail-Adressen +~~~~~~~~~~~~~ + +Derzeit verteilen sich rund 80 Mail-Adressen auf die verschiedenen +Domains_. Nur ein Teil von ihnen ist als POP-Box realisiert - +insbesondere die Adressen, die für die `Mailing-Listen`_ verwendet +werden. Weitere Mail-Adressen sind als Alias eingerichtet. + +Neben den funktionsbezogenen Mail-Adressen gibt es derzeit lediglich +eine persönliche Mail-Adresse in den Domains_. Grundsätzlich können +weitere private Mail-Adressen vergeben werden. Vor langer Zeit wurde +beschlossen, dass der Nachname der Person in der Mail-Adresse +enthalten sein muss. + +Generierung und Upload +~~~~~~~~~~~~~~~~~~~~~~ + +Derzeit werden alle Inhalte von StefanMn u.a. aus SDF-Quellen auf +seinem privaten Rechner generiert und per FTP auf die Web-Sites +geladen. Das Ganze ist in eine ``make``-basierte Automatisierung +eingebettet. + +.. important:: Die Quellen für die statischen Anteile der jetzigen + Lösung sind vor Ewigkeiten mal in ein CVS-Repository gestellt + worden. Allerdings hat sich niemensch jemals dafür interessiert - + geschweige denn Hilfe angeboten. + + Es wäre aber grundsätzlich gut, wenn eine neue Lösung für die + Web-Sites mittels CVS (oder Subversion) zugänglich wäre. Damit + könnten viele Leute an der Site arbeiten. + + StefanMn hätte gerne, dass die Quellen der Web-Seiten mittels einem + ASCII-nahen Format - möglichst reStructuredText_ - erstellt werden + könnten. Er würde (auch) dafür einen Konverter vom jetzigen Format + zur Verfügung stellen. + +Statische Seiten +~~~~~~~~~~~~~~~~ + +Praktisch sämtliche Seiten in den Oekonux-Domains sind statische +HTML-Seiten ohne jegliches JavaScript oder andere aktive Elemente. Sie +sind damit + +* für *alle* Browser zugänglich + +* wird für alle Zeiten lesbar sein + +* kein Sicherheitsproblem für den Server + +* stabile URLs ohne Variablen + + Viele Suchmaschinen ignorieren Links mit ``?``. + +* bedürfen keinerlei Wartung + +* freundlich für externe Suchmaschinen + + Zwar werden für die Navigation Frames eingesetzt, es gibt jedoch + immer einen ``<noframes>``-Bereich, der die entsprechenden Links + enthält. + +* mit Tools wie z.B. ``wget`` komplett und problemlos zu saugen + +* funktioniert mit jedem Web-Hosting-Angebot + +Privacy +~~~~~~~ + +`1&1`_ stellt praktisch in allen Tarifen die Log-Files des Web-Servers +zur Verfügung. Darin sind die Zugriffe auf die einzelnen Domains +unterschieden. Diese Logs werden ausgewertet und ohne die zugreifenden +IP-Adressen und weitere, tendenziell Privacy-gefährdende Details auf +den Web-Seiten zur Verfügung gestellt. + +.. important:: Wie StefanMn in einer `Mail an [pox] <http://www.oekonux.de/projekt/liste/archive/msg02683.html>`_ + vorgeschlagen hat, sollte die Privacy-Policy auf den Web-Sites + veröffentlicht sein. + + Insbesondere sollte klar gemacht werden, dass in2site_ **nicht** + verwendet wird. + +.. _in2site: http://www.in2site.de/ + +Navigation +~~~~~~~~~~ + +Die Navigation wird mit Hilfe von Frames realisiert. Ein schmaler +Frame auf der linken Seite ist einem File-Browser nachempfunden. Er +zeigt ständig die aktuelle Position innerhalb der Site an. Der rechte +Frame enthält den angewählten Inhalt. Wird in der Navigation ein +Verzeichnis angewählt, so erscheint im Inhalts-Frame stets +``default.html``. + +Außerdem hat jede Third-Level-Domain eine eigene Sitemap. +Links auf allen Seiten werden von QBullets_ gefolgt, die grob den Typ +des Links angeben. + +.. _qbullets: http://www.matterform.com/qbullets/ + +Lokale Suchmaschine +~~~~~~~~~~~~~~~~~~~ + +Mittels FreeFind_ wurde auf ``www.oekonux.de`` eine lokale, +kostenlose, durch Werbung finanzierte Suchmaschine eingerichtet. + +.. _freefind: http://www.freefind.com/ + +.. important:: Nachdem das Größenlimit für kostenlosen Service im + 2003-05 bereits zum zweiten Mal überschritten wurde, indexiert + diese Suchmaschine seit einiger Zeit nicht mehr die gesamte Site. + + Eine lokale Suchmaschine wie `Perlfect Search`_ scheitert daran, + dass im derzeitigen Tarif einem Prozess zu wenig Rechenzeit zur + Verfügung steht um die Site zu indexieren. + + Es besteht Handlungsbedarf. + +.. _perlfect search: http://perlfect.com/freescripts/search/ + +RSS-Feed +~~~~~~~~ + +.. important:: Es wäre nett, einen RSS-Feed auf einem eigenen Server + zu haben. + +Datenbanken +~~~~~~~~~~~ + +.. important:: Derzeit werden Datenbanken nicht genutzt, aber es wäre + sinnvoll, diese Option bei einer neuen Lösung zu haben. + (vorzugsweise mySGL). + +Apache +~~~~~~ + +.. important:: Eine neue Hosting-Lösung sollte uns in möglichst großem + Umfang Zugang zum Web-Server geben. + +Inhalte +------- + +Allgemeines +~~~~~~~~~~~ + +.. important:: Generell werden die Sites nicht sehr intensiv gepflegt. + Dies ist nicht gut. + +.. important:: Insbesondere wäre es super, wenn die internationale + Site mehr von den Inhalten der deutschen Site hätte. Besonders + wünschenswert wäre es, wenn die `Oekonux-Links`_ auf Englisch + verfügbar wären. + +Archive +~~~~~~~ + +Sämtliche `Mailing-Listen`_ des Projekts werden auf den Web-Sites +archiviert. Die Mails werden bei Eingang bei StefanMn mittels MHonArc_ +in HTML konvertiert und automatisch hochgeladen. + +.. _mhonarc: http://www.mhonarc.org/ + +Die HTML-Seiten für die Mails werden noch gefiltert. Momentan werden + +* Kommentare von MHonArc_ entfernt + +* Telefon-Nummern + +* Einzelne Personen, die sich zu spät entschieden haben, dass sie + nicht per Google bei Oekonux gefunden werden wollen + +* Alle URLs, die auf Mail-Adressen verweisen + +* Mail-Adressen werden unkenntlich gemacht + +.. important:: Weiter werden ASCII-Äquivalente der Archive in Paketen + zu 40 Stück auf die Web-Site gestellt. Dieses Feature ist obsolet. + +.. important:: Es besteht der Wunsch, die Archive auch im mbox-Format + auf die `Web-Sites`_ zu bringen. Hier muss noch überlegt werden, + was gegen Mail-Adressen-Harvesting getan werden kann. + +Das Löschen aus den Archiven ist ebenfalls weit gehend automatisiert. +Es erfordert aber einen expliziten Aufruf, der die Nummer der +entsprechenden Mail nennt. + +.. important:: Momentan wird die gelöschte Mail nur aus den Indexen + entfernt, sie wird aber *nicht* vom Server gelöscht. Dadurch ist + sie zwar nicht mehr über Indexe oder benachbarte Mails verlinkt, + bleibt aber grundsätzlich zugreifbar. Das muss geändert werden. + +Texte +~~~~~ + +Verschiedene Texte des Projekts sind auf den Web-Sites verfügbar. + +Darunter befindet sich eine Einführung, deren Quellen auch für +MagicPoint vorliegen + +Link-Seite +~~~~~~~~~~ + +Eine wichtige inhaltliche Ressource der Oekonux-Community sind die +`Oekonux-Links`_, in die interessante Links mit einem kurzen Kommentar +aufgenommen werden. Die Seite ist strukturiert. + +.. _oekonux-links: http://www.oekonux.de/projekt/links.html + +.. important:: Es wäre sehr gut, wenn jeder der `Oekonux-Links`_ das + Datum bekäme, zu dem er erstellt wurde. Mittlerweile hätte dies + einen gewissen dokumentarischen Wert ("Aha, damals war das also von + Bedeutung"). + + Dies wäre mittels ``cvs annotate`` grundsätzlich auch für schon + vorhandene Links machbar. + +.. important:: Es wäre gut, wenn die Sprache der Site angegeben wäre, + die durch den Link referenziert wird. Dies ist mittels des + HTML-Attributs ``hreflang`` machbar. + +Statistiken +~~~~~~~~~~~ + +Statistiken sowohl über die Nutzung der `Mailing-Listen`_ als auch +über die Nutzung der `Web-Sites`_ werden auf den `Web-Sites`_ zur +Verfügung gestellt. Alle Statistiken werden mit Freien Tools +(webalizer_, mail2clf_, mail2chart_) mindestens einmal wöchentlich von +StefanMn automatisch erstellt und hochgeladen. Die +Web-Site-Statistiken werden einmal monatlich um Referrer-Links +bereinigt, die von Porno-Sites stammen. + +.. _webalizer: http://www.webalizer.org/ + +.. _mail2clf: http://www.merten-home.de/FreeSoftware/mail2clf/ + +.. _mail2chart: http://www.merten-home.de/FreeSoftware/mail2chart/ + +OpenTheory +========== + +Viele Texte aus und rund um das Oekonux-Projekt sind auch im +`OpenTheory-Projekt`_ verfügbar. Einige sind im +`Oekonux-OpenTheory-Projekt`_ zusammen gefasst. + +.. _oekonux-opentheory-projekt: http://www.opentheory.org/oekonux/ + +Die Texte sind sowohl inhaltlicher als auch organisatorischer Natur. +Insbesondere für die Vorbereitung der Konferenzen wurden +OpenTheory-Projekte angelegt. + +Wiki +==== + +Derzeit nutzt die Oekonux-Community zwei Wiki-Installationen: + +* ``co-forum.de`` + + Wird technisch von Thomas Kalka betreut und auch gehosteten. Es + handelt sich um ein allgemeines Wiki. + +* ``de.wiki.oekonux.org.uk`` + +* ``en.wiki.oekonux.org.uk`` + + Diese beiden Wikis sind neueren Datums und explizit als Oekonux-Wiki + gedacht. Sie werden technisch von Chris Croome betreut und auch + gehostet. + + .. important:: Bislang besteht keine inhaltliche Betreuung. + +News-Groups +=========== + +Seit Ende 2003 werden die Haupt-`Mailing-Listen`_ für die Diskussion +auch mittels Gmane_ als Usenet-Newsgroups angeboten: + +.. _gmane: http://gmane.org/ + +* ``news://news.gmane.org/gmane.politics.oekonux.german`` + + Spiegelt ``liste AT oekonux DOT de``. + +* ``news://news.gmane.org/gmane.politics.oekonux.english`` + + Spiegelt ``list-en AT oekonux DOT org``. + +Die News-Groups sind so eingestellt, das Antworten über die News nicht +möglich sind. + +.. important:: Zum heutigen Zeitpunkt (2004-01-23) enthalten die + News-Group-Archive nur die Mails, die geschrieben wurde, nachdem + das News-Group-Feature hinzu genommen wurde. Nachdem das Problem + der lesbaren Mail-Adressen gelöst wurde, ist es angestrebt, dass + die gesamten Archive in das News-Group-Archiv `importiert <http://gmane.org/import.php>`_ werden. + +Features +-------- + +Suchmaschine +~~~~~~~~~~~~ + +Gmane_ verfügt über eine Suchmaschine, die die entsprechenden +News-Archive durchsuchen. + +.. important:: Zumindest übergangsweise wäre es gut, diese + Suchmaschine direkt über die `Web-Sites`_ zu verlinken oder + anderweitig zu integrieren. + +.. LocalWords: reStructuredText Premium page premium oekonux www org Hoster + +.. LocalWords: konferenz conference second third gehosteten MagicPoint Upload + +.. LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes + +.. LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you + +.. LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat + +.. LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs + +.. LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList + +.. LocalWords: MailMan buug SpamAssassin Individual Network vLinux server + +.. LocalWords: Repository QBullets annotate hreflang diff --git a/sandbox/xml2rst/tests/real/expected/WikiRequirements.rst b/sandbox/xml2rst/tests/real/expected/WikiRequirements.rst new file mode 100644 index 000000000..63667251d --- /dev/null +++ b/sandbox/xml2rst/tests/real/expected/WikiRequirements.rst @@ -0,0 +1,324 @@ +#FORMAT rst + +Requirements for an Oekonux Wiki +================================ + +.. contents:: Contents + + +.. ############################################################################ + +.. ############################################################################ + +Introduction +============ + +In `Project Oekonux`_ there has been a long discussion about setting +up a Wiki for the project. Also several attempts to establish a Wiki +have been made. Most of these discussions took place on `the projekt mailing list`_ +which is the organizing body of the project. + +One of the most important questions was which Wiki software to use. +Finally a decision has been made based upon the requirements being +raised. + +The following lists all the requirements which have been found and +lists the alternative solutions for them. One reason for this list is +to document the design decisions / choices taken and their basis in +the requirements. This way it is easier to + +* understand the decisions + +* change decisions while not forgetting about reasons for the original + decision + +.. ############################################################################ + +.. ############################################################################ + +Requirements +============ + +Non-functional requirements +--------------------------- + +1. The software must have an active developer community and must be + Free + + :Rationale: Only an active developer community of a Free Software + project guarantees for a constant development. + + Discussion came down to two candidates which met this requirement: + MediaWiki_ and MoinMoin_. The following requirements list + alternative solutions only for these two Wiki implementations. + +2. The software must be easy to use for people used to Wikipedia + + :Rationale: Because of the overwhelming success of Wikipedia many + people are used to the way how Wikipedia is operated. + + :MediaWiki: Given by definition. + + :MoinMoin: The typical use cases need to be identified and a + special help page must be created for these users. + +.. ############################################################################ + +Functional requirements +----------------------- + +1. Email notification must be possible sending diffs and other changes + + :Rationale: Email notification is a basic requirement for any + offline processing. + + :MediaWiki: Rumor has it that there is a plug-in for email + notification but nobody saw it yet (2005-03-26). + + :MoinMoin: Supports email notification as diffs for arbitrary pages + and page groups (regular expression). Only notifies on moves and + deletion of pages. + +2. It must be possible to limit changeability of a page (for instance + for user's pages) + + :Rationale: Some pages are private pages or should not be changes + for other reasons. + + :MediaWiki: Don't know whether this can be enforced technically. + + :MoinMoin: Implements access control lists (ACL) allowing for + arbitrary rights. + +3. Categories must be possible + + :Rationale: With categories can form arbitrary non-hierarchical + structures + + :MediaWiki: Available. + + :MoinMoin: Available. + +4. Navigation panels must be available + + :Rationale: Useful to create overviews. + + :MediaWiki: Available. + + :MoinMoin: Available as ``Navigation`` macro for hierarchical + structures and as ``PageList`` macro for structures based logical + expressions on regular expressions over page names. + +5. A version history must be available + + :Rationale: Needed to get an overview of the change history of a + page. + + :MediaWiki: Available. + + :MoinMoin: Available. + +6. List of changes for a given user must be available + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Not available. + +7. A watch list must be possible reporting about the latest changes + for a given set of pages + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Can be simulated by email notification. + +8. Automatic links by using CamelCase (aka WikiWords) must not be the + default + + :Rationale: CamelCase makes sense only in certain language. In + particular German is a language where automatic CamelCase links + are not too useful. + + :MediaWiki: CamelCase words never create automatic links. + + :MoinMoin: The NoCamelCase_ plug-in makes this the default. + +9. Support for other than the standard Wiki syntaxes like + reStructuredText_ must be available + + :Rationale: All Wiki languages suck so support for more sane + syntaxes is a very useful thing. In particular support for + reStructuredText_ being a powerful language and a good candidate + for a standard ASCII based markup language. + + :MediaWiki: There is no support for any other syntax than the + MediaWiki syntax. + + :MoinMoin: Offers several syntaxes by the concept of parsers. Among + the available syntaxes are reStructuredText_ and LaTeX_. + +10. Arbitrary attachments must be possible + + :Rationale: Nice to have to attach arbitrary data to a page. In + particular it makes possible to include material not marked up in + the Wiki syntax. + + :MediaWiki: Unknown but probably available. + + :MoinMoin: Available. + +11. Shortcuts for links must be available + + :Rationale: In particular it is useful to be able to reference + entries in the Oekonux mailing list archive as easy as possible. + + :MediaWiki: Implements this by templates. + + :MoinMoin: Implements by InterWiki links. + +12. Page templates must be available + + :Rationale: Page templates are a good way to support policy + decisions by offering standard templates for all page types. + + :MediaWiki: Not available. + + :MoinMoin: Available. + +13. It must be possible to revert page changes + + :Rationale: Useful to undo unwanted changes. + + :MediaWiki: Available. + + :MoinMoin: Available. + +14. It must be possible to know who did a change in a page + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Available. + +15. Offline usage must be possible as far as possible + + :Rationale: Not everyone is always online so offline facilities are + generally useful. Offline usage includes + + * a push feature for change notification + + * browsing + + * editing + + :MediaWiki: Not available. At most email notification is available. + + :MoinMoin: Email notification allows for monitoring changes and in + principle the diffs can be used to update a local copy. A local + installation of MoinMoin_ only needs Python and MoinMoin_ so it + is easy to accomplish. Because MoinMoin_ uses a file based + storage scheme it is at least easy to update a local copy in + short online phases for offline use so at least offline browsing + is available. + +16. Pages must be locked during they are edited + + :Rationale: Page locking prevents parallel editing of a page which + is useful in a highly frequented Wiki. + + :MediaWiki: Not available. + + :MoinMoin: Editing a page locks it for 10 minutes and the lock can + be renewed. + +17. It must be possible to edit sections of a page + + :Rationale: Makes parallel editing of a page less dangerous which + is useful in a highly frequented Wiki. + + :MediaWiki: Available. + + :MoinMoin: Not available. + +.. ############################################################################ + +Requirements for policy choices +------------------------------- + +1. Pages standing in a certain close relation to a certain other page + must be possible in a sane way + + :Rationale: There are several ways in which a page can have closely + related pages (e.g. discussion pages). It makes sense to have a + uniform way to express this relation. + + :MediaWiki: Implements discussion pages as one a special type of + closely related pages by suffixing ``Discussion`` to the + namespace of a page. For other closely related pages there is no + fixed implementation. + + :MoinMoin: By making sub-pages possible all types of closely + related pages can be implemented by some fixed names being part + of a policy and supported by page templates. + +2. Structuring of content must be possible by a page hierarchy + + :Rationale: The maintenance policy may decide to have a page + hierarchy as a structuring principle. + + :MediaWiki: Implements a top level structure by namespaces and + allows for structuring otherwise. + + :MoinMoin: With sub-pages arbitrary hierarchies can be build on any + level. + +3. Sub-Wikis must be possible + + :Rationale: The maintenance policy may decide this makes sense. + + :MediaWiki: Not available. + + :MoinMoin: Could be done in a page hierarchy on any level. + +4. Underscores and white-space in page names must be possible but + insignificant + + :Rationale: If the maintenance policy decides that underscores and + white-space may be used in arbitrary ways the software must be + able to reflect this. + + :MediaWiki: Unknown. + + :MoinMoin: Underscores and white-space is significant. + +.. ############################################################################ + +.. ############################################################################ + +.. |projekt| replace:: `the projekt mailing list`_ + +.. |NoCamelCase| replace:: NoCamelCase_ + +.. _project oekonux: http://www.oekonux.de/ + +.. _the projekt mailing list: http://www.oekonux.de/projekt/liste/ + +.. _mediawiki: http://wikipedia.sourceforge.net/ + +.. _moinmoin: http://moinmoin.wikiwikiweb.de/ + +.. _restructuredtext: http://docutils.sourceforge.net/rst.html + +.. _latex: http://www.latex-project.org/ + +.. _nocamelcase: http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase + +.. LocalWords: diffs CamelCase InterWiki MoinMoin rst projekt MediaWiki aka + +.. LocalWords: Wikipedia PageList WikiWords reStructuredText + +.. LocalWords: Wikis NoCamelCase diff --git a/sandbox/xml2rst/tests/real/filterunit.cfg b/sandbox/xml2rst/tests/real/filterunit.cfg new file mode 100644 index 000000000..af9a91eb3 --- /dev/null +++ b/sandbox/xml2rst/tests/real/filterunit.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +expectedExtension = .rst + +command = ../../xml2rst.py +options = $< diff --git a/sandbox/xml2rst/tests/real/input/Machinery.xml b/sandbox/xml2rst/tests/real/input/Machinery.xml new file mode 100644 index 000000000..27f3bfeef --- /dev/null +++ b/sandbox/xml2rst/tests/real/input/Machinery.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/Machinery.rst"><paragraph>#format rst +#language en</paragraph><paragraph><reference anonymous="1" name="Discussion" refuri="/Talk">Discussion</reference></paragraph><target anonymous="1" ids="id1" refuri="/Talk"/><topic classes="contents" ids="contents" names="contents"><title>Contents</title><bullet_list><list_item><paragraph><reference ids="id5" refid="overview">Overview</reference></paragraph></list_item><list_item><paragraph><reference ids="id6" refid="dedicated-oekonux-server">Dedicated Oekonux server</reference></paragraph></list_item><list_item><paragraph><reference ids="id7" refid="mailing-lists">Mailing lists</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id8" refid="existing-lists">Existing lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id9" refid="hosting">Hosting</reference></paragraph></list_item><list_item><paragraph><reference ids="id10" refid="features">Features</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id11" refid="spam-protection">Spam protection</reference></paragraph></list_item></bullet_list></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id12" refid="web-sites">Web sites</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id13" refid="id2">Hosting</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id14" refid="provider">Provider</reference></paragraph></list_item><list_item><paragraph><reference ids="id15" refid="domains">Domains</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id16" refid="id3">Features</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id17" refid="web-space">Web space</reference></paragraph></list_item><list_item><paragraph><reference ids="id18" refid="traffic">Traffic</reference></paragraph></list_item><list_item><paragraph><reference ids="id19" refid="mail-addresses">Mail addresses</reference></paragraph></list_item><list_item><paragraph><reference ids="id20" refid="generation-and-upload">Generation and Upload</reference></paragraph></list_item><list_item><paragraph><reference ids="id21" refid="static-pages">Static pages</reference></paragraph></list_item><list_item><paragraph><reference ids="id22" refid="navigation">Navigation</reference></paragraph></list_item><list_item><paragraph><reference ids="id23" refid="locale-search-engine">Locale search engine</reference></paragraph></list_item><list_item><paragraph><reference ids="id24" refid="rss-feed">RSS-Feed</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id25" refid="content">Content</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id26" refid="general">General</reference></paragraph></list_item><list_item><paragraph><reference ids="id27" refid="archives">Archives</reference></paragraph></list_item><list_item><paragraph><reference ids="id28" refid="texts">Texts</reference></paragraph></list_item><list_item><paragraph><reference ids="id29" refid="link-page">Link page</reference></paragraph></list_item><list_item><paragraph><reference ids="id30" refid="statistics">Statistics</reference></paragraph></list_item></bullet_list></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id31" refid="opentheory">OpenTheory</reference></paragraph></list_item><list_item><paragraph><reference ids="id32" refid="wiki">Wiki</reference></paragraph></list_item><list_item><paragraph><reference ids="id33" refid="news-groups">News groups</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id34" refid="id4">Features</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id35" refid="search-engine">Search engine</reference></paragraph></list_item></bullet_list></list_item></bullet_list></list_item></bullet_list></topic><paragraph>This page describes the machinery used by the <reference name="Oekonux community" refuri="http://www.oekonux.de/">Oekonux community</reference>. +This page is motivated by a <reference name="thread about this topic" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html">thread about this topic</reference><target ids="thread-about-this-topic" names="thread\ about\ this\ topic" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"/> on the +<reference name="project list" refuri="http://www.oekonux.de/projekt/liste/">project list</reference>, which cares about the organization of the project.</paragraph><paragraph>The intention of this page is to reflect the current state of the +machinery. It is originally written in German which is available as +the first version of this page.</paragraph><section ids="overview" names="overview"><title refid="id5">Overview</title><paragraph>The <reference name="Oekonux community" refuri="http://www.oekonux.de/">Oekonux community</reference> currently uses the following technical +facilities:</paragraph><bullet_list bullet="*"><list_item><paragraph><reference name="mailing lists" refid="mailing-lists">mailing lists</reference></paragraph></list_item><list_item><paragraph><reference name="web sites" refid="web-sites">web sites</reference></paragraph></list_item><list_item><paragraph><reference name="OpenTheory" refid="opentheory">OpenTheory</reference></paragraph></list_item><list_item><paragraph><reference name="news groups" refid="news-groups">news groups</reference></paragraph></list_item><list_item><paragraph><reference name="Wiki" refid="wiki">Wiki</reference></paragraph></list_item></bullet_list><paragraph>As far as I know other facilities such as IRC are currently not used.</paragraph><target refid="oekonux-server"/></section><section ids="dedicated-oekonux-server oekonux-server" names="dedicated\ oekonux\ server oekonux\ server"><title refid="id6">Dedicated Oekonux server</title><paragraph>There is a dedicated server for the Oekonux project. Currently this is +a virtual server based on Debian and hosted by <reference name="VD server" refuri="http://www.vd-server.de/">VD server</reference>. This +dedicated server is paid by the <reference name="Projekt Oekonux e.V." refuri="http://www.oekonux.de/projekt/verein/">Projekt Oekonux e.V.</reference>, a registered +association in Germany.</paragraph><paragraph>Today the server runs most of the technical infrastructure of the +project. It has a fixed IP address and the DNS entries for the domains +point to this server. The generic address of the server is +<literal>server.oekonux.de</literal>.</paragraph><paragraph>The general maintainer of this server is <problematic ids="id37" refid="id36">HolgerWeiss_</problematic>, certain +facilities are maintained mainly by <problematic ids="id39" refid="id38">StefanMerten_</problematic>.</paragraph><paragraph>In case it is necessary because the project needs more computing +resources a real server could be hosted by <reference name="Individual Network Berlin" refuri="http://www.in-berlin.de/">Individual Network +Berlin</reference>.</paragraph></section><section ids="mailing-lists" names="mailing\ lists"><title refid="id7">Mailing lists</title><section ids="existing-lists" names="existing\ lists"><title refid="id8">Existing lists</title><paragraph>The following lists exist:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>liste AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>list-en AT oekonux DOT org</literal></paragraph></list_item><list_item><paragraph><literal>projekt AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>chat AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>mitglieder AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>helfer AT oekonux-konferenz DOT de</literal></paragraph></list_item><list_item><paragraph><literal>referenten AT oekonux-konferenz DOT de</literal></paragraph></list_item></bullet_list><paragraph>For all mailing lists there are <reference name="archives" refid="archives">archives</reference>, which are on the web sites +of the domain they belong to.</paragraph></section><section dupnames="hosting" ids="hosting"><title refid="id9">Hosting</title><paragraph>All mailing lists are hosted on the <reference name="Oekonux server" refid="oekonux-server">Oekonux server</reference>. The mailing +lists are all served by a <reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/">Majordomo</reference>.</paragraph></section><section dupnames="features" ids="features"><title refid="id10">Features</title><section ids="spam-protection" names="spam\ protection"><title refid="id11">Spam protection</title><paragraph>Mail to all mailing lists is routed over a <reference name="SpamAssassin" refuri="http://www.spamassassin.org/">SpamAssassin</reference>. This is +indispensable because the addresses of the mailing lists have a wide +distribution.</paragraph><paragraph>The SpamAssassin installation needs some maintenance once in a while +to be ready for the latest ideas of spammers. This maintenance is done +by <problematic ids="id41" refid="id40">StefanMerten_</problematic>.</paragraph><paragraph>Unfortunately the spam filtering does not catch all spam :-( . +Therefore the mailing lists have been closed so only subscribers can +post to the list unmoderated. The bounces of spam and legitimate mail +from non-subscribers are handled by <problematic ids="id43" refid="id42">StefanMerten_</problematic>. All other tasks +necessary for keeping the mailing lists running are also handled by +<problematic ids="id45" refid="id44">StefanMerten_</problematic>.</paragraph></section></section></section><section ids="web-sites" names="web\ sites"><title refid="id12">Web sites</title><section dupnames="hosting" ids="id2"><title refid="id13">Hosting</title><section ids="provider" names="provider"><title refid="id14">Provider</title><paragraph>There is no special provider for the web sites. All web sites are +hosted on the <reference name="Oekonux server" refid="oekonux-server">Oekonux server</reference>.</paragraph><paragraph>Because of their size the audio files which mainly have been recorded +during the conferences are kept on web space donated by various +people.</paragraph><paragraph>Before conferences resources of the <reference name="OpenTheory project" refuri="http://www.opentheory.org/">OpenTheory project</reference> are used +for online creation and presentation of the program of the conference.</paragraph></section><section ids="domains" names="domains"><title refid="id15">Domains</title><paragraph>There are four domains for which the <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/">e.V.</reference> is the owner:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>oekonux.de</literal></paragraph><paragraph>Under <literal>www</literal> the German main page of the project can be found.</paragraph></list_item><list_item><paragraph><literal>oekonux.org</literal></paragraph><paragraph>Under <literal>www</literal> the international main page of the project can be +found.</paragraph><paragraph>Also the Wikis are all hosted here:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>en.wiki</literal></paragraph><paragraph>The English language Wiki.</paragraph></list_item><list_item><paragraph><literal>de.wiki</literal></paragraph><paragraph>The German language Wiki.</paragraph></list_item></bullet_list></list_item><list_item><paragraph><literal>oekonux-konferenz.de</literal></paragraph><paragraph>The German domain for everything around the Oekonux conferences.</paragraph><bullet_list bullet="-"><list_item><paragraph><literal>www</literal></paragraph><paragraph>Entry point for the most recent conference.</paragraph></list_item><list_item><paragraph><literal>erste</literal>, <literal>zweite</literal>, <literal>dritte</literal></paragraph><paragraph>Entry points for the respective conference.</paragraph></list_item></bullet_list></list_item><list_item><paragraph><literal>oekonux-conference.org</literal></paragraph><paragraph>The international domains for everything around the Oekonux +conferences.</paragraph><bullet_list bullet="-"><list_item><paragraph><literal>www</literal></paragraph><paragraph>Entry point for the most recent conference.</paragraph></list_item><list_item><paragraph><literal>second</literal>, <literal>third</literal></paragraph><paragraph>Entry points for the respective conference.</paragraph></list_item></bullet_list></list_item></bullet_list><paragraph>More domains were present before the <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/">e.V.</reference> took them over but they +have been abandoned.</paragraph></section></section><section dupnames="features" ids="id3"><title refid="id16">Features</title><section ids="web-space" names="web\ space"><title refid="id17">Web space</title><paragraph>The audio files hosted externally sum up to about 4GB.</paragraph></section><section ids="traffic" names="traffic"><title refid="id18">Traffic</title><comment xml:space="preserve">$$$</comment><paragraph>There are statistics about the <reference name="network traffic" refuri="http://traffic.oekonux.de/">network traffic</reference><target ids="network-traffic" names="network\ traffic" refuri="http://traffic.oekonux.de/"/> and the <problematic ids="id47" refid="id46">`page hits +http://www.oekonux.de/projekt/statistik/website/`_</problematic>.</paragraph></section><section ids="mail-addresses" names="mail\ addresses"><title refid="id19">Mail addresses</title><paragraph>All domains support a couple of mail addresses. They are mainly used +for the <reference name="mailing lists" refid="mailing-lists">mailing lists</reference>.</paragraph><paragraph>Besides the functional mail addresses there is only one private mail +address. Generally it is possible to create more private mail +addresses. Such private mail address must contain the family name of +the person.</paragraph></section><section ids="generation-and-upload" names="generation\ and\ upload"><title refid="id20">Generation and Upload</title><paragraph>At the moment all content of the web sites is generated by +<problematic ids="id49" refid="id48">StefanMerten_</problematic> on his private computer and uploaded onto the server. +Among other facilities the SDF format is used and the whole thing is +embedded in a <literal>make</literal> based automation.</paragraph><important><paragraph>The sources for the static pages have been brought to a +CVS repository eons ago. However, this has not been used.</paragraph><paragraph>In general it would be good if a new solution for the web sites +would be available by CVS. With this many people could work on the +site.</paragraph><paragraph><problematic ids="id51" refid="id50">StefanMerten_</problematic> would appreciate that the sources of the web pages +are created in a format close to ASCII - at best <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference>. +He is ready to provide a converter from the current format.</paragraph></important></section><section ids="static-pages" names="static\ pages"><title refid="id21">Static pages</title><paragraph>Apart from the Wiki pages nearly all pages in the Oekonux domains are +static HTML pages without any JavaScript or other active elements. By +this they are</paragraph><bullet_list bullet="*"><list_item><paragraph>usable by <emphasis>all</emphasis> browsers</paragraph></list_item><list_item><paragraph>readable for all times</paragraph></list_item><list_item><paragraph>no security risk for the server</paragraph></list_item><list_item><paragraph>stable URLs without variable parts</paragraph><paragraph>Many search engines ignore links containing a <literal>?</literal>.</paragraph></list_item><list_item><paragraph>need no maintenance</paragraph></list_item><list_item><paragraph>friendly to external search engines</paragraph><paragraph>Though navigation is done by frames there is always a <literal><noframes></literal> +section which contains the links.</paragraph></list_item><list_item><paragraph>can be downloaded with tools like <literal>wget</literal> completely and without +problems</paragraph></list_item><list_item><paragraph>works with every web hosting offer</paragraph></list_item></bullet_list></section><section ids="navigation" names="navigation"><title refid="id22">Navigation</title><paragraph>Navigation is realized with frames. A narrow frame on the left is +modeled after a file browser. It permanently presents the current +position in the site. The right frame contains the selected content. +If a directory is selected in the navigation the content frame +<literal>default.html</literal> always appears.</paragraph><paragraph>Apart from this each third level domain has a separate site map.</paragraph><paragraph>Links in all pages are followed by <reference name="QBullets" refuri="http://www.matterform.com/qbullets/">QBullets</reference> which roughly give the +type of the link.</paragraph></section><section ids="locale-search-engine" names="locale\ search\ engine"><title refid="id23">Locale search engine</title><comment xml:space="preserve">$$$ Link ht://dig</comment><paragraph>Currently the local search engine is replaced by a ht://dig based +solution.</paragraph></section><section ids="rss-feed" names="rss-feed"><title refid="id24">RSS-Feed</title><important><paragraph>There is no RSS feed yet but it would be nice to have +one.</paragraph></important></section></section><section ids="content" names="content"><title refid="id25">Content</title><section ids="general" names="general"><title refid="id26">General</title><important><paragraph>In general the sites are not maintained really. This is +bad.</paragraph></important><important><paragraph>In particular it would be good if the international +site would have more of the content of the German site. +Particularly it would be good to have the <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux links</reference> in +English. Also the structure of the project should be presented on +the international site.</paragraph></important></section><section ids="archives" names="archives"><title refid="id27">Archives</title><paragraph>All <reference name="mailing lists" refid="mailing-lists">mailing lists</reference> of the project are archived on the web sites. +<problematic ids="id53" refid="id52">StefanMerten_</problematic> converts the incoming mails to HTML by <reference name="MHonArc" refuri="http://www.mhonarc.org/">MHonArc</reference> and +uploaded automatically.</paragraph><paragraph>HTML pages for the archives are filtered. At the moment</paragraph><bullet_list bullet="*"><list_item><paragraph>comments of <reference name="MHonArc" refuri="http://www.mhonarc.org/">MHonArc</reference> are removed</paragraph></list_item><list_item><paragraph>phone numbers are replaced by a fixed text</paragraph></list_item><list_item><paragraph>names of certain people who decided to late that they not want to be +found in Oekonux by Google are shortened</paragraph></list_item><list_item><paragraph>all URLs pointing to mail addresses are obfuscated a bit</paragraph></list_item><list_item><paragraph>mail addresses are obfuscated</paragraph></list_item></bullet_list><important><paragraph>There is a request to have the archives on the <reference name="web sites" refid="web-sites">web +sites</reference> in mbox format. For this it must be clarified what can be +done against mail address harvesting.</paragraph></important><paragraph>Removal of archived pages is also widely automated. However, it needs +an explicit call with the number of the mail to remove.</paragraph><important><paragraph>Right now the removed mail is removed only from the +indexes but <emphasis>not</emphasis> from the server. By this it is no longer +reachable by neighboring mails or an index but the are generally +accessible. This must be changed.</paragraph></important></section><section ids="texts" names="texts"><title refid="id28">Texts</title><paragraph>Several texts of the project are available on the <reference name="web sites" refid="web-sites">web sites</reference>.</paragraph><paragraph>Among them is an introduction for which MagicPoint sources are +available.</paragraph></section><section ids="link-page" names="link\ page"><title refid="id29">Link page</title><paragraph>One of the most important content resources of the <reference name="Oekonux community" refuri="http://www.oekonux.de/">Oekonux +community</reference> are the <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux links</reference>, where interesting links are +entered with a short comment. The page is structured.</paragraph><important><paragraph>It would be good if each of the <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux links</reference> would +get a creation date. Meanwhile this would have some historical +value.</paragraph><paragraph>In general for existing links this would be possible by <literal>cvs +annotate</literal>.</paragraph></important><important><paragraph>It would be useful if the language of the page behind +the link would be given. This can be done by the HTML attribute +<literal>hreflang</literal>.</paragraph></important></section><section ids="statistics" names="statistics"><title refid="id30">Statistics</title><paragraph>Statistics are available about the usage of the <reference name="mailing lists" refid="mailing-lists">mailing lists</reference> as +well as about the <reference name="web sites" refid="web-sites">web sites</reference> usage on the <reference name="web sites" refid="web-sites">web sites</reference>. All +statistics are created weekly by some Free Software (<reference name="webalizer" refuri="http://www.webalizer.org/">webalizer</reference>, +<reference name="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/">mail2clf</reference>, <reference name="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/">mail2chart</reference>) automatically by <problematic ids="id55" refid="id54">StefanMerten_</problematic> and uploaded.</paragraph></section></section></section><section ids="opentheory" names="opentheory"><title refid="id31">OpenTheory</title><paragraph>Many texts from the project and from its environment are available in +the <reference name="OpenTheory project" refuri="http://www.opentheory.org/">OpenTheory project</reference>. Some of them are gathered in the <reference name="Oekonux OpenTheory project" refuri="http://www.opentheory.org/oekonux/">Oekonux +OpenTheory project</reference>.</paragraph><paragraph>The texts are about Oekonux content as well as for organizational +purposes. In particular the conference preparation has been done +there.</paragraph></section><section ids="wiki" names="wiki"><title refid="id32">Wiki</title><paragraph>Currently there are two Oekonux Wikis at</paragraph><bullet_list bullet="*"><list_item><paragraph><reference refuri="http://en.wiki.oekonux.org/">http://en.wiki.oekonux.org/</reference></paragraph></list_item><list_item><paragraph><reference refuri="http://de.wiki.oekonux.org/">http://de.wiki.oekonux.org/</reference></paragraph></list_item></bullet_list><paragraph>They are based on the <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> Wiki engine.</paragraph><paragraph>The content is maintained by a group of maintainers (<reference name="English" refuri="http://en.wiki.oekonux.org/MaintainerGroup">English</reference><target ids="english" names="english" refuri="http://en.wiki.oekonux.org/MaintainerGroup"/>, <reference name="German" refuri="http://de.wiki.oekonux.org/MaintainerGruppe">German</reference><target ids="german" names="german" refuri="http://de.wiki.oekonux.org/MaintainerGruppe"/> . The technical part +of the Wikis is maintained by <problematic ids="id57" refid="id56">StefanMerten_</problematic>.</paragraph></section><section ids="news-groups" names="news\ groups"><title refid="id33">News groups</title><paragraph>Since end of 2003 the main discussion <reference name="mailing lists" refid="mailing-lists">mailing lists</reference> are available +through <reference name="Gmane" refuri="http://gmane.org/">Gmane</reference> as Usenet newsgroups:</paragraph><bullet_list bullet="*"><list_item><paragraph><reference refuri="news://news.gmane.org/gmane.politics.oekonux.german">news://news.gmane.org/gmane.politics.oekonux.german</reference></paragraph><paragraph>Mirrors <literal>liste AT oekonux DOT de</literal>.</paragraph></list_item><list_item><paragraph><reference refuri="news://news.gmane.org/gmane.politics.oekonux.english">news://news.gmane.org/gmane.politics.oekonux.english</reference></paragraph><paragraph>Mirrors <literal>list-en AT oekonux DOT org</literal>.</paragraph></list_item></bullet_list><paragraph>The newsgroups are configured in a way replies by news are not +possible.</paragraph><important><paragraph>For now the newsgroup archives contain only those mails +written after the newsgroup feature was in place. After the problem +of readable mail addresses has been solved the whole archive shall +be <reference name="brought" refuri="http://gmane.org/import.php">brought</reference><target ids="brought" names="brought" refuri="http://gmane.org/import.php"/> to the newsgroup archive</paragraph></important><section dupnames="features" ids="id4"><title refid="id34">Features</title><section ids="search-engine" names="search\ engine"><title refid="id35">Search engine</title><paragraph><reference name="Gmane" refuri="http://gmane.org/">Gmane</reference> has a search engine which searches the newsgroups.</paragraph><comment xml:space="preserve">############################################################################</comment><target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/><target ids="oekonux-community" names="oekonux\ community" refuri="http://www.oekonux.de/"/><target ids="project-list" names="project\ list" refuri="http://www.oekonux.de/projekt/liste/"/><target ids="majordomo" names="majordomo" refuri="http://www.greatcircle.com/majordomo/"/><target ids="spamassassin" names="spamassassin" refuri="http://www.spamassassin.org/"/><target refid="projekt-oekonux-e-v"/><target ids="e-v projekt-oekonux-e-v" names="e.v. projekt\ oekonux\ e.v." refuri="http://www.oekonux.de/projekt/verein/"/><target ids="opentheory-project" names="opentheory\ project" refuri="http://www.opentheory.org/"/><target ids="individual-network-berlin" names="individual\ network\ berlin" refuri="http://www.in-berlin.de/"/><target ids="qbullets" names="qbullets" refuri="http://www.matterform.com/qbullets/"/><target ids="mhonarc" names="mhonarc" refuri="http://www.mhonarc.org/"/><target ids="oekonux-links" names="oekonux\ links" refuri="http://www.oekonux.de/projekt/links.html"/><target ids="webalizer" names="webalizer" refuri="http://www.webalizer.org/"/><target ids="mail2clf" names="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"/><target ids="mail2chart" names="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"/><target ids="oekonux-opentheory-project" names="oekonux\ opentheory\ project" refuri="http://www.opentheory.org/oekonux/"/><target ids="gmane" names="gmane" refuri="http://gmane.org/"/><target ids="vd-server" names="vd\ server" refuri="http://www.vd-server.de/"/><target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">LocalWords: reStructuredText Premium page premium oekonux www org Hoster</comment><comment xml:space="preserve">LocalWords: konferenz conference second third gehosteten MagicPoint Upload</comment><comment xml:space="preserve">LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes</comment><comment xml:space="preserve">LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you</comment><comment xml:space="preserve">LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat</comment><comment xml:space="preserve">LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs</comment><comment xml:space="preserve">LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList rst</comment><comment xml:space="preserve">LocalWords: MailMan buug SpamAssassin Individual Network vLinux server IRC</comment><comment xml:space="preserve">LocalWords: Repository QBullets annotate hreflang OpenTheory Debian VD DNS</comment><comment xml:space="preserve">LocalWords: HolgerWeiss StefanMerten mitglieder erste zweite dritte RSS</comment><comment xml:space="preserve">LocalWords: MoinMoin</comment></section></section></section><section classes="system-messages"><title>Docutils System Messages</title><system_message backrefs="id37" ids="id36" level="3" line="52" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "holgerweiss".</paragraph></system_message><system_message backrefs="id39" ids="id38" level="3" line="52" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id41" ids="id40" level="3" line="100" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id43" ids="id42" level="3" line="104" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id45" ids="id44" level="3" line="104" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id47" ids="id46" level="3" line="195" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "page hits http://www.oekonux.de/projekt/statistik/website/".</paragraph></system_message><system_message backrefs="id49" ids="id48" level="3" line="213" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id51" ids="id50" level="3" line="225" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id53" ids="id52" level="3" line="304" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id55" ids="id54" level="3" line="362" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message><system_message backrefs="id57" ids="id56" level="3" line="389" source="original/Machinery.rst" type="ERROR"><paragraph>Unknown target name: "stefanmerten".</paragraph></system_message></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/real/input/MediaWikiFAQ.xml b/sandbox/xml2rst/tests/real/input/MediaWikiFAQ.xml new file mode 100644 index 000000000..5b258b21a --- /dev/null +++ b/sandbox/xml2rst/tests/real/input/MediaWikiFAQ.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/MediaWikiFAQ.rst"><paragraph>#format rst</paragraph><section ids="faq-for-people-used-to-wikipedia-and-other-mediawiki-wikis" names="faq\ for\ people\ used\ to\ wikipedia\ and\ other\ mediawiki\ wikis"><title refid="id14">FAQ for people used to Wikipedia and other MediaWiki wikis</title><topic classes="contents" ids="contents" names="contents"><title>Contents</title><bullet_list><list_item><paragraph><reference ids="id14" refid="faq-for-people-used-to-wikipedia-and-other-mediawiki-wikis">FAQ for people used to Wikipedia and other MediaWiki wikis</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id15" refid="introduction">Introduction</reference></paragraph></list_item><list_item><paragraph><reference ids="id16" refid="question-and-answers">Question and answers</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id17" refid="of-all-users">Of all users</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id18" refid="what-about-the-namespace-concept">What about the namespace concept?</reference></paragraph></list_item><list_item><paragraph><reference ids="id19" refid="what-about-the-users-namespace">What about the <literal>Users:</literal> namespace?</reference></paragraph></list_item><list_item><paragraph><reference ids="id20" refid="what-about-the-special-namespace">What about the <literal>Special:</literal> namespace?</reference></paragraph></list_item><list_item><paragraph><reference ids="id21" refid="what-about-the-talk-namespace">What about the <literal>Talk:</literal> namespace?</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id22" refid="of-editors">Of editors</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id23" refid="i-m-used-to-mediawiki-syntax-can-i-use-it-in-this-wiki">I'm used to MediaWiki syntax. Can I use it in this Wiki?</reference></paragraph></list_item><list_item><paragraph><reference ids="id24" refid="though-i-m-used-to-mediawiki-syntax-i-think-it-sucks-any-alternatives">Though I'm used to MediaWiki syntax I think it sucks. Any alternatives?</reference></paragraph></list_item><list_item><paragraph><reference ids="id25" refid="i-tried-to-create-a-new-page-and-ended-up-on-this-page-offering-templates-what-s-this">I tried to create a new page and ended up on this page offering templates. What's this?</reference></paragraph></list_item><list_item><paragraph><reference ids="id26" refid="page-templates-ok-what-about-the-mediawiki-templates">Page templates, ok. What about the MediaWiki templates?</reference></paragraph></list_item></bullet_list></list_item></bullet_list></list_item></bullet_list></list_item></bullet_list></topic><section ids="introduction" names="introduction"><title refid="id15">Introduction</title><paragraph>This page is a FAQ page for users used to Wikipedia and other +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> <footnote_reference auto="1" ids="id1" refid="id2">1</footnote_reference> wikis. In Project Oekonux we chose <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> because +at the time of the decision there was a slight technological +superiority opening more options for its use. If you are interested in +the reasons you may want to consult the <reference name="requirements" refuri="Oekonux/Project/Wiki/Requirements_">requirements</reference> which have been +found then.</paragraph><footnote auto="1" backrefs="id1" ids="id2" names="1"><label>1</label><paragraph><reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> is the name of the software used for Wikipedia and +other Wikis. The software running this Wiki is called +<reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>.</paragraph></footnote><paragraph>However, <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> and it's use is widely known and thus Project +Oekonux strives to make the use of this <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> wiki as easy to +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> users as possible. This FAQ is one attempt to do so. If you +are a <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> user and have questions not covered here feel free to +contact <reference refuri="mailto:projekt@oekonux.de">projekt@oekonux.de</reference>.</paragraph><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">############################################################################</comment></section><section ids="question-and-answers" names="question\ and\ answers"><title refid="id16">Question and answers</title><section ids="of-all-users" names="of\ all\ users"><title refid="id17">Of all users</title><section ids="what-about-the-namespace-concept" names="what\ about\ the\ namespace\ concept?"><title refid="id18">What about the namespace concept?</title><paragraph>Most of the namespaces in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> are nothing else than a +structuring facility establishing structure on a top level.</paragraph><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> there is no concept of namespaces in the sense of +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference>. However, there is the concept of <reference name="sub pages" refuri="HelpOnEditing/SubPages_">sub pages</reference> <footnote_reference auto="1" ids="id3" refid="id4">2</footnote_reference> which +have names containing one or more slashes (<literal>/</literal>).</paragraph><footnote auto="1" backrefs="id3" ids="id4" names="2"><label>2</label><paragraph>There are also sub pages in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> but they are rarely used +in any area but the <literal>Users:</literal> namespace.</paragraph></footnote><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> we map the concept of namespaces to the top level <reference name="sub pages" refuri="HelpOnEditing/SubPages_">sub +pages</reference> of the wiki. So if you have a page named <literal>Oekonux:Project</literal> +in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> it would be named <literal>Oekonux/Project</literal> in <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>.</paragraph><paragraph>Please note that <reference name="sub pages" refuri="HelpOnEditing/SubPages_">sub pages</reference> are more flexible than namespaces +because they allow for more than one level or semantic hierarchy.</paragraph></section><section ids="what-about-the-users-namespace" names="what\ about\ the\ users:\ namespace?"><title refid="id19">What about the <literal>Users:</literal> namespace?</title><paragraph>Unfortunately the <literal>Users:</literal> namespace as such can not be easily +modeled into <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>. The homepages of users need to stay on the +top level so the <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> page <literal>Users:JohnDoe</literal> is mapped to +<literal>JohnDoe</literal> in <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>.</paragraph></section><section ids="what-about-the-special-namespace" names="what\ about\ the\ special:\ namespace?"><title refid="id20">What about the <literal>Special:</literal> namespace?</title><paragraph>The <literal>Special:</literal> namespace in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> does not lead to normal pages +but to pages which are generated dynamically by the software.</paragraph><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> such pages (and a lot more) are modeled by <problematic ids="id12" refid="id11">macros_</problematic>. So +what in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> reads <literal>Special:RecentChanges</literal> in <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> is +written <literal>[[RecentChanges]]</literal>.</paragraph></section><section ids="what-about-the-talk-namespace" names="what\ about\ the\ talk:\ namespace?"><title refid="id21">What about the <literal>Talk:</literal> namespace?</title><paragraph>Actually the <literal>Talk:</literal> namespace in <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> reachable by the +<literal>Discussion</literal> tab is not a namespace in the sense of the other +namespaces. Instead it is an add-on for pages in all namespaces.</paragraph><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> this is modeled by <reference name="sub pages" refuri="HelpOnEditing/SubPages_">sub pages</reference>. However, instead of +tagging the term <literal>Talk</literal> in the very front of the name of a page in +<reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> this is added to the end. So for the <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> page name +<literal>Oekonux_Talk:Project</literal> in <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> the name +<literal>Oekonux/Project/Talk</literal> is used.</paragraph><paragraph>To foster similarity to <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> wikis most of the page templates +for this wiki contain a link to a <literal>/Talk</literal> <reference name="sub page" refuri="HelpOnEditing/SubPages_">sub page</reference>.</paragraph><comment xml:space="preserve">############################################################################</comment></section></section><section ids="of-editors" names="of\ editors"><title refid="id22">Of editors</title><section ids="i-m-used-to-mediawiki-syntax-can-i-use-it-in-this-wiki" names="i'm\ used\ to\ mediawiki\ syntax.\ can\ i\ use\ it\ in\ this\ wiki?"><title>I'm used to <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup">MediaWiki syntax</reference>. Can I use it in this Wiki?</title><paragraph>By default <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> has a slightly <problematic ids="id8" refid="id7">`different syntax`_</problematic> then +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference>. However, <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> can support many languages if only a +parser is available for it. There is a parser for <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> syntax +which can be used for this Wiki. All you have to do is to put</paragraph><literal_block xml:space="preserve">#format media</literal_block><paragraph>in the very first line of your document. From that point on <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup">MediaWiki +syntax</reference> is recognized.</paragraph><paragraph>Currently the parser does not support the full <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup">MediaWiki syntax</reference> but +a considerable subset of it. For most pages this subset is completely +sufficient. For an extensive list of supported and unsupported +features please check the <reference name="documentation of the parser" refuri="http://www.merten-home.de/FreeSoftware/media4moin/manual.html">documentation of the parser</reference>.</paragraph></section><section ids="though-i-m-used-to-mediawiki-syntax-i-think-it-sucks-any-alternatives" names="though\ i'm\ used\ to\ mediawiki\ syntax\ i\ think\ it\ sucks.\ any\ alternatives?"><title>Though I'm used to <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup">MediaWiki syntax</reference> I think it sucks. Any alternatives?</title><paragraph>Because in principle <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> supports different syntaxes the general +answer is: Yes, you can use other syntaxes if and when the parser +plug-in for it exists and is installed. The default parser for +<reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> parses the <problematic ids="id10" refid="id9">`MoinMoin syntax`_</problematic>.</paragraph><paragraph>In this Wiki by default we use a variant without automatic CamelCase +links and without <problematic ids="id28" refid="id27">InterWiki_</problematic> links without special markup. If you want +CamelCase and <problematic ids="id30" refid="id29">InterWiki_</problematic> links put</paragraph><literal_block xml:space="preserve">#format wiki</literal_block><paragraph>in the first line of your page. The MoinMoin wiki markup language has +more options than the MediaWiki markup language but still is quite +illogical.</paragraph><paragraph>Otherwise a very promising ASCII based markup is <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference>. It +is far more logical than any wiki markup language and it has a set of +nice features. If you want to use it put</paragraph><literal_block xml:space="preserve">#format rst</literal_block><paragraph>in the first line of your page.</paragraph></section><section ids="i-tried-to-create-a-new-page-and-ended-up-on-this-page-offering-templates-what-s-this" names="i\ tried\ to\ create\ a\ new\ page\ and\ ended\ up\ on\ this\ page\ offering\ templates.\ what's\ this?"><title refid="id25">I tried to create a new page and ended up on this page offering templates. What's this?</title><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> it is possible to have page templates. A page templates +are an easy way to help people to conform to some style guide lines +established for the given wiki. They are created by the maintainers of +the wiki.</paragraph><paragraph>The name of a page template is build from the type of page the page +template is for and the suffix <literal>Template</literal> (in English). So for +instance a page template meant for talk pages is named +<literal>TalkTemplate</literal>.</paragraph><paragraph>In a sense a page template bundles some general knowledge about the +wiki ready to be used by the users of the wiki. Of course you can +start a new page from scratch but usually it makes more sense to use +an existing page template.</paragraph></section><section ids="page-templates-ok-what-about-the-mediawiki-templates" names="page\ templates,\ ok.\ what\ about\ the\ mediawiki\ templates?"><title>Page templates, ok. What about the <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> templates?</title><paragraph>In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> the term "template" is used differently than in +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference>. In <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> a template is a <emphasis>page</emphasis> template <footnote_reference auto="1" ids="id5" refid="id6">3</footnote_reference> while in +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> it is more like a function call in a programming language.</paragraph><footnote auto="1" backrefs="id5" ids="id6" names="3"><label>3</label><paragraph>The concept of page templates is probably not known in +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference>.</paragraph></footnote><paragraph>In general there are two ways to get the functionality of <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> +templates in <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>. <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> templates which are used as +shortcuts for links are mapped to <problematic ids="id32" refid="id31">InterWiki_</problematic> links. For instance a +link to the posting containing the <reference name="requirements" refuri="Oekonux/Project/Wiki/Requirements_">requirements</reference> for this wiki in the +archive of the project mailing list <literal>[pox]</literal> is named +<literal>poxArchive:04957</literal> which expands to the rather long link +<reference refuri="http://www.oekonux.de/projekt/liste/archive/msg04957.html">http://www.oekonux.de/projekt/liste/archive/msg04957.html</reference>. You +probably agree that the former is easier to type :-) . Such a link can +be used as any other link. In particular it can be used together with +a display text. If your favorite link target is not yet supported by +this wiki please contact <reference refuri="mailto:projekt@oekonux.de">projekt@oekonux.de</reference> about it.</paragraph><paragraph><reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> templates not building shortcuts for links generally can be +mapped to <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> <problematic ids="id13" refid="id11">macros_</problematic>. If the functionality you need is not yet +supported by this wiki please contact <reference refuri="mailto:projekt@oekonux.de">projekt@oekonux.de</reference> about it.</paragraph><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">############################################################################</comment><target ids="mediawiki" names="mediawiki" refuri="http://wikipedia.sourceforge.net/"/><target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/><target ids="requirements" names="requirements" refuri="Oekonux/Project/Wiki/Requirements_"/><target ids="mediawiki-syntax" names="mediawiki\ syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"/><target ids="different-syntax" names="different\ syntax" refname="helponediting"/><target ids="moinmoin-syntax" names="moinmoin\ syntax" refname="helponediting"/><target ids="documentation-of-the-parser" names="documentation\ of\ the\ parser" refuri="http://www.merten-home.de/FreeSoftware/media4moin/manual.html"/><target refid="sub-page"/><target ids="sub-pages sub-page" names="sub\ pages sub\ page" refuri="HelpOnEditing/SubPages_"/><target ids="macros" names="macros" refname="helponmacros"/><target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/><comment xml:space="preserve">LocalWords: rst Wikipedia MediaWiki MoinMoin homepages JohnDoe CamelCase</comment><comment xml:space="preserve">LocalWords: RecentChanges InterWiki reStructuredText TalkTemplate SubPages</comment><comment xml:space="preserve">LocalWords: poxArchive HelpOnEditing HelpOnMacros</comment></section></section></section></section><section classes="system-messages"><title>Docutils System Messages</title><system_message backrefs="id8" ids="id7" level="3" line="197" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Indirect hyperlink target "different syntax" (id="different-syntax") refers to target "helponediting", which does not exist.</paragraph></system_message><system_message backrefs="id10" ids="id9" level="3" line="198" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Indirect hyperlink target "moinmoin syntax" (id="moinmoin-syntax") refers to target "helponediting", which does not exist.</paragraph></system_message><system_message backrefs="id12 id13" ids="id11" level="3" line="205" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Indirect hyperlink target "macros" (id="macros") refers to target "helponmacros", which does not exist.</paragraph></system_message><system_message backrefs="id28" ids="id27" level="3" line="123" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Unknown target name: "interwiki".</paragraph></system_message><system_message backrefs="id30" ids="id29" level="3" line="123" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Unknown target name: "interwiki".</paragraph></system_message><system_message backrefs="id32" ids="id31" level="3" line="169" source="original/MediaWikiFAQ.rst" type="ERROR"><paragraph>Unknown target name: "interwiki".</paragraph></system_message></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/real/input/Technik.xml b/sandbox/xml2rst/tests/real/input/Technik.xml new file mode 100644 index 000000000..bbc3bb78b --- /dev/null +++ b/sandbox/xml2rst/tests/real/input/Technik.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/Technik.rst"><note><paragraph>Sorry, wegen kaputter Formatierung, aber ich habe keine +Ahnung, wie das geht und es gibt leider keine Hilfe. Ich verwende +einfach mal <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference>.</paragraph></note><target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/><paragraph>Diese Seite beschäftigt sich mit der Technik, die die +<reference name="Oekonux-Community" refuri="http://www.oekonux.de/">Oekonux-Community</reference> nutzt. Ausgelöst wurde dies durch einen <reference name="Thread zum Thema" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html">Thread +zum Thema</reference><target ids="thread-zum-thema" names="thread\ zum\ thema" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"/> auf der +<reference name="Projekt-Liste" refuri="http://www.oekonux.de/projekt/liste/">Projekt-Liste</reference>, die sich um die Organisation des Projekts kümmert.</paragraph><target ids="oekonux-community" names="oekonux-community" refuri="http://www.oekonux.de/"/><target ids="projekt-liste" names="projekt-liste" refuri="http://www.oekonux.de/projekt/liste/"/><section ids="uberblick" names="überblick"><title>Überblick</title><paragraph>Die Oekonux-Community nutzt derzeit die folgenden technischen +Einrichtungen:</paragraph><bullet_list bullet="*"><list_item><paragraph><reference name="Mailing-Listen" refid="mailing-listen">Mailing-Listen</reference></paragraph></list_item><list_item><paragraph><reference name="Web-Sites" refid="web-sites">Web-Sites</reference></paragraph></list_item><list_item><paragraph><reference name="OpenTheory" refid="opentheory">OpenTheory</reference></paragraph></list_item><list_item><paragraph><reference name="News-Groups" refid="news-groups">News-Groups</reference></paragraph></list_item><list_item><paragraph><reference name="Wiki" refid="wiki">Wiki</reference></paragraph></list_item></bullet_list><paragraph>Weitere Einrichtungen wie IRC werden nach meiner Kenntnis derzeit +nicht genutzt.</paragraph></section><section ids="mailing-listen" names="mailing-listen"><title>Mailing-Listen</title><section ids="existierende-listen" names="existierende\ listen"><title>Existierende Listen</title><paragraph>Folgende Listen existieren:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>liste AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>list-en AT oekonux DOT org</literal></paragraph></list_item><list_item><paragraph><literal>projekt AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>chat AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>mitglieder AT oekonux DOT de</literal></paragraph></list_item><list_item><paragraph><literal>helfer AT oekonux-konferenz DOT de</literal></paragraph></list_item><list_item><paragraph><literal>referenten AT oekonux-konferenz DOT de</literal></paragraph></list_item></bullet_list><paragraph>Für alle Mailing-Listen existieren <reference name="Archive" refid="archive">Archive</reference>, die auf der Web-Site +stehen, zu deren Domain sie gehören.</paragraph></section><section dupnames="hosting" ids="hosting"><title>Hosting</title><paragraph>Außer <literal>liste AT oekonux DOT de</literal> werden alle Mailing-Listen bei +StefanMn gehostet. Für diese sind POP-Boxen eingerichtet, die +regelmäßig gepollt werden. Diese Mailing-Listen werden von einem +<reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/">Majordomo</reference> betreut.</paragraph><target ids="majordomo" names="majordomo" refuri="http://www.greatcircle.com/majordomo/"/><important><paragraph>Da <reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/">Majordomo</reference> keine völlig Freie Software ist, gab es +den Vorschlag eine Alternative zu benutzen. Vorschläge waren Sympa +oder SmartList. Mit einer ganz neuen Lösung würde vermutlich +<reference name="MailMan" refuri="http://www.list.org/">MailMan</reference> zum Einsatz kommen.</paragraph></important><paragraph><literal>liste AT oekonux DOT de</literal> wird aus historischen Gründen von <reference name="buug" refuri="http://post.openoffice.de/">buug</reference> +gehostet. Dort kommt seit einiger Zeit <reference name="MailMan" refuri="http://www.list.org/">MailMan</reference> als +Verwaltungs-Software zum Einsatz.</paragraph><target ids="buug" names="buug" refuri="http://post.openoffice.de/"/><target ids="mailman" names="mailman" refuri="http://www.list.org/"/><important><paragraph>In einer integrierten Lösung mit einem dedizierten +Server könnten und sollten auch die Mailing-Listen auf diesem +Server gehostet werden.</paragraph></important></section><section dupnames="features" ids="features"><title>Features</title><section ids="spam-schutz" names="spam-schutz"><title>Spam-Schutz</title><paragraph>Mail an sämtliche Mailing-Listen wird über einen <reference name="SpamAssassin" refuri="http://www.spamassassin.org/">SpamAssassin</reference> +geleitet. Dies ist absolut unverzichtbar, da die Adressen der +Mailing-Listen mittlerweile sehr weit verbreitet sind. Die +SpamAssassin-Installation benötigt gelegentliche Wartung um gegen die +neuesten Ideen der SpammerInnen gewappnet zu sein.</paragraph><target ids="spamassassin" names="spamassassin" refuri="http://www.spamassassin.org/"/></section></section></section><section ids="web-sites" names="web-sites"><title>Web-Sites</title><section dupnames="hosting" ids="id1"><title>Hosting</title><section ids="provider" names="provider"><title>Provider</title><paragraph>Im Moment bezahlt der <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/">e.V.</reference> bei <reference name="1&1" refuri="http://hosting.1und1.de/">1&1</reference> ein <reference name="Premium-Paket" refuri="http://hosting.1und1.de/xml/static?__page=premium">Premium-Paket</reference><target ids="premium-paket" names="premium-paket" refuri="http://hosting.1und1.de/xml/static?__page=premium"/>.</paragraph><target ids="e-v" names="e.v." refuri="http://www.oekonux.de/projekt/verein/"/><target ids="id2" names="1&1" refuri="http://hosting.1und1.de/"/><paragraph>Die Möglichkeiten dieses Pakets treffen nicht ganz die Bedürfnisse. +Einerseits beinhaltet es ungenutzte Features (z.B. Datenbank, +<reference name="in2site" refuri="http://www.in2site.de/">in2site</reference>), andererseits fehlen erwünschte Features (Möglichkeit für +lokale Suchmaschine, die auf dem Server den Index erstellt).</paragraph><important><paragraph>Es gibt ein <reference name="Angebot" refuri="http://www.oekonux.de/projekt/liste/archive/msg03128.html">Angebot</reference><target ids="angebot" names="angebot" refuri="http://www.oekonux.de/projekt/liste/archive/msg03128.html"/> von +<reference name="Hostsharing" refuri="http://www.hostsharing.net/">Hostsharing</reference> e.G., die das Hosting übernehmen könnten.</paragraph></important><target ids="hostsharing" names="hostsharing" refuri="http://www.hostsharing.net/"/><paragraph>Die Audio-Dateien, die vor allem bei den Konferenzen aufgezeichnet +worden sind, liegen wegen ihrer Größe auf anderen Servern.</paragraph><paragraph>Mit Ressourcen aus dem <reference name="OpenTheory-Projekt" refuri="http://www.opentheory.org/">OpenTheory-Projekt</reference> wird im Vorfeld der +Konferenz das Programm der Konferenz online erstellt und präsentiert.</paragraph><target ids="opentheory-projekt" names="opentheory-projekt" refuri="http://www.opentheory.org/"/><important><paragraph>Es gibt Überlegungen, alle von der Oekonux-Community +genutzten Ressourcen zu zentralisieren. Dazu würde vermutlich ein +dedizierter Server benötigt.</paragraph></important><important><paragraph>Als weiterer Hoster käme das <reference name="Individual Network Berlin" refuri="http://www.in-berlin.de/">Individual Network +Berlin</reference> in Frage.</paragraph><paragraph><reference name="vLinux.de" refuri="http://vlinux.de/">vLinux.de</reference> oder <reference name="server4you" refuri="http://www.server4you.de/de/v/">server4you</reference> könnten weitere, vor allem preisgünstige +Alternative sein.</paragraph></important><target ids="individual-network-berlin" names="individual\ network\ berlin" refuri="http://www.in-berlin.de/"/><target ids="vlinux-de" names="vlinux.de" refuri="http://vlinux.de/"/><target ids="server4you" names="server4you" refuri="http://www.server4you.de/de/v/"/><important><paragraph>Holger hat sich grundsätzlich bereit erklärt, einen +dedizierten Server zu betreuen.</paragraph></important></section><section ids="domains" names="domains"><title>Domains</title><paragraph>Die fünf Domains, die auf den Verein laufen, sind:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>oekonux.de</literal></paragraph><paragraph>Unter <literal>www</literal> liegt hier die deutsche Hauptseite des Projekts.</paragraph></list_item><list_item><paragraph><literal>oekonux.org</literal></paragraph><paragraph>Unter <literal>www</literal> liegt hier die internationale Hauptseite des Projekts.</paragraph></list_item><list_item><paragraph><literal>oekonux-konferenz.de</literal></paragraph><paragraph>Die deutsche Domain für alles rund um die Oekonux-Konferenzen.</paragraph><bullet_list bullet="-"><list_item><paragraph><literal>www</literal></paragraph><paragraph>Einstiegsseite für die jeweils aktuelle Konferenz.</paragraph></list_item><list_item><paragraph><literal>erste</literal>, <literal>zweite</literal>, <literal>dritte</literal></paragraph><paragraph>Einstiegsseiten für die jeweilige spezifische Konferenz.</paragraph></list_item></bullet_list></list_item><list_item><paragraph><literal>oekonux-konferenz.org</literal>, <literal>oekonux-conference.org</literal></paragraph><paragraph>Die internationalen Domains für alles rund um die +Oekonux-Konferenzen.</paragraph><bullet_list bullet="-"><list_item><paragraph><literal>www</literal></paragraph><paragraph>Einstiegsseite für die jeweils aktuelle Konferenz.</paragraph></list_item><list_item><paragraph><literal>second</literal>, <literal>third</literal></paragraph><paragraph>Einstiegsseiten für die jeweilige spezifische Konferenz.</paragraph></list_item></bullet_list><important><paragraph><literal>oekonux-konferenz.org</literal> kann wahrscheinlich +mittelfristig entfallen.</paragraph></important></list_item></bullet_list><paragraph>Weitere Domains waren vor der Übernahme durch den <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/">e.V.</reference> vorhanden, +diese sind aber zurück gegeben worden.</paragraph></section></section><section dupnames="features" ids="id3"><title>Features</title><section ids="web-space" names="web-space"><title>Web-Space</title><paragraph>Derzeit sind in allen vier Web-Präsenzen insgesamt knapp 200MB von ca. +17000 Files belegt. Die extern gehosteten Audio-Files umfassen ca. +1GB.</paragraph></section><section ids="traffic" names="traffic"><title>Traffic</title><paragraph>Derzeit generieren die Web-Sites ca. 2GB Traffic pro Monat.</paragraph></section><section ids="formulare" names="formulare"><title>Formulare</title><paragraph>Die von <reference name="1&1" refuri="http://hosting.1und1.de/">1&1</reference> angebotenen so genannten Web-Elements werden im Vorfeld +einer Konferenz für Anmeldungsformulare verwendet.</paragraph><paragraph>Weitere Formulare werden nicht genutzt.</paragraph></section><section ids="mail-adressen" names="mail-adressen"><title>Mail-Adressen</title><paragraph>Derzeit verteilen sich rund 80 Mail-Adressen auf die verschiedenen +<reference name="Domains" refid="domains">Domains</reference>. Nur ein Teil von ihnen ist als POP-Box realisiert - +insbesondere die Adressen, die für die <reference name="Mailing-Listen" refid="mailing-listen">Mailing-Listen</reference> verwendet +werden. Weitere Mail-Adressen sind als Alias eingerichtet.</paragraph><paragraph>Neben den funktionsbezogenen Mail-Adressen gibt es derzeit lediglich +eine persönliche Mail-Adresse in den <reference name="Domains" refid="domains">Domains</reference>. Grundsätzlich können +weitere private Mail-Adressen vergeben werden. Vor langer Zeit wurde +beschlossen, dass der Nachname der Person in der Mail-Adresse +enthalten sein muss.</paragraph></section><section ids="generierung-und-upload" names="generierung\ und\ upload"><title>Generierung und Upload</title><paragraph>Derzeit werden alle Inhalte von StefanMn u.a. aus SDF-Quellen auf +seinem privaten Rechner generiert und per FTP auf die Web-Sites +geladen. Das Ganze ist in eine <literal>make</literal>-basierte Automatisierung +eingebettet.</paragraph><important><paragraph>Die Quellen für die statischen Anteile der jetzigen +Lösung sind vor Ewigkeiten mal in ein CVS-Repository gestellt +worden. Allerdings hat sich niemensch jemals dafür interessiert - +geschweige denn Hilfe angeboten.</paragraph><paragraph>Es wäre aber grundsätzlich gut, wenn eine neue Lösung für die +Web-Sites mittels CVS (oder Subversion) zugänglich wäre. Damit +könnten viele Leute an der Site arbeiten.</paragraph><paragraph>StefanMn hätte gerne, dass die Quellen der Web-Seiten mittels einem +ASCII-nahen Format - möglichst <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference> - erstellt werden +könnten. Er würde (auch) dafür einen Konverter vom jetzigen Format +zur Verfügung stellen.</paragraph></important></section><section ids="statische-seiten" names="statische\ seiten"><title>Statische Seiten</title><paragraph>Praktisch sämtliche Seiten in den Oekonux-Domains sind statische +HTML-Seiten ohne jegliches JavaScript oder andere aktive Elemente. Sie +sind damit</paragraph><bullet_list bullet="*"><list_item><paragraph>für <emphasis>alle</emphasis> Browser zugänglich</paragraph></list_item><list_item><paragraph>wird für alle Zeiten lesbar sein</paragraph></list_item><list_item><paragraph>kein Sicherheitsproblem für den Server</paragraph></list_item><list_item><paragraph>stabile URLs ohne Variablen</paragraph><paragraph>Viele Suchmaschinen ignorieren Links mit <literal>?</literal>.</paragraph></list_item><list_item><paragraph>bedürfen keinerlei Wartung</paragraph></list_item><list_item><paragraph>freundlich für externe Suchmaschinen</paragraph><paragraph>Zwar werden für die Navigation Frames eingesetzt, es gibt jedoch +immer einen <literal><noframes></literal>-Bereich, der die entsprechenden Links +enthält.</paragraph></list_item><list_item><paragraph>mit Tools wie z.B. <literal>wget</literal> komplett und problemlos zu saugen</paragraph></list_item><list_item><paragraph>funktioniert mit jedem Web-Hosting-Angebot</paragraph></list_item></bullet_list></section><section ids="privacy" names="privacy"><title>Privacy</title><paragraph><reference name="1&1" refuri="http://hosting.1und1.de/">1&1</reference> stellt praktisch in allen Tarifen die Log-Files des Web-Servers +zur Verfügung. Darin sind die Zugriffe auf die einzelnen Domains +unterschieden. Diese Logs werden ausgewertet und ohne die zugreifenden +IP-Adressen und weitere, tendenziell Privacy-gefährdende Details auf +den Web-Seiten zur Verfügung gestellt.</paragraph><important><paragraph>Wie StefanMn in einer <reference name="Mail an [pox]" refuri="http://www.oekonux.de/projekt/liste/archive/msg02683.html">Mail an [pox]</reference><target ids="mail-an-pox" names="mail\ an\ [pox]" refuri="http://www.oekonux.de/projekt/liste/archive/msg02683.html"/> +vorgeschlagen hat, sollte die Privacy-Policy auf den Web-Sites +veröffentlicht sein.</paragraph><paragraph>Insbesondere sollte klar gemacht werden, dass <reference name="in2site" refuri="http://www.in2site.de/">in2site</reference> <strong>nicht</strong> +verwendet wird.</paragraph></important><target ids="in2site" names="in2site" refuri="http://www.in2site.de/"/></section><section ids="navigation" names="navigation"><title>Navigation</title><paragraph>Die Navigation wird mit Hilfe von Frames realisiert. Ein schmaler +Frame auf der linken Seite ist einem File-Browser nachempfunden. Er +zeigt ständig die aktuelle Position innerhalb der Site an. Der rechte +Frame enthält den angewählten Inhalt. Wird in der Navigation ein +Verzeichnis angewählt, so erscheint im Inhalts-Frame stets +<literal>default.html</literal>.</paragraph><paragraph>Außerdem hat jede Third-Level-Domain eine eigene Sitemap. +Links auf allen Seiten werden von <reference name="QBullets" refuri="http://www.matterform.com/qbullets/">QBullets</reference> gefolgt, die grob den Typ +des Links angeben.</paragraph><target ids="qbullets" names="qbullets" refuri="http://www.matterform.com/qbullets/"/></section><section ids="lokale-suchmaschine" names="lokale\ suchmaschine"><title>Lokale Suchmaschine</title><paragraph>Mittels <reference name="FreeFind" refuri="http://www.freefind.com/">FreeFind</reference> wurde auf <literal>www.oekonux.de</literal> eine lokale, +kostenlose, durch Werbung finanzierte Suchmaschine eingerichtet.</paragraph><target ids="freefind" names="freefind" refuri="http://www.freefind.com/"/><important><paragraph>Nachdem das Größenlimit für kostenlosen Service im +2003-05 bereits zum zweiten Mal überschritten wurde, indexiert +diese Suchmaschine seit einiger Zeit nicht mehr die gesamte Site.</paragraph><paragraph>Eine lokale Suchmaschine wie <reference name="Perlfect Search" refuri="http://perlfect.com/freescripts/search/">Perlfect Search</reference> scheitert daran, +dass im derzeitigen Tarif einem Prozess zu wenig Rechenzeit zur +Verfügung steht um die Site zu indexieren.</paragraph><paragraph>Es besteht Handlungsbedarf.</paragraph></important><target ids="perlfect-search" names="perlfect\ search" refuri="http://perlfect.com/freescripts/search/"/></section><section ids="rss-feed" names="rss-feed"><title>RSS-Feed</title><important><paragraph>Es wäre nett, einen RSS-Feed auf einem eigenen Server +zu haben.</paragraph></important></section><section ids="datenbanken" names="datenbanken"><title>Datenbanken</title><important><paragraph>Derzeit werden Datenbanken nicht genutzt, aber es wäre +sinnvoll, diese Option bei einer neuen Lösung zu haben. +(vorzugsweise mySGL).</paragraph></important></section><section ids="apache" names="apache"><title>Apache</title><important><paragraph>Eine neue Hosting-Lösung sollte uns in möglichst großem +Umfang Zugang zum Web-Server geben.</paragraph></important></section></section><section ids="inhalte" names="inhalte"><title>Inhalte</title><section ids="allgemeines" names="allgemeines"><title>Allgemeines</title><important><paragraph>Generell werden die Sites nicht sehr intensiv gepflegt. +Dies ist nicht gut.</paragraph></important><important><paragraph>Insbesondere wäre es super, wenn die internationale +Site mehr von den Inhalten der deutschen Site hätte. Besonders +wünschenswert wäre es, wenn die <reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux-Links</reference> auf Englisch +verfügbar wären.</paragraph></important></section><section ids="archive" names="archive"><title>Archive</title><paragraph>Sämtliche <reference name="Mailing-Listen" refid="mailing-listen">Mailing-Listen</reference> des Projekts werden auf den Web-Sites +archiviert. Die Mails werden bei Eingang bei StefanMn mittels <reference name="MHonArc" refuri="http://www.mhonarc.org/">MHonArc</reference> +in HTML konvertiert und automatisch hochgeladen.</paragraph><target ids="mhonarc" names="mhonarc" refuri="http://www.mhonarc.org/"/><paragraph>Die HTML-Seiten für die Mails werden noch gefiltert. Momentan werden</paragraph><bullet_list bullet="*"><list_item><paragraph>Kommentare von <reference name="MHonArc" refuri="http://www.mhonarc.org/">MHonArc</reference> entfernt</paragraph></list_item><list_item><paragraph>Telefon-Nummern</paragraph></list_item><list_item><paragraph>Einzelne Personen, die sich zu spät entschieden haben, dass sie +nicht per Google bei Oekonux gefunden werden wollen</paragraph></list_item><list_item><paragraph>Alle URLs, die auf Mail-Adressen verweisen</paragraph></list_item><list_item><paragraph>Mail-Adressen werden unkenntlich gemacht</paragraph></list_item></bullet_list><important><paragraph>Weiter werden ASCII-Äquivalente der Archive in Paketen +zu 40 Stück auf die Web-Site gestellt. Dieses Feature ist obsolet.</paragraph></important><important><paragraph>Es besteht der Wunsch, die Archive auch im mbox-Format +auf die <reference name="Web-Sites" refid="web-sites">Web-Sites</reference> zu bringen. Hier muss noch überlegt werden, +was gegen Mail-Adressen-Harvesting getan werden kann.</paragraph></important><paragraph>Das Löschen aus den Archiven ist ebenfalls weit gehend automatisiert. +Es erfordert aber einen expliziten Aufruf, der die Nummer der +entsprechenden Mail nennt.</paragraph><important><paragraph>Momentan wird die gelöschte Mail nur aus den Indexen +entfernt, sie wird aber <emphasis>nicht</emphasis> vom Server gelöscht. Dadurch ist +sie zwar nicht mehr über Indexe oder benachbarte Mails verlinkt, +bleibt aber grundsätzlich zugreifbar. Das muss geändert werden.</paragraph></important></section><section ids="texte" names="texte"><title>Texte</title><paragraph>Verschiedene Texte des Projekts sind auf den Web-Sites verfügbar.</paragraph><paragraph>Darunter befindet sich eine Einführung, deren Quellen auch für +MagicPoint vorliegen</paragraph></section><section ids="link-seite" names="link-seite"><title>Link-Seite</title><paragraph>Eine wichtige inhaltliche Ressource der Oekonux-Community sind die +<reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux-Links</reference>, in die interessante Links mit einem kurzen Kommentar +aufgenommen werden. Die Seite ist strukturiert.</paragraph><target ids="oekonux-links" names="oekonux-links" refuri="http://www.oekonux.de/projekt/links.html"/><important><paragraph>Es wäre sehr gut, wenn jeder der <reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html">Oekonux-Links</reference> das +Datum bekäme, zu dem er erstellt wurde. Mittlerweile hätte dies +einen gewissen dokumentarischen Wert ("Aha, damals war das also von +Bedeutung").</paragraph><paragraph>Dies wäre mittels <literal>cvs annotate</literal> grundsätzlich auch für schon +vorhandene Links machbar.</paragraph></important><important><paragraph>Es wäre gut, wenn die Sprache der Site angegeben wäre, +die durch den Link referenziert wird. Dies ist mittels des +HTML-Attributs <literal>hreflang</literal> machbar.</paragraph></important></section><section ids="statistiken" names="statistiken"><title>Statistiken</title><paragraph>Statistiken sowohl über die Nutzung der <reference name="Mailing-Listen" refid="mailing-listen">Mailing-Listen</reference> als auch +über die Nutzung der <reference name="Web-Sites" refid="web-sites">Web-Sites</reference> werden auf den <reference name="Web-Sites" refid="web-sites">Web-Sites</reference> zur +Verfügung gestellt. Alle Statistiken werden mit Freien Tools +(<reference name="webalizer" refuri="http://www.webalizer.org/">webalizer</reference>, <reference name="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/">mail2clf</reference>, <reference name="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/">mail2chart</reference>) mindestens einmal wöchentlich von +StefanMn automatisch erstellt und hochgeladen. Die +Web-Site-Statistiken werden einmal monatlich um Referrer-Links +bereinigt, die von Porno-Sites stammen.</paragraph><target ids="webalizer" names="webalizer" refuri="http://www.webalizer.org/"/><target ids="mail2clf" names="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"/><target ids="mail2chart" names="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"/></section></section></section><section ids="opentheory" names="opentheory"><title>OpenTheory</title><paragraph>Viele Texte aus und rund um das Oekonux-Projekt sind auch im +<reference name="OpenTheory-Projekt" refuri="http://www.opentheory.org/">OpenTheory-Projekt</reference> verfügbar. Einige sind im +<reference name="Oekonux-OpenTheory-Projekt" refuri="http://www.opentheory.org/oekonux/">Oekonux-OpenTheory-Projekt</reference> zusammen gefasst.</paragraph><target ids="oekonux-opentheory-projekt" names="oekonux-opentheory-projekt" refuri="http://www.opentheory.org/oekonux/"/><paragraph>Die Texte sind sowohl inhaltlicher als auch organisatorischer Natur. +Insbesondere für die Vorbereitung der Konferenzen wurden +OpenTheory-Projekte angelegt.</paragraph></section><section ids="wiki" names="wiki"><title>Wiki</title><paragraph>Derzeit nutzt die Oekonux-Community zwei Wiki-Installationen:</paragraph><bullet_list bullet="*"><list_item><paragraph><literal>co-forum.de</literal></paragraph><paragraph>Wird technisch von Thomas Kalka betreut und auch gehosteten. Es +handelt sich um ein allgemeines Wiki.</paragraph></list_item><list_item><paragraph><literal>de.wiki.oekonux.org.uk</literal></paragraph></list_item><list_item><paragraph><literal>en.wiki.oekonux.org.uk</literal></paragraph><paragraph>Diese beiden Wikis sind neueren Datums und explizit als Oekonux-Wiki +gedacht. Sie werden technisch von Chris Croome betreut und auch +gehostet.</paragraph><important><paragraph>Bislang besteht keine inhaltliche Betreuung.</paragraph></important></list_item></bullet_list></section><section ids="news-groups" names="news-groups"><title>News-Groups</title><paragraph>Seit Ende 2003 werden die Haupt-<reference name="Mailing-Listen" refid="mailing-listen">Mailing-Listen</reference> für die Diskussion +auch mittels <reference name="Gmane" refuri="http://gmane.org/">Gmane</reference> als Usenet-Newsgroups angeboten:</paragraph><target ids="gmane" names="gmane" refuri="http://gmane.org/"/><bullet_list bullet="*"><list_item><paragraph><literal>news://news.gmane.org/gmane.politics.oekonux.german</literal></paragraph><paragraph>Spiegelt <literal>liste AT oekonux DOT de</literal>.</paragraph></list_item><list_item><paragraph><literal>news://news.gmane.org/gmane.politics.oekonux.english</literal></paragraph><paragraph>Spiegelt <literal>list-en AT oekonux DOT org</literal>.</paragraph></list_item></bullet_list><paragraph>Die News-Groups sind so eingestellt, das Antworten über die News nicht +möglich sind.</paragraph><important><paragraph>Zum heutigen Zeitpunkt (2004-01-23) enthalten die +News-Group-Archive nur die Mails, die geschrieben wurde, nachdem +das News-Group-Feature hinzu genommen wurde. Nachdem das Problem +der lesbaren Mail-Adressen gelöst wurde, ist es angestrebt, dass +die gesamten Archive in das News-Group-Archiv <reference name="importiert" refuri="http://gmane.org/import.php">importiert</reference><target ids="importiert" names="importiert" refuri="http://gmane.org/import.php"/> werden.</paragraph></important><section dupnames="features" ids="id4"><title>Features</title><section ids="suchmaschine" names="suchmaschine"><title>Suchmaschine</title><paragraph><reference name="Gmane" refuri="http://gmane.org/">Gmane</reference> verfügt über eine Suchmaschine, die die entsprechenden +News-Archive durchsuchen.</paragraph><important><paragraph>Zumindest übergangsweise wäre es gut, diese +Suchmaschine direkt über die <reference name="Web-Sites" refid="web-sites">Web-Sites</reference> zu verlinken oder +anderweitig zu integrieren.</paragraph></important><comment xml:space="preserve">LocalWords: reStructuredText Premium page premium oekonux www org Hoster</comment><comment xml:space="preserve">LocalWords: konferenz conference second third gehosteten MagicPoint Upload</comment><comment xml:space="preserve">LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes</comment><comment xml:space="preserve">LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you</comment><comment xml:space="preserve">LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat</comment><comment xml:space="preserve">LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs</comment><comment xml:space="preserve">LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList</comment><comment xml:space="preserve">LocalWords: MailMan buug SpamAssassin Individual Network vLinux server</comment><comment xml:space="preserve">LocalWords: Repository QBullets annotate hreflang</comment></section></section></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/real/input/WikiRequirements.xml b/sandbox/xml2rst/tests/real/input/WikiRequirements.xml new file mode 100644 index 000000000..1980f9e52 --- /dev/null +++ b/sandbox/xml2rst/tests/real/input/WikiRequirements.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/WikiRequirements.rst"><paragraph>#FORMAT rst</paragraph><section ids="requirements-for-an-oekonux-wiki" names="requirements\ for\ an\ oekonux\ wiki"><title refid="id1">Requirements for an Oekonux Wiki</title><topic classes="contents" ids="contents" names="contents"><title>Contents</title><bullet_list><list_item><paragraph><reference ids="id1" refid="requirements-for-an-oekonux-wiki">Requirements for an Oekonux Wiki</reference></paragraph></list_item><list_item><paragraph><reference ids="id2" refid="introduction">Introduction</reference></paragraph></list_item><list_item><paragraph><reference ids="id3" refid="requirements">Requirements</reference></paragraph><bullet_list><list_item><paragraph><reference ids="id4" refid="non-functional-requirements">Non-functional requirements</reference></paragraph></list_item><list_item><paragraph><reference ids="id5" refid="functional-requirements">Functional requirements</reference></paragraph></list_item><list_item><paragraph><reference ids="id6" refid="requirements-for-policy-choices">Requirements for policy choices</reference></paragraph></list_item></bullet_list></list_item></bullet_list></topic><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">############################################################################</comment></section><section ids="introduction" names="introduction"><title refid="id2">Introduction</title><paragraph>In <reference name="Project Oekonux" refuri="http://www.oekonux.de/">Project Oekonux</reference> there has been a long discussion about setting +up a Wiki for the project. Also several attempts to establish a Wiki +have been made. Most of these discussions took place on <reference name="the projekt mailing list" refuri="http://www.oekonux.de/projekt/liste/">the projekt mailing list</reference> +which is the organizing body of the project.</paragraph><paragraph>One of the most important questions was which Wiki software to use. +Finally a decision has been made based upon the requirements being +raised.</paragraph><paragraph>The following lists all the requirements which have been found and +lists the alternative solutions for them. One reason for this list is +to document the design decisions / choices taken and their basis in +the requirements. This way it is easier to</paragraph><bullet_list bullet="*"><list_item><paragraph>understand the decisions</paragraph></list_item><list_item><paragraph>change decisions while not forgetting about reasons for the original +decision</paragraph></list_item></bullet_list><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">############################################################################</comment></section><section ids="requirements" names="requirements"><title refid="id3">Requirements</title><section ids="non-functional-requirements" names="non-functional\ requirements"><title refid="id4">Non-functional requirements</title><enumerated_list enumtype="arabic" prefix="" suffix="."><list_item><paragraph>The software must have an active developer community and must be +Free</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Only an active developer community of a Free Software +project guarantees for a constant development.</paragraph></field_body></field></field_list><paragraph>Discussion came down to two candidates which met this requirement: +<reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/">MediaWiki</reference> and <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference>. The following requirements list +alternative solutions only for these two Wiki implementations.</paragraph></list_item><list_item><paragraph>The software must be easy to use for people used to Wikipedia</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Because of the overwhelming success of Wikipedia many +people are used to the way how Wikipedia is operated.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Given by definition.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>The typical use cases need to be identified and a +special help page must be created for these users.</paragraph></field_body></field></field_list></list_item></enumerated_list><comment xml:space="preserve">############################################################################</comment></section><section ids="functional-requirements" names="functional\ requirements"><title refid="id5">Functional requirements</title><enumerated_list enumtype="arabic" prefix="" suffix="."><list_item><paragraph>Email notification must be possible sending diffs and other changes</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Email notification is a basic requirement for any +offline processing.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Rumor has it that there is a plug-in for email +notification but nobody saw it yet (2005-03-26).</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Supports email notification as diffs for arbitrary pages +and page groups (regular expression). Only notifies on moves and +deletion of pages.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>It must be possible to limit changeability of a page (for instance +for user's pages)</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Some pages are private pages or should not be changes +for other reasons.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Don't know whether this can be enforced technically.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Implements access control lists (ACL) allowing for +arbitrary rights.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Categories must be possible</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>With categories can form arbitrary non-hierarchical +structures</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Navigation panels must be available</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Useful to create overviews.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available as <literal>Navigation</literal> macro for hierarchical +structures and as <literal>PageList</literal> macro for structures based logical +expressions on regular expressions over page names.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>A version history must be available</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Needed to get an overview of the change history of a +page.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>List of changes for a given user must be available</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Nice to have.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Not available.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>A watch list must be possible reporting about the latest changes +for a given set of pages</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Nice to have.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Can be simulated by email notification.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Automatic links by using CamelCase (aka WikiWords) must not be the +default</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>CamelCase makes sense only in certain language. In +particular German is a language where automatic CamelCase links +are not too useful.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>CamelCase words never create automatic links.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>The <reference name="NoCamelCase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase">NoCamelCase</reference> plug-in makes this the default.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Support for other than the standard Wiki syntaxes like +<reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference> must be available</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>All Wiki languages suck so support for more sane +syntaxes is a very useful thing. In particular support for +<reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference> being a powerful language and a good candidate +for a standard ASCII based markup language.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>There is no support for any other syntax than the +MediaWiki syntax.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Offers several syntaxes by the concept of parsers. Among +the available syntaxes are <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html">reStructuredText</reference> and <reference name="LaTeX" refuri="http://www.latex-project.org/">LaTeX</reference>.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Arbitrary attachments must be possible</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Nice to have to attach arbitrary data to a page. In +particular it makes possible to include material not marked up in +the Wiki syntax.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Unknown but probably available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="11" suffix="."><list_item><paragraph>Shortcuts for links must be available</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>In particular it is useful to be able to reference +entries in the Oekonux mailing list archive as easy as possible.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Implements this by templates.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Implements by InterWiki links.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="12" suffix="."><list_item><paragraph>Page templates must be available</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Page templates are a good way to support policy +decisions by offering standard templates for all page types.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Not available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="13" suffix="."><list_item><paragraph>It must be possible to revert page changes</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Useful to undo unwanted changes.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="14" suffix="."><list_item><paragraph>It must be possible to know who did a change in a page</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Nice to have.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Available.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="15" suffix="."><list_item><paragraph>Offline usage must be possible as far as possible</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Not everyone is always online so offline facilities are +generally useful. Offline usage includes</paragraph><bullet_list bullet="*"><list_item><paragraph>a push feature for change notification</paragraph></list_item><list_item><paragraph>browsing</paragraph></list_item><list_item><paragraph>editing</paragraph></list_item></bullet_list></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Not available. At most email notification is available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Email notification allows for monitoring changes and in +principle the diffs can be used to update a local copy. A local +installation of <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> only needs Python and <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> so it +is easy to accomplish. Because <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/">MoinMoin</reference> uses a file based +storage scheme it is at least easy to update a local copy in +short online phases for offline use so at least offline browsing +is available.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="16" suffix="."><list_item><paragraph>Pages must be locked during they are edited</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Page locking prevents parallel editing of a page which +is useful in a highly frequented Wiki.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Not available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Editing a page locks it for 10 minutes and the lock can +be renewed.</paragraph></field_body></field></field_list></block_quote><enumerated_list enumtype="arabic" prefix="" start="17" suffix="."><list_item><paragraph>It must be possible to edit sections of a page</paragraph></list_item></enumerated_list><block_quote><field_list><field><field_name>Rationale</field_name><field_body><paragraph>Makes parallel editing of a page less dangerous which +is useful in a highly frequented Wiki.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Not available.</paragraph></field_body></field></field_list></block_quote><comment xml:space="preserve">############################################################################</comment></section><section ids="requirements-for-policy-choices" names="requirements\ for\ policy\ choices"><title refid="id6">Requirements for policy choices</title><enumerated_list enumtype="arabic" prefix="" suffix="."><list_item><paragraph>Pages standing in a certain close relation to a certain other page +must be possible in a sane way</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>There are several ways in which a page can have closely +related pages (e.g. discussion pages). It makes sense to have a +uniform way to express this relation.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Implements discussion pages as one a special type of +closely related pages by suffixing <literal>Discussion</literal> to the +namespace of a page. For other closely related pages there is no +fixed implementation.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>By making sub-pages possible all types of closely +related pages can be implemented by some fixed names being part +of a policy and supported by page templates.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Structuring of content must be possible by a page hierarchy</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>The maintenance policy may decide to have a page +hierarchy as a structuring principle.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Implements a top level structure by namespaces and +allows for structuring otherwise.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>With sub-pages arbitrary hierarchies can be build on any +level.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Sub-Wikis must be possible</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>The maintenance policy may decide this makes sense.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Not available.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Could be done in a page hierarchy on any level.</paragraph></field_body></field></field_list></list_item><list_item><paragraph>Underscores and white-space in page names must be possible but +insignificant</paragraph><field_list><field><field_name>Rationale</field_name><field_body><paragraph>If the maintenance policy decides that underscores and +white-space may be used in arbitrary ways the software must be +able to reflect this.</paragraph></field_body></field><field><field_name>MediaWiki</field_name><field_body><paragraph>Unknown.</paragraph></field_body></field><field><field_name>MoinMoin</field_name><field_body><paragraph>Underscores and white-space is significant.</paragraph></field_body></field></field_list></list_item></enumerated_list><comment xml:space="preserve">############################################################################</comment><comment xml:space="preserve">############################################################################</comment><substitution_definition names="projekt"><reference name="the projekt mailing list" refuri="http://www.oekonux.de/projekt/liste/">the projekt mailing list</reference></substitution_definition><substitution_definition names="NoCamelCase"><reference name="NoCamelCase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase">NoCamelCase</reference></substitution_definition><target ids="project-oekonux" names="project\ oekonux" refuri="http://www.oekonux.de/"/><target ids="the-projekt-mailing-list" names="the\ projekt\ mailing\ list" refuri="http://www.oekonux.de/projekt/liste/"/><target ids="mediawiki" names="mediawiki" refuri="http://wikipedia.sourceforge.net/"/><target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/><target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/><target ids="latex" names="latex" refuri="http://www.latex-project.org/"/><target ids="nocamelcase" names="nocamelcase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase"/><comment xml:space="preserve">LocalWords: diffs CamelCase InterWiki MoinMoin rst projekt MediaWiki aka</comment><comment xml:space="preserve">LocalWords: Wikipedia PageList WikiWords reStructuredText</comment><comment xml:space="preserve">LocalWords: Wikis NoCamelCase</comment></section></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/real/original/Machinery.rst b/sandbox/xml2rst/tests/real/original/Machinery.rst new file mode 100644 index 000000000..3a0569527 --- /dev/null +++ b/sandbox/xml2rst/tests/real/original/Machinery.rst @@ -0,0 +1,476 @@ +#format rst +#language en + +Discussion__ + +.. __: /Talk + +.. contents:: + +This page describes the machinery used by the `Oekonux community`_. +This page is motivated by a `thread about this topic +<http://www.oekonux.de/projekt/liste/archive/msg03333.html>`_ on the +`project list`_, which cares about the organization of the project. + +The intention of this page is to reflect the current state of the +machinery. It is originally written in German which is available as +the first version of this page. + +Overview +======== + +The `Oekonux community`_ currently uses the following technical +facilities: + +* `mailing lists`_ + +* `web sites`_ + +* OpenTheory_ + +* `news groups`_ + +* Wiki_ + +As far as I know other facilities such as IRC are currently not used. + +.. _Oekonux server: + +Dedicated Oekonux server +======================== + +There is a dedicated server for the Oekonux project. Currently this is +a virtual server based on Debian and hosted by `VD server`_. This +dedicated server is paid by the `Projekt Oekonux e.V.`_, a registered +association in Germany. + +Today the server runs most of the technical infrastructure of the +project. It has a fixed IP address and the DNS entries for the domains +point to this server. The generic address of the server is +``server.oekonux.de``. + +The general maintainer of this server is HolgerWeiss_, certain +facilities are maintained mainly by StefanMerten_. + +In case it is necessary because the project needs more computing +resources a real server could be hosted by `Individual Network +Berlin`_. + +Mailing lists +============= + +Existing lists +~~~~~~~~~~~~~~ + +The following lists exist: + +* ``liste AT oekonux DOT de`` + +* ``list-en AT oekonux DOT org`` + +* ``projekt AT oekonux DOT de`` + +* ``chat AT oekonux DOT de`` + +* ``mitglieder AT oekonux DOT de`` + +* ``helfer AT oekonux-konferenz DOT de`` + +* ``referenten AT oekonux-konferenz DOT de`` + +For all mailing lists there are archives_, which are on the web sites +of the domain they belong to. + +Hosting +~~~~~~~ + +All mailing lists are hosted on the `Oekonux server`_. The mailing +lists are all served by a Majordomo_. + +Features +~~~~~~~~ + +Spam protection +--------------- + +Mail to all mailing lists is routed over a SpamAssassin_. This is +indispensable because the addresses of the mailing lists have a wide +distribution. + +The SpamAssassin installation needs some maintenance once in a while +to be ready for the latest ideas of spammers. This maintenance is done +by StefanMerten_. + +Unfortunately the spam filtering does not catch all spam :-( . +Therefore the mailing lists have been closed so only subscribers can +post to the list unmoderated. The bounces of spam and legitimate mail +from non-subscribers are handled by StefanMerten_. All other tasks +necessary for keeping the mailing lists running are also handled by +StefanMerten_. + +Web sites +========= + +Hosting +~~~~~~~ + +Provider +-------- + +There is no special provider for the web sites. All web sites are +hosted on the `Oekonux server`_. + +Because of their size the audio files which mainly have been recorded +during the conferences are kept on web space donated by various +people. + +Before conferences resources of the `OpenTheory project`_ are used +for online creation and presentation of the program of the conference. + +Domains +------- + +There are four domains for which the `e.V.`_ is the owner: + +* ``oekonux.de`` + + Under ``www`` the German main page of the project can be found. + +* ``oekonux.org`` + + Under ``www`` the international main page of the project can be + found. + + Also the Wikis are all hosted here: + + * ``en.wiki`` + + The English language Wiki. + + * ``de.wiki`` + + The German language Wiki. + +* ``oekonux-konferenz.de`` + + The German domain for everything around the Oekonux conferences. + + - ``www`` + + Entry point for the most recent conference. + + - ``erste``, ``zweite``, ``dritte`` + + Entry points for the respective conference. + +* ``oekonux-conference.org`` + + The international domains for everything around the Oekonux + conferences. + + - ``www`` + + Entry point for the most recent conference. + + - ``second``, ``third`` + + Entry points for the respective conference. + +More domains were present before the `e.V.`_ took them over but they +have been abandoned. + +Features +~~~~~~~~ + +Web space +--------- + +The audio files hosted externally sum up to about 4GB. + +Traffic +------- + +.. $$$ + +There are statistics about the `network traffic +<http://traffic.oekonux.de/>`_ and the `page hits +http://www.oekonux.de/projekt/statistik/website/`_. + +Mail addresses +-------------- + +All domains support a couple of mail addresses. They are mainly used +for the `mailing lists`_. + +Besides the functional mail addresses there is only one private mail +address. Generally it is possible to create more private mail +addresses. Such private mail address must contain the family name of +the person. + +Generation and Upload +--------------------- + +At the moment all content of the web sites is generated by +StefanMerten_ on his private computer and uploaded onto the server. +Among other facilities the SDF format is used and the whole thing is +embedded in a ``make`` based automation. + +.. important:: The sources for the static pages have been brought to a + CVS repository eons ago. However, this has not been used. + + In general it would be good if a new solution for the web sites + would be available by CVS. With this many people could work on the + site. + + StefanMerten_ would appreciate that the sources of the web pages + are created in a format close to ASCII - at best reStructuredText_. + He is ready to provide a converter from the current format. + +Static pages +------------ + +Apart from the Wiki pages nearly all pages in the Oekonux domains are +static HTML pages without any JavaScript or other active elements. By +this they are + +* usable by *all* browsers + +* readable for all times + +* no security risk for the server + +* stable URLs without variable parts + + Many search engines ignore links containing a ``?``. + +* need no maintenance + +* friendly to external search engines + + Though navigation is done by frames there is always a ``<noframes>`` + section which contains the links. + +* can be downloaded with tools like ``wget`` completely and without + problems + +* works with every web hosting offer + +Navigation +---------- + +Navigation is realized with frames. A narrow frame on the left is +modeled after a file browser. It permanently presents the current +position in the site. The right frame contains the selected content. +If a directory is selected in the navigation the content frame +``default.html`` always appears. + +Apart from this each third level domain has a separate site map. + +Links in all pages are followed by QBullets_ which roughly give the +type of the link. + +Locale search engine +-------------------- + +.. $$$ Link ht://dig + +Currently the local search engine is replaced by a ht://dig based +solution. + +RSS-Feed +-------- + +.. important:: There is no RSS feed yet but it would be nice to have + one. + +Content +~~~~~~~ + +General +------- + +.. important:: In general the sites are not maintained really. This is + bad. + +.. important:: In particular it would be good if the international + site would have more of the content of the German site. + Particularly it would be good to have the `Oekonux links`_ in + English. Also the structure of the project should be presented on + the international site. + +Archives +-------- + +All `mailing lists`_ of the project are archived on the web sites. +StefanMerten_ converts the incoming mails to HTML by MHonArc_ and +uploaded automatically. + +HTML pages for the archives are filtered. At the moment + +* comments of MHonArc_ are removed + +* phone numbers are replaced by a fixed text + +* names of certain people who decided to late that they not want to be + found in Oekonux by Google are shortened + +* all URLs pointing to mail addresses are obfuscated a bit + +* mail addresses are obfuscated + +.. important:: There is a request to have the archives on the `web + sites`_ in mbox format. For this it must be clarified what can be + done against mail address harvesting. + +Removal of archived pages is also widely automated. However, it needs +an explicit call with the number of the mail to remove. + +.. important:: Right now the removed mail is removed only from the + indexes but *not* from the server. By this it is no longer + reachable by neighboring mails or an index but the are generally + accessible. This must be changed. + +Texts +----- + +Several texts of the project are available on the `web sites`_. + +Among them is an introduction for which MagicPoint sources are +available. + +Link page +--------- + +One of the most important content resources of the `Oekonux +community`_ are the `Oekonux links`_, where interesting links are +entered with a short comment. The page is structured. + +.. important:: It would be good if each of the `Oekonux links`_ would + get a creation date. Meanwhile this would have some historical + value. + + In general for existing links this would be possible by ``cvs + annotate``. + +.. important:: It would be useful if the language of the page behind + the link would be given. This can be done by the HTML attribute + ``hreflang``. + +Statistics +---------- + +Statistics are available about the usage of the `mailing lists`_ as +well as about the `web sites`_ usage on the `web sites`_. All +statistics are created weekly by some Free Software (webalizer_, +mail2clf_, mail2chart_) automatically by StefanMerten_ and uploaded. + +OpenTheory +========== + +Many texts from the project and from its environment are available in +the `OpenTheory project`_. Some of them are gathered in the `Oekonux +OpenTheory project`_. + +The texts are about Oekonux content as well as for organizational +purposes. In particular the conference preparation has been done +there. + +Wiki +==== + +Currently there are two Oekonux Wikis at + +* http://en.wiki.oekonux.org/ + +* http://de.wiki.oekonux.org/ + +They are based on the MoinMoin_ Wiki engine. + +The content is maintained by a group of maintainers (`English +<http://en.wiki.oekonux.org/MaintainerGroup>`_, `German +<http://de.wiki.oekonux.org/MaintainerGruppe>`_ . The technical part +of the Wikis is maintained by StefanMerten_. + +News groups +=========== + +Since end of 2003 the main discussion `mailing lists`_ are available +through Gmane_ as Usenet newsgroups: + +* news://news.gmane.org/gmane.politics.oekonux.german + + Mirrors ``liste AT oekonux DOT de``. + +* news://news.gmane.org/gmane.politics.oekonux.english + + Mirrors ``list-en AT oekonux DOT org``. + +The newsgroups are configured in a way replies by news are not +possible. + +.. important:: For now the newsgroup archives contain only those mails + written after the newsgroup feature was in place. After the problem + of readable mail addresses has been solved the whole archive shall + be `brought <http://gmane.org/import.php>`_ to the newsgroup archive + +Features +~~~~~~~~ + +Search engine +------------- + +Gmane_ has a search engine which searches the newsgroups. + +.. ############################################################################ + +.. _reStructuredText: http://docutils.sourceforge.net/rst.html + +.. _Oekonux community: http://www.oekonux.de/ + +.. _project list: http://www.oekonux.de/projekt/liste/ + +.. _Majordomo: http://www.greatcircle.com/majordomo/ + +.. _SpamAssassin: http://www.spamassassin.org/ + +.. _Projekt Oekonux e.V.: + +.. _e.V.: http://www.oekonux.de/projekt/verein/ + +.. _OpenTheory project: http://www.opentheory.org/ + +.. _Individual Network Berlin: http://www.in-berlin.de/ + +.. _QBullets: http://www.matterform.com/qbullets/ + +.. _MHonArc: http://www.mhonarc.org/ + +.. _Oekonux links: http://www.oekonux.de/projekt/links.html + +.. _webalizer: http://www.webalizer.org/ + +.. _mail2clf: http://www.merten-home.de/FreeSoftware/mail2clf/ + +.. _mail2chart: http://www.merten-home.de/FreeSoftware/mail2chart/ + +.. _Oekonux OpenTheory project: http://www.opentheory.org/oekonux/ + +.. _Gmane: http://gmane.org/ + +.. _VD server: http://www.vd-server.de/ + +.. _MoinMoin: http://moinmoin.wikiwikiweb.de/ + +.. ############################################################################ + +.. LocalWords: reStructuredText Premium page premium oekonux www org Hoster +.. LocalWords: konferenz conference second third gehosteten MagicPoint Upload +.. LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes +.. LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you +.. LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat +.. LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs +.. LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList rst +.. LocalWords: MailMan buug SpamAssassin Individual Network vLinux server IRC +.. LocalWords: Repository QBullets annotate hreflang OpenTheory Debian VD DNS +.. LocalWords: HolgerWeiss StefanMerten mitglieder erste zweite dritte RSS +.. LocalWords: MoinMoin diff --git a/sandbox/xml2rst/tests/real/original/MediaWikiFAQ.rst b/sandbox/xml2rst/tests/real/original/MediaWikiFAQ.rst new file mode 100644 index 000000000..8f50f88eb --- /dev/null +++ b/sandbox/xml2rst/tests/real/original/MediaWikiFAQ.rst @@ -0,0 +1,211 @@ +#format rst + +========================================================== +FAQ for people used to Wikipedia and other MediaWiki wikis +========================================================== + +.. contents:: + +Introduction +============ + +This page is a FAQ page for users used to Wikipedia and other +MediaWiki_ [#]_ wikis. In Project Oekonux we chose MoinMoin_ because +at the time of the decision there was a slight technological +superiority opening more options for its use. If you are interested in +the reasons you may want to consult the requirements_ which have been +found then. + +.. [#] MediaWiki_ is the name of the software used for Wikipedia and + other Wikis. The software running this Wiki is called + MoinMoin_. + +However, MediaWiki_ and it's use is widely known and thus Project +Oekonux strives to make the use of this MoinMoin_ wiki as easy to +MediaWiki_ users as possible. This FAQ is one attempt to do so. If you +are a MediaWiki_ user and have questions not covered here feel free to +contact projekt@oekonux.de. + +.. ############################################################################ +.. ############################################################################ + +Question and answers +==================== + +Of all users +------------ + +What about the namespace concept? +................................. + +Most of the namespaces in MediaWiki_ are nothing else than a +structuring facility establishing structure on a top level. + +In MoinMoin_ there is no concept of namespaces in the sense of +MediaWiki_. However, there is the concept of `sub pages`_ [#]_ which +have names containing one or more slashes (``/``). + +.. [#] There are also sub pages in MediaWiki_ but they are rarely used + in any area but the ``Users:`` namespace. + +In MoinMoin_ we map the concept of namespaces to the top level `sub +pages`_ of the wiki. So if you have a page named ``Oekonux:Project`` +in MediaWiki_ it would be named ``Oekonux/Project`` in MoinMoin_. + +Please note that `sub pages`_ are more flexible than namespaces +because they allow for more than one level or semantic hierarchy. + +What about the ``Users:`` namespace? +.................................... + +Unfortunately the ``Users:`` namespace as such can not be easily +modeled into MoinMoin_. The homepages of users need to stay on the +top level so the MediaWiki_ page ``Users:JohnDoe`` is mapped to +``JohnDoe`` in MoinMoin_. + +What about the ``Special:`` namespace? +...................................... + +The ``Special:`` namespace in MediaWiki_ does not lead to normal pages +but to pages which are generated dynamically by the software. + +In MoinMoin_ such pages (and a lot more) are modeled by macros_. So +what in MediaWiki_ reads ``Special:RecentChanges`` in MoinMoin_ is +written ``[[RecentChanges]]``. + +What about the ``Talk:`` namespace? +......................................... + +Actually the ``Talk:`` namespace in MediaWiki_ reachable by the +``Discussion`` tab is not a namespace in the sense of the other +namespaces. Instead it is an add-on for pages in all namespaces. + +In MoinMoin_ this is modeled by `sub pages`_. However, instead of +tagging the term ``Talk`` in the very front of the name of a page in +MoinMoin_ this is added to the end. So for the MediaWiki_ page name +``Oekonux_Talk:Project`` in MoinMoin_ the name +``Oekonux/Project/Talk`` is used. + +To foster similarity to MediaWiki_ wikis most of the page templates +for this wiki contain a link to a ``/Talk`` `sub page`_. + +.. ############################################################################ + +Of editors +---------- + +I'm used to `MediaWiki syntax`_. Can I use it in this Wiki? +........................................................... + +By default MoinMoin_ has a slightly `different syntax`_ then +MediaWiki_. However, MoinMoin_ can support many languages if only a +parser is available for it. There is a parser for MediaWiki_ syntax +which can be used for this Wiki. All you have to do is to put :: + + #format media + +in the very first line of your document. From that point on `MediaWiki +syntax`_ is recognized. + +Currently the parser does not support the full `MediaWiki syntax`_ but +a considerable subset of it. For most pages this subset is completely +sufficient. For an extensive list of supported and unsupported +features please check the `documentation of the parser`_. + +Though I'm used to `MediaWiki syntax`_ I think it sucks. Any alternatives? +.......................................................................... + +Because in principle MoinMoin_ supports different syntaxes the general +answer is: Yes, you can use other syntaxes if and when the parser +plug-in for it exists and is installed. The default parser for +MoinMoin_ parses the `MoinMoin syntax`_. + +In this Wiki by default we use a variant without automatic CamelCase +links and without InterWiki_ links without special markup. If you want +CamelCase and InterWiki_ links put :: + + #format wiki + +in the first line of your page. The MoinMoin wiki markup language has +more options than the MediaWiki markup language but still is quite +illogical. + +Otherwise a very promising ASCII based markup is reStructuredText_. It +is far more logical than any wiki markup language and it has a set of +nice features. If you want to use it put :: + + #format rst + +in the first line of your page. + +I tried to create a new page and ended up on this page offering templates. What's this? +....................................................................................... + +In MoinMoin_ it is possible to have page templates. A page templates +are an easy way to help people to conform to some style guide lines +established for the given wiki. They are created by the maintainers of +the wiki. + +The name of a page template is build from the type of page the page +template is for and the suffix ``Template`` (in English). So for +instance a page template meant for talk pages is named +``TalkTemplate``. + +In a sense a page template bundles some general knowledge about the +wiki ready to be used by the users of the wiki. Of course you can +start a new page from scratch but usually it makes more sense to use +an existing page template. + +Page templates, ok. What about the MediaWiki_ templates? +........................................................ + +In MoinMoin_ the term "template" is used differently than in +MediaWiki_. In MoinMoin_ a template is a *page* template [#]_ while in +MediaWiki_ it is more like a function call in a programming language. + +.. [#] The concept of page templates is probably not known in + MediaWiki_. + +In general there are two ways to get the functionality of MediaWiki_ +templates in MoinMoin_. MediaWiki_ templates which are used as +shortcuts for links are mapped to InterWiki_ links. For instance a +link to the posting containing the requirements_ for this wiki in the +archive of the project mailing list ``[pox]`` is named +``poxArchive:04957`` which expands to the rather long link +http://www.oekonux.de/projekt/liste/archive/msg04957.html. You +probably agree that the former is easier to type :-) . Such a link can +be used as any other link. In particular it can be used together with +a display text. If your favorite link target is not yet supported by +this wiki please contact projekt@oekonux.de about it. + +MediaWiki_ templates not building shortcuts for links generally can be +mapped to MoinMoin_ macros_. If the functionality you need is not yet +supported by this wiki please contact projekt@oekonux.de about it. + +.. ############################################################################ +.. ############################################################################ + +.. _MediaWiki: http://wikipedia.sourceforge.net/ + +.. _MoinMoin: http://moinmoin.wikiwikiweb.de/ + +.. _requirements: Oekonux/Project/Wiki/Requirements_ + +.. _MediaWiki syntax: http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup + + +.. _different syntax: HelpOnEditing_ +.. _MoinMoin syntax: HelpOnEditing_ + +.. _documentation of the parser: http://www.merten-home.de/FreeSoftware/media4moin/manual.html + +.. _sub page: +.. _sub pages: HelpOnEditing/SubPages_ + +.. _macros: HelpOnMacros_ + +.. _reStructuredText: http://docutils.sourceforge.net/rst.html + +.. LocalWords: rst Wikipedia MediaWiki MoinMoin homepages JohnDoe CamelCase +.. LocalWords: RecentChanges InterWiki reStructuredText TalkTemplate SubPages +.. LocalWords: poxArchive HelpOnEditing HelpOnMacros diff --git a/sandbox/xml2rst/tests/real/original/Technik.rst b/sandbox/xml2rst/tests/real/original/Technik.rst new file mode 100644 index 000000000..39739a28f --- /dev/null +++ b/sandbox/xml2rst/tests/real/original/Technik.rst @@ -0,0 +1,539 @@ +.. Note:: Sorry, wegen kaputter Formatierung, aber ich habe keine + Ahnung, wie das geht und es gibt leider keine Hilfe. Ich verwende + einfach mal reStructuredText_. + +.. _reStructuredText: http://docutils.sourceforge.net/rst.html + +Diese Seite beschäftigt sich mit der Technik, die die +`Oekonux-Community`_ nutzt. Ausgelöst wurde dies durch einen `Thread +zum Thema +<http://www.oekonux.de/projekt/liste/archive/msg03333.html>`_ auf der +`Projekt-Liste`_, die sich um die Organisation des Projekts kümmert. + +.. _Oekonux-Community: http://www.oekonux.de/ +.. _Projekt-Liste: http://www.oekonux.de/projekt/liste/ + +Überblick +========= + +Die Oekonux-Community nutzt derzeit die folgenden technischen +Einrichtungen: + +* `Mailing-Listen`_ + +* `Web-Sites`_ + +* OpenTheory_ + +* `News-Groups`_ + +* Wiki_ + +Weitere Einrichtungen wie IRC werden nach meiner Kenntnis derzeit +nicht genutzt. + +Mailing-Listen +============== + +Existierende Listen +~~~~~~~~~~~~~~~~~~~ + +Folgende Listen existieren: + +* ``liste AT oekonux DOT de`` + +* ``list-en AT oekonux DOT org`` + +* ``projekt AT oekonux DOT de`` + +* ``chat AT oekonux DOT de`` + +* ``mitglieder AT oekonux DOT de`` + +* ``helfer AT oekonux-konferenz DOT de`` + +* ``referenten AT oekonux-konferenz DOT de`` + +Für alle Mailing-Listen existieren Archive_, die auf der Web-Site +stehen, zu deren Domain sie gehören. + +Hosting +~~~~~~~ + +Außer ``liste AT oekonux DOT de`` werden alle Mailing-Listen bei +StefanMn gehostet. Für diese sind POP-Boxen eingerichtet, die +regelmäßig gepollt werden. Diese Mailing-Listen werden von einem +Majordomo_ betreut. + +.. _Majordomo: http://www.greatcircle.com/majordomo/ + +.. important:: Da Majordomo_ keine völlig Freie Software ist, gab es + den Vorschlag eine Alternative zu benutzen. Vorschläge waren Sympa + oder SmartList. Mit einer ganz neuen Lösung würde vermutlich + MailMan_ zum Einsatz kommen. + +``liste AT oekonux DOT de`` wird aus historischen Gründen von buug_ +gehostet. Dort kommt seit einiger Zeit MailMan_ als +Verwaltungs-Software zum Einsatz. + +.. _buug: http://post.openoffice.de/ + +.. _MailMan: http://www.list.org/ + +.. important:: In einer integrierten Lösung mit einem dedizierten + Server könnten und sollten auch die Mailing-Listen auf diesem + Server gehostet werden. + +Features +~~~~~~~~ + +Spam-Schutz +----------- + +Mail an sämtliche Mailing-Listen wird über einen SpamAssassin_ +geleitet. Dies ist absolut unverzichtbar, da die Adressen der +Mailing-Listen mittlerweile sehr weit verbreitet sind. Die +SpamAssassin-Installation benötigt gelegentliche Wartung um gegen die +neuesten Ideen der SpammerInnen gewappnet zu sein. + +.. _SpamAssassin: http://www.spamassassin.org/ + +Web-Sites +========= + +Hosting +~~~~~~~ + +Provider +-------- + +Im Moment bezahlt der `e.V.`_ bei `1&1`_ ein `Premium-Paket +<http://hosting.1und1.de/xml/static?__page=premium>`_. + +.. _e.V.: http://www.oekonux.de/projekt/verein/ + +.. _1&1: http://hosting.1und1.de/ + +Die Möglichkeiten dieses Pakets treffen nicht ganz die Bedürfnisse. +Einerseits beinhaltet es ungenutzte Features (z.B. Datenbank, +in2site_), andererseits fehlen erwünschte Features (Möglichkeit für +lokale Suchmaschine, die auf dem Server den Index erstellt). + +.. important:: Es gibt ein `Angebot + <http://www.oekonux.de/projekt/liste/archive/msg03128.html>`_ von + Hostsharing_ e.G., die das Hosting übernehmen könnten. + +.. _Hostsharing: http://www.hostsharing.net/ + +Die Audio-Dateien, die vor allem bei den Konferenzen aufgezeichnet +worden sind, liegen wegen ihrer Größe auf anderen Servern. + +Mit Ressourcen aus dem `OpenTheory-Projekt`_ wird im Vorfeld der +Konferenz das Programm der Konferenz online erstellt und präsentiert. + +.. _OpenTheory-Projekt: http://www.opentheory.org/ + +.. important:: Es gibt Überlegungen, alle von der Oekonux-Community + genutzten Ressourcen zu zentralisieren. Dazu würde vermutlich ein + dedizierter Server benötigt. + +.. important:: Als weiterer Hoster käme das `Individual Network + Berlin`_ in Frage. + + `vLinux.de`_ oder server4you_ könnten weitere, vor allem preisgünstige + Alternative sein. + +.. _Individual Network Berlin: http://www.in-berlin.de/ + +.. _vLinux.de: http://vlinux.de/ + +.. _server4you: http://www.server4you.de/de/v/ + +.. important:: Holger hat sich grundsätzlich bereit erklärt, einen + dedizierten Server zu betreuen. + +Domains +------- + +Die fünf Domains, die auf den Verein laufen, sind: + +* ``oekonux.de`` + + Unter ``www`` liegt hier die deutsche Hauptseite des Projekts. + +* ``oekonux.org`` + + Unter ``www`` liegt hier die internationale Hauptseite des Projekts. + +* ``oekonux-konferenz.de`` + + Die deutsche Domain für alles rund um die Oekonux-Konferenzen. + + - ``www`` + + Einstiegsseite für die jeweils aktuelle Konferenz. + + - ``erste``, ``zweite``, ``dritte`` + + Einstiegsseiten für die jeweilige spezifische Konferenz. + +* ``oekonux-konferenz.org``, ``oekonux-conference.org`` + + Die internationalen Domains für alles rund um die + Oekonux-Konferenzen. + + - ``www`` + + Einstiegsseite für die jeweils aktuelle Konferenz. + + - ``second``, ``third`` + + Einstiegsseiten für die jeweilige spezifische Konferenz. + + .. important:: ``oekonux-konferenz.org`` kann wahrscheinlich + mittelfristig entfallen. + +Weitere Domains waren vor der Übernahme durch den `e.V.`_ vorhanden, +diese sind aber zurück gegeben worden. + +Features +~~~~~~~~ + +Web-Space +--------- + +Derzeit sind in allen vier Web-Präsenzen insgesamt knapp 200MB von ca. +17000 Files belegt. Die extern gehosteten Audio-Files umfassen ca. +1GB. + +Traffic +------- + +Derzeit generieren die Web-Sites ca. 2GB Traffic pro Monat. + +Formulare +--------- + +Die von `1&1`_ angebotenen so genannten Web-Elements werden im Vorfeld +einer Konferenz für Anmeldungsformulare verwendet. + +Weitere Formulare werden nicht genutzt. + +Mail-Adressen +------------- + +Derzeit verteilen sich rund 80 Mail-Adressen auf die verschiedenen +Domains_. Nur ein Teil von ihnen ist als POP-Box realisiert - +insbesondere die Adressen, die für die `Mailing-Listen`_ verwendet +werden. Weitere Mail-Adressen sind als Alias eingerichtet. + +Neben den funktionsbezogenen Mail-Adressen gibt es derzeit lediglich +eine persönliche Mail-Adresse in den Domains_. Grundsätzlich können +weitere private Mail-Adressen vergeben werden. Vor langer Zeit wurde +beschlossen, dass der Nachname der Person in der Mail-Adresse +enthalten sein muss. + +Generierung und Upload +---------------------- + +Derzeit werden alle Inhalte von StefanMn u.a. aus SDF-Quellen auf +seinem privaten Rechner generiert und per FTP auf die Web-Sites +geladen. Das Ganze ist in eine ``make``\ -basierte Automatisierung +eingebettet. + +.. important:: Die Quellen für die statischen Anteile der jetzigen + Lösung sind vor Ewigkeiten mal in ein CVS-Repository gestellt + worden. Allerdings hat sich niemensch jemals dafür interessiert - + geschweige denn Hilfe angeboten. + + Es wäre aber grundsätzlich gut, wenn eine neue Lösung für die + Web-Sites mittels CVS (oder Subversion) zugänglich wäre. Damit + könnten viele Leute an der Site arbeiten. + + StefanMn hätte gerne, dass die Quellen der Web-Seiten mittels einem + ASCII-nahen Format - möglichst reStructuredText_ - erstellt werden + könnten. Er würde (auch) dafür einen Konverter vom jetzigen Format + zur Verfügung stellen. + +Statische Seiten +---------------- + +Praktisch sämtliche Seiten in den Oekonux-Domains sind statische +HTML-Seiten ohne jegliches JavaScript oder andere aktive Elemente. Sie +sind damit + +* für *alle* Browser zugänglich + +* wird für alle Zeiten lesbar sein + +* kein Sicherheitsproblem für den Server + +* stabile URLs ohne Variablen + + Viele Suchmaschinen ignorieren Links mit ``?``. + +* bedürfen keinerlei Wartung + +* freundlich für externe Suchmaschinen + + Zwar werden für die Navigation Frames eingesetzt, es gibt jedoch + immer einen ``<noframes>``\ -Bereich, der die entsprechenden Links + enthält. + +* mit Tools wie z.B. ``wget`` komplett und problemlos zu saugen + +* funktioniert mit jedem Web-Hosting-Angebot + +Privacy +------- + +`1&1`_ stellt praktisch in allen Tarifen die Log-Files des Web-Servers +zur Verfügung. Darin sind die Zugriffe auf die einzelnen Domains +unterschieden. Diese Logs werden ausgewertet und ohne die zugreifenden +IP-Adressen und weitere, tendenziell Privacy-gefährdende Details auf +den Web-Seiten zur Verfügung gestellt. + +.. important:: Wie StefanMn in einer `Mail an [pox] + <http://www.oekonux.de/projekt/liste/archive/msg02683.html>`_ + vorgeschlagen hat, sollte die Privacy-Policy auf den Web-Sites + veröffentlicht sein. + + Insbesondere sollte klar gemacht werden, dass in2site_ **nicht** + verwendet wird. + +.. _in2site: http://www.in2site.de/ + +Navigation +---------- + +Die Navigation wird mit Hilfe von Frames realisiert. Ein schmaler +Frame auf der linken Seite ist einem File-Browser nachempfunden. Er +zeigt ständig die aktuelle Position innerhalb der Site an. Der rechte +Frame enthält den angewählten Inhalt. Wird in der Navigation ein +Verzeichnis angewählt, so erscheint im Inhalts-Frame stets +``default.html``. + +Außerdem hat jede Third-Level-Domain eine eigene Sitemap. +Links auf allen Seiten werden von QBullets_ gefolgt, die grob den Typ +des Links angeben. + +.. _QBullets: http://www.matterform.com/qbullets/ + +Lokale Suchmaschine +------------------- + +Mittels FreeFind_ wurde auf ``www.oekonux.de`` eine lokale, +kostenlose, durch Werbung finanzierte Suchmaschine eingerichtet. + +.. _FreeFind: http://www.freefind.com/ + +.. important:: Nachdem das Größenlimit für kostenlosen Service im + 2003-05 bereits zum zweiten Mal überschritten wurde, indexiert + diese Suchmaschine seit einiger Zeit nicht mehr die gesamte Site. + + Eine lokale Suchmaschine wie `Perlfect Search`_ scheitert daran, + dass im derzeitigen Tarif einem Prozess zu wenig Rechenzeit zur + Verfügung steht um die Site zu indexieren. + + Es besteht Handlungsbedarf. + +.. _Perlfect Search: http://perlfect.com/freescripts/search/ + +RSS-Feed +-------- + +.. important:: Es wäre nett, einen RSS-Feed auf einem eigenen Server + zu haben. + +Datenbanken +----------- + +.. important:: Derzeit werden Datenbanken nicht genutzt, aber es wäre + sinnvoll, diese Option bei einer neuen Lösung zu haben. + (vorzugsweise mySGL). + +Apache +------ + +.. important:: Eine neue Hosting-Lösung sollte uns in möglichst großem + Umfang Zugang zum Web-Server geben. + +Inhalte +~~~~~~~ + +Allgemeines +----------- + +.. important:: Generell werden die Sites nicht sehr intensiv gepflegt. + Dies ist nicht gut. + +.. important:: Insbesondere wäre es super, wenn die internationale + Site mehr von den Inhalten der deutschen Site hätte. Besonders + wünschenswert wäre es, wenn die `Oekonux-Links`_ auf Englisch + verfügbar wären. + +Archive +------- + +Sämtliche `Mailing-Listen`_ des Projekts werden auf den Web-Sites +archiviert. Die Mails werden bei Eingang bei StefanMn mittels MHonArc_ +in HTML konvertiert und automatisch hochgeladen. + +.. _MHonArc: http://www.mhonarc.org/ + +Die HTML-Seiten für die Mails werden noch gefiltert. Momentan werden + +* Kommentare von MHonArc_ entfernt + +* Telefon-Nummern + +* Einzelne Personen, die sich zu spät entschieden haben, dass sie + nicht per Google bei Oekonux gefunden werden wollen + +* Alle URLs, die auf Mail-Adressen verweisen + +* Mail-Adressen werden unkenntlich gemacht + +.. important:: Weiter werden ASCII-Äquivalente der Archive in Paketen + zu 40 Stück auf die Web-Site gestellt. Dieses Feature ist obsolet. + +.. important:: Es besteht der Wunsch, die Archive auch im mbox-Format + auf die `Web-Sites`_ zu bringen. Hier muss noch überlegt werden, + was gegen Mail-Adressen-Harvesting getan werden kann. + +Das Löschen aus den Archiven ist ebenfalls weit gehend automatisiert. +Es erfordert aber einen expliziten Aufruf, der die Nummer der +entsprechenden Mail nennt. + +.. important:: Momentan wird die gelöschte Mail nur aus den Indexen + entfernt, sie wird aber *nicht* vom Server gelöscht. Dadurch ist + sie zwar nicht mehr über Indexe oder benachbarte Mails verlinkt, + bleibt aber grundsätzlich zugreifbar. Das muss geändert werden. + +Texte +----- + +Verschiedene Texte des Projekts sind auf den Web-Sites verfügbar. + +Darunter befindet sich eine Einführung, deren Quellen auch für +MagicPoint vorliegen + +Link-Seite +---------- + +Eine wichtige inhaltliche Ressource der Oekonux-Community sind die +`Oekonux-Links`_, in die interessante Links mit einem kurzen Kommentar +aufgenommen werden. Die Seite ist strukturiert. + +.. _Oekonux-Links: http://www.oekonux.de/projekt/links.html + +.. important:: Es wäre sehr gut, wenn jeder der `Oekonux-Links`_ das + Datum bekäme, zu dem er erstellt wurde. Mittlerweile hätte dies + einen gewissen dokumentarischen Wert ("Aha, damals war das also von + Bedeutung"). + + Dies wäre mittels ``cvs annotate`` grundsätzlich auch für schon + vorhandene Links machbar. + +.. important:: Es wäre gut, wenn die Sprache der Site angegeben wäre, + die durch den Link referenziert wird. Dies ist mittels des + HTML-Attributs ``hreflang`` machbar. + +Statistiken +----------- + +Statistiken sowohl über die Nutzung der `Mailing-Listen`_ als auch +über die Nutzung der `Web-Sites`_ werden auf den `Web-Sites`_ zur +Verfügung gestellt. Alle Statistiken werden mit Freien Tools +(webalizer_, mail2clf_, mail2chart_) mindestens einmal wöchentlich von +StefanMn automatisch erstellt und hochgeladen. Die +Web-Site-Statistiken werden einmal monatlich um Referrer-Links +bereinigt, die von Porno-Sites stammen. + +.. _webalizer: http://www.webalizer.org/ + +.. _mail2clf: http://www.merten-home.de/FreeSoftware/mail2clf/ + +.. _mail2chart: http://www.merten-home.de/FreeSoftware/mail2chart/ + +OpenTheory +========== + +Viele Texte aus und rund um das Oekonux-Projekt sind auch im +`OpenTheory-Projekt`_ verfügbar. Einige sind im +`Oekonux-OpenTheory-Projekt`_ zusammen gefasst. + +.. _Oekonux-OpenTheory-Projekt: http://www.opentheory.org/oekonux/ + +Die Texte sind sowohl inhaltlicher als auch organisatorischer Natur. +Insbesondere für die Vorbereitung der Konferenzen wurden +OpenTheory-Projekte angelegt. + +Wiki +==== + +Derzeit nutzt die Oekonux-Community zwei Wiki-Installationen: + +* ``co-forum.de`` + + Wird technisch von Thomas Kalka betreut und auch gehosteten. Es + handelt sich um ein allgemeines Wiki. + +* ``de.wiki.oekonux.org.uk`` + +* ``en.wiki.oekonux.org.uk`` + + Diese beiden Wikis sind neueren Datums und explizit als Oekonux-Wiki + gedacht. Sie werden technisch von Chris Croome betreut und auch + gehostet. + + .. important:: Bislang besteht keine inhaltliche Betreuung. + +News-Groups +=========== + +Seit Ende 2003 werden die Haupt-\ `Mailing-Listen`_ für die Diskussion +auch mittels Gmane_ als Usenet-Newsgroups angeboten: + +.. _Gmane: http://gmane.org/ + +* ``news://news.gmane.org/gmane.politics.oekonux.german`` + + Spiegelt ``liste AT oekonux DOT de``. + +* ``news://news.gmane.org/gmane.politics.oekonux.english`` + + Spiegelt ``list-en AT oekonux DOT org``. + +Die News-Groups sind so eingestellt, das Antworten über die News nicht +möglich sind. + +.. important:: Zum heutigen Zeitpunkt (2004-01-23) enthalten die + News-Group-Archive nur die Mails, die geschrieben wurde, nachdem + das News-Group-Feature hinzu genommen wurde. Nachdem das Problem + der lesbaren Mail-Adressen gelöst wurde, ist es angestrebt, dass + die gesamten Archive in das News-Group-Archiv `importiert + <http://gmane.org/import.php>`_ werden. + +Features +~~~~~~~~ + +Suchmaschine +------------ + +Gmane_ verfügt über eine Suchmaschine, die die entsprechenden +News-Archive durchsuchen. + +.. important:: Zumindest übergangsweise wäre es gut, diese + Suchmaschine direkt über die `Web-Sites`_ zu verlinken oder + anderweitig zu integrieren. + +.. LocalWords: reStructuredText Premium page premium oekonux www org Hoster +.. LocalWords: konferenz conference second third gehosteten MagicPoint Upload +.. LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes +.. LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you +.. LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat +.. LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs +.. LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList +.. LocalWords: MailMan buug SpamAssassin Individual Network vLinux server +.. LocalWords: Repository QBullets annotate hreflang diff --git a/sandbox/xml2rst/tests/real/original/WikiRequirements.rst b/sandbox/xml2rst/tests/real/original/WikiRequirements.rst new file mode 100644 index 000000000..7131f67b6 --- /dev/null +++ b/sandbox/xml2rst/tests/real/original/WikiRequirements.rst @@ -0,0 +1,314 @@ +#FORMAT rst + +================================ +Requirements for an Oekonux Wiki +================================ + +.. contents:: + +.. ############################################################################ +.. ############################################################################ + +============ +Introduction +============ + +In `Project Oekonux`_ there has been a long discussion about setting +up a Wiki for the project. Also several attempts to establish a Wiki +have been made. Most of these discussions took place on |projekt| +which is the organizing body of the project. + +One of the most important questions was which Wiki software to use. +Finally a decision has been made based upon the requirements being +raised. + +The following lists all the requirements which have been found and +lists the alternative solutions for them. One reason for this list is +to document the design decisions / choices taken and their basis in +the requirements. This way it is easier to + +* understand the decisions + +* change decisions while not forgetting about reasons for the original + decision + +.. ############################################################################ +.. ############################################################################ + +============ +Requirements +============ + +Non-functional requirements +=========================== + +1. The software must have an active developer community and must be + Free + + :Rationale: Only an active developer community of a Free Software + project guarantees for a constant development. + + Discussion came down to two candidates which met this requirement: + MediaWiki_ and MoinMoin_. The following requirements list + alternative solutions only for these two Wiki implementations. + +2. The software must be easy to use for people used to Wikipedia + + :Rationale: Because of the overwhelming success of Wikipedia many + people are used to the way how Wikipedia is operated. + + :MediaWiki: Given by definition. + + :MoinMoin: The typical use cases need to be identified and a + special help page must be created for these users. + +.. ############################################################################ + +Functional requirements +======================= + +1. Email notification must be possible sending diffs and other changes + + :Rationale: Email notification is a basic requirement for any + offline processing. + + :MediaWiki: Rumor has it that there is a plug-in for email + notification but nobody saw it yet (2005-03-26). + + :MoinMoin: Supports email notification as diffs for arbitrary pages + and page groups (regular expression). Only notifies on moves and + deletion of pages. + +2. It must be possible to limit changeability of a page (for instance + for user's pages) + + :Rationale: Some pages are private pages or should not be changes + for other reasons. + + :MediaWiki: Don't know whether this can be enforced technically. + + :MoinMoin: Implements access control lists (ACL) allowing for + arbitrary rights. + +3. Categories must be possible + + :Rationale: With categories can form arbitrary non-hierarchical + structures + + :MediaWiki: Available. + + :MoinMoin: Available. + +4. Navigation panels must be available + + :Rationale: Useful to create overviews. + + :MediaWiki: Available. + + :MoinMoin: Available as ``Navigation`` macro for hierarchical + structures and as ``PageList`` macro for structures based logical + expressions on regular expressions over page names. + +5. A version history must be available + + :Rationale: Needed to get an overview of the change history of a + page. + + :MediaWiki: Available. + + :MoinMoin: Available. + +6. List of changes for a given user must be available + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Not available. + +7. A watch list must be possible reporting about the latest changes + for a given set of pages + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Can be simulated by email notification. + +8. Automatic links by using CamelCase (aka WikiWords) must not be the + default + + :Rationale: CamelCase makes sense only in certain language. In + particular German is a language where automatic CamelCase links + are not too useful. + + :MediaWiki: CamelCase words never create automatic links. + + :MoinMoin: The |NoCamelCase| plug-in makes this the default. + +9. Support for other than the standard Wiki syntaxes like + reStructuredText_ must be available + + :Rationale: All Wiki languages suck so support for more sane + syntaxes is a very useful thing. In particular support for + reStructuredText_ being a powerful language and a good candidate + for a standard ASCII based markup language. + + :MediaWiki: There is no support for any other syntax than the + MediaWiki syntax. + + :MoinMoin: Offers several syntaxes by the concept of parsers. Among + the available syntaxes are reStructuredText_ and LaTeX_. + +10. Arbitrary attachments must be possible + + :Rationale: Nice to have to attach arbitrary data to a page. In + particular it makes possible to include material not marked up in + the Wiki syntax. + + :MediaWiki: Unknown but probably available. + + :MoinMoin: Available. + +11. Shortcuts for links must be available + + :Rationale: In particular it is useful to be able to reference + entries in the Oekonux mailing list archive as easy as possible. + + :MediaWiki: Implements this by templates. + + :MoinMoin: Implements by InterWiki links. + +12. Page templates must be available + + :Rationale: Page templates are a good way to support policy + decisions by offering standard templates for all page types. + + :MediaWiki: Not available. + + :MoinMoin: Available. + +13. It must be possible to revert page changes + + :Rationale: Useful to undo unwanted changes. + + :MediaWiki: Available. + + :MoinMoin: Available. + +14. It must be possible to know who did a change in a page + + :Rationale: Nice to have. + + :MediaWiki: Available. + + :MoinMoin: Available. + +15. Offline usage must be possible as far as possible + + :Rationale: Not everyone is always online so offline facilities are + generally useful. Offline usage includes + + * a push feature for change notification + + * browsing + + * editing + + :MediaWiki: Not available. At most email notification is available. + + :MoinMoin: Email notification allows for monitoring changes and in + principle the diffs can be used to update a local copy. A local + installation of MoinMoin_ only needs Python and MoinMoin_ so it + is easy to accomplish. Because MoinMoin_ uses a file based + storage scheme it is at least easy to update a local copy in + short online phases for offline use so at least offline browsing + is available. + +16. Pages must be locked during they are edited + + :Rationale: Page locking prevents parallel editing of a page which + is useful in a highly frequented Wiki. + + :MediaWiki: Not available. + + :MoinMoin: Editing a page locks it for 10 minutes and the lock can + be renewed. + +17. It must be possible to edit sections of a page + + :Rationale: Makes parallel editing of a page less dangerous which + is useful in a highly frequented Wiki. + + :MediaWiki: Available. + + :MoinMoin: Not available. + +.. ############################################################################ + +Requirements for policy choices +=============================== + +1. Pages standing in a certain close relation to a certain other page + must be possible in a sane way + + :Rationale: There are several ways in which a page can have closely + related pages (e.g. discussion pages). It makes sense to have a + uniform way to express this relation. + + :MediaWiki: Implements discussion pages as one a special type of + closely related pages by suffixing ``Discussion`` to the + namespace of a page. For other closely related pages there is no + fixed implementation. + + :MoinMoin: By making sub-pages possible all types of closely + related pages can be implemented by some fixed names being part + of a policy and supported by page templates. + +2. Structuring of content must be possible by a page hierarchy + + :Rationale: The maintenance policy may decide to have a page + hierarchy as a structuring principle. + + :MediaWiki: Implements a top level structure by namespaces and + allows for structuring otherwise. + + :MoinMoin: With sub-pages arbitrary hierarchies can be build on any + level. + +3. Sub-Wikis must be possible + + :Rationale: The maintenance policy may decide this makes sense. + + :MediaWiki: Not available. + + :MoinMoin: Could be done in a page hierarchy on any level. + +4. Underscores and white-space in page names must be possible but + insignificant + + :Rationale: If the maintenance policy decides that underscores and + white-space may be used in arbitrary ways the software must be + able to reflect this. + + :MediaWiki: Unknown. + + :MoinMoin: Underscores and white-space is significant. + +.. ############################################################################ +.. ############################################################################ + +.. |projekt| replace:: `the projekt mailing list`_ +.. |NoCamelCase| replace:: NoCamelCase_ + +.. _`Project Oekonux`: http://www.oekonux.de/ +.. _`the projekt mailing list`: http://www.oekonux.de/projekt/liste/ +.. _MediaWiki: http://wikipedia.sourceforge.net/ +.. _MoinMoin: http://moinmoin.wikiwikiweb.de/ +.. _reStructuredText: http://docutils.sourceforge.net/rst.html +.. _LaTeX: http://www.latex-project.org/ +.. _NoCamelCase: http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase + +.. LocalWords: diffs CamelCase InterWiki MoinMoin rst projekt MediaWiki aka +.. LocalWords: Wikipedia PageList WikiWords reStructuredText +.. LocalWords: Wikis NoCamelCase diff --git a/sandbox/xml2rst/tests/real/readable/Machinery.xml b/sandbox/xml2rst/tests/real/readable/Machinery.xml new file mode 100644 index 000000000..cf3c0089c --- /dev/null +++ b/sandbox/xml2rst/tests/real/readable/Machinery.xml @@ -0,0 +1,1410 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/Machinery.rst"> + <paragraph> + #format rst +#language en + </paragraph> + <paragraph> + <reference anonymous="1" name="Discussion" refuri="/Talk"> + Discussion + </reference> + </paragraph> + <target anonymous="1" ids="id1" refuri="/Talk"/> + <topic classes="contents" ids="contents" names="contents"> + <title> + Contents + </title> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id5" refid="overview"> + Overview + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id6" refid="dedicated-oekonux-server"> + Dedicated Oekonux server + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id7" refid="mailing-lists"> + Mailing lists + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id8" refid="existing-lists"> + Existing lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id9" refid="hosting"> + Hosting + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id10" refid="features"> + Features + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id11" refid="spam-protection"> + Spam protection + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id12" refid="web-sites"> + Web sites + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id13" refid="id2"> + Hosting + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id14" refid="provider"> + Provider + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id15" refid="domains"> + Domains + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id16" refid="id3"> + Features + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id17" refid="web-space"> + Web space + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id18" refid="traffic"> + Traffic + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id19" refid="mail-addresses"> + Mail addresses + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id20" refid="generation-and-upload"> + Generation and Upload + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id21" refid="static-pages"> + Static pages + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id22" refid="navigation"> + Navigation + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id23" refid="locale-search-engine"> + Locale search engine + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id24" refid="rss-feed"> + RSS-Feed + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id25" refid="content"> + Content + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id26" refid="general"> + General + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id27" refid="archives"> + Archives + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id28" refid="texts"> + Texts + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id29" refid="link-page"> + Link page + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id30" refid="statistics"> + Statistics + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id31" refid="opentheory"> + OpenTheory + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id32" refid="wiki"> + Wiki + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id33" refid="news-groups"> + News groups + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id34" refid="id4"> + Features + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id35" refid="search-engine"> + Search engine + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <paragraph> + This page describes the machinery used by the + <reference name="Oekonux community" refuri="http://www.oekonux.de/"> + Oekonux community + </reference> + . +This page is motivated by a + <reference name="thread about this topic" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"> + thread about this topic + </reference> + <target ids="thread-about-this-topic" names="thread\ about\ this\ topic" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"/> + on the + + <reference name="project list" refuri="http://www.oekonux.de/projekt/liste/"> + project list + </reference> + , which cares about the organization of the project. + </paragraph> + <paragraph> + The intention of this page is to reflect the current state of the +machinery. It is originally written in German which is available as +the first version of this page. + </paragraph> + <section ids="overview" names="overview"> + <title refid="id5"> + Overview + </title> + <paragraph> + The + <reference name="Oekonux community" refuri="http://www.oekonux.de/"> + Oekonux community + </reference> + currently uses the following technical +facilities: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <reference name="mailing lists" refid="mailing-lists"> + mailing lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="web sites" refid="web-sites"> + web sites + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="OpenTheory" refid="opentheory"> + OpenTheory + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="news groups" refid="news-groups"> + news groups + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="Wiki" refid="wiki"> + Wiki + </reference> + </paragraph> + </list_item> + </bullet_list> + <paragraph> + As far as I know other facilities such as IRC are currently not used. + </paragraph> + <target refid="oekonux-server"/> + </section> + <section ids="dedicated-oekonux-server oekonux-server" names="dedicated\ oekonux\ server oekonux\ server"> + <title refid="id6"> + Dedicated Oekonux server + </title> + <paragraph> + There is a dedicated server for the Oekonux project. Currently this is +a virtual server based on Debian and hosted by + <reference name="VD server" refuri="http://www.vd-server.de/"> + VD server + </reference> + . This +dedicated server is paid by the + <reference name="Projekt Oekonux e.V." refuri="http://www.oekonux.de/projekt/verein/"> + Projekt Oekonux e.V. + </reference> + , a registered +association in Germany. + </paragraph> + <paragraph> + Today the server runs most of the technical infrastructure of the +project. It has a fixed IP address and the DNS entries for the domains +point to this server. The generic address of the server is + + <literal> + server.oekonux.de + </literal> + . + </paragraph> + <paragraph> + The general maintainer of this server is + <problematic ids="id37" refid="id36"> + HolgerWeiss_ + </problematic> + , certain +facilities are maintained mainly by + <problematic ids="id39" refid="id38"> + StefanMerten_ + </problematic> + . + </paragraph> + <paragraph> + In case it is necessary because the project needs more computing +resources a real server could be hosted by + <reference name="Individual Network Berlin" refuri="http://www.in-berlin.de/"> + Individual Network +Berlin + </reference> + . + </paragraph> + </section> + <section ids="mailing-lists" names="mailing\ lists"> + <title refid="id7"> + Mailing lists + </title> + <section ids="existing-lists" names="existing\ lists"> + <title refid="id8"> + Existing lists + </title> + <paragraph> + The following lists exist: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + liste AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + list-en AT oekonux DOT org + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + projekt AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + chat AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + mitglieder AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + helfer AT oekonux-konferenz DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + referenten AT oekonux-konferenz DOT de + </literal> + </paragraph> + </list_item> + </bullet_list> + <paragraph> + For all mailing lists there are + <reference name="archives" refid="archives"> + archives + </reference> + , which are on the web sites +of the domain they belong to. + </paragraph> + </section> + <section dupnames="hosting" ids="hosting"> + <title refid="id9"> + Hosting + </title> + <paragraph> + All mailing lists are hosted on the + <reference name="Oekonux server" refid="oekonux-server"> + Oekonux server + </reference> + . The mailing +lists are all served by a + <reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/"> + Majordomo + </reference> + . + </paragraph> + </section> + <section dupnames="features" ids="features"> + <title refid="id10"> + Features + </title> + <section ids="spam-protection" names="spam\ protection"> + <title refid="id11"> + Spam protection + </title> + <paragraph> + Mail to all mailing lists is routed over a + <reference name="SpamAssassin" refuri="http://www.spamassassin.org/"> + SpamAssassin + </reference> + . This is +indispensable because the addresses of the mailing lists have a wide +distribution. + </paragraph> + <paragraph> + The SpamAssassin installation needs some maintenance once in a while +to be ready for the latest ideas of spammers. This maintenance is done +by + <problematic ids="id41" refid="id40"> + StefanMerten_ + </problematic> + . + </paragraph> + <paragraph> + Unfortunately the spam filtering does not catch all spam :-( . +Therefore the mailing lists have been closed so only subscribers can +post to the list unmoderated. The bounces of spam and legitimate mail +from non-subscribers are handled by + <problematic ids="id43" refid="id42"> + StefanMerten_ + </problematic> + . All other tasks +necessary for keeping the mailing lists running are also handled by + + <problematic ids="id45" refid="id44"> + StefanMerten_ + </problematic> + . + </paragraph> + </section> + </section> + </section> + <section ids="web-sites" names="web\ sites"> + <title refid="id12"> + Web sites + </title> + <section dupnames="hosting" ids="id2"> + <title refid="id13"> + Hosting + </title> + <section ids="provider" names="provider"> + <title refid="id14"> + Provider + </title> + <paragraph> + There is no special provider for the web sites. All web sites are +hosted on the + <reference name="Oekonux server" refid="oekonux-server"> + Oekonux server + </reference> + . + </paragraph> + <paragraph> + Because of their size the audio files which mainly have been recorded +during the conferences are kept on web space donated by various +people. + </paragraph> + <paragraph> + Before conferences resources of the + <reference name="OpenTheory project" refuri="http://www.opentheory.org/"> + OpenTheory project + </reference> + are used +for online creation and presentation of the program of the conference. + </paragraph> + </section> + <section ids="domains" names="domains"> + <title refid="id15"> + Domains + </title> + <paragraph> + There are four domains for which the + <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/"> + e.V. + </reference> + is the owner: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + oekonux.de + </literal> + </paragraph> + <paragraph> + Under + <literal> + www + </literal> + the German main page of the project can be found. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux.org + </literal> + </paragraph> + <paragraph> + Under + <literal> + www + </literal> + the international main page of the project can be +found. + </paragraph> + <paragraph> + Also the Wikis are all hosted here: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + en.wiki + </literal> + </paragraph> + <paragraph> + The English language Wiki. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + de.wiki + </literal> + </paragraph> + <paragraph> + The German language Wiki. + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux-konferenz.de + </literal> + </paragraph> + <paragraph> + The German domain for everything around the Oekonux conferences. + </paragraph> + <bullet_list bullet="-"> + <list_item> + <paragraph> + <literal> + www + </literal> + </paragraph> + <paragraph> + Entry point for the most recent conference. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + erste + </literal> + , + <literal> + zweite + </literal> + , + <literal> + dritte + </literal> + </paragraph> + <paragraph> + Entry points for the respective conference. + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux-conference.org + </literal> + </paragraph> + <paragraph> + The international domains for everything around the Oekonux +conferences. + </paragraph> + <bullet_list bullet="-"> + <list_item> + <paragraph> + <literal> + www + </literal> + </paragraph> + <paragraph> + Entry point for the most recent conference. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + second + </literal> + , + <literal> + third + </literal> + </paragraph> + <paragraph> + Entry points for the respective conference. + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + <paragraph> + More domains were present before the + <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/"> + e.V. + </reference> + took them over but they +have been abandoned. + </paragraph> + </section> + </section> + <section dupnames="features" ids="id3"> + <title refid="id16"> + Features + </title> + <section ids="web-space" names="web\ space"> + <title refid="id17"> + Web space + </title> + <paragraph> + The audio files hosted externally sum up to about 4GB. + </paragraph> + </section> + <section ids="traffic" names="traffic"> + <title refid="id18"> + Traffic + </title> + <comment xml:space="preserve"> + $$$ + </comment> + <paragraph> + There are statistics about the + <reference name="network traffic" refuri="http://traffic.oekonux.de/"> + network traffic + </reference> + <target ids="network-traffic" names="network\ traffic" refuri="http://traffic.oekonux.de/"/> + and the + <problematic ids="id47" refid="id46"> + `page hits +http://www.oekonux.de/projekt/statistik/website/`_ + </problematic> + . + </paragraph> + </section> + <section ids="mail-addresses" names="mail\ addresses"> + <title refid="id19"> + Mail addresses + </title> + <paragraph> + All domains support a couple of mail addresses. They are mainly used +for the + <reference name="mailing lists" refid="mailing-lists"> + mailing lists + </reference> + . + </paragraph> + <paragraph> + Besides the functional mail addresses there is only one private mail +address. Generally it is possible to create more private mail +addresses. Such private mail address must contain the family name of +the person. + </paragraph> + </section> + <section ids="generation-and-upload" names="generation\ and\ upload"> + <title refid="id20"> + Generation and Upload + </title> + <paragraph> + At the moment all content of the web sites is generated by + + <problematic ids="id49" refid="id48"> + StefanMerten_ + </problematic> + on his private computer and uploaded onto the server. +Among other facilities the SDF format is used and the whole thing is +embedded in a + <literal> + make + </literal> + based automation. + </paragraph> + <important> + <paragraph> + The sources for the static pages have been brought to a +CVS repository eons ago. However, this has not been used. + </paragraph> + <paragraph> + In general it would be good if a new solution for the web sites +would be available by CVS. With this many people could work on the +site. + </paragraph> + <paragraph> + <problematic ids="id51" refid="id50"> + StefanMerten_ + </problematic> + would appreciate that the sources of the web pages +are created in a format close to ASCII - at best + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + . +He is ready to provide a converter from the current format. + </paragraph> + </important> + </section> + <section ids="static-pages" names="static\ pages"> + <title refid="id21"> + Static pages + </title> + <paragraph> + Apart from the Wiki pages nearly all pages in the Oekonux domains are +static HTML pages without any JavaScript or other active elements. By +this they are + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + usable by + <emphasis> + all + </emphasis> + browsers + </paragraph> + </list_item> + <list_item> + <paragraph> + readable for all times + </paragraph> + </list_item> + <list_item> + <paragraph> + no security risk for the server + </paragraph> + </list_item> + <list_item> + <paragraph> + stable URLs without variable parts + </paragraph> + <paragraph> + Many search engines ignore links containing a + <literal> + ? + </literal> + . + </paragraph> + </list_item> + <list_item> + <paragraph> + need no maintenance + </paragraph> + </list_item> + <list_item> + <paragraph> + friendly to external search engines + </paragraph> + <paragraph> + Though navigation is done by frames there is always a + <literal> + <noframes> + </literal> + +section which contains the links. + </paragraph> + </list_item> + <list_item> + <paragraph> + can be downloaded with tools like + <literal> + wget + </literal> + completely and without +problems + </paragraph> + </list_item> + <list_item> + <paragraph> + works with every web hosting offer + </paragraph> + </list_item> + </bullet_list> + </section> + <section ids="navigation" names="navigation"> + <title refid="id22"> + Navigation + </title> + <paragraph> + Navigation is realized with frames. A narrow frame on the left is +modeled after a file browser. It permanently presents the current +position in the site. The right frame contains the selected content. +If a directory is selected in the navigation the content frame + + <literal> + default.html + </literal> + always appears. + </paragraph> + <paragraph> + Apart from this each third level domain has a separate site map. + </paragraph> + <paragraph> + Links in all pages are followed by + <reference name="QBullets" refuri="http://www.matterform.com/qbullets/"> + QBullets + </reference> + which roughly give the +type of the link. + </paragraph> + </section> + <section ids="locale-search-engine" names="locale\ search\ engine"> + <title refid="id23"> + Locale search engine + </title> + <comment xml:space="preserve"> + $$$ Link ht://dig + </comment> + <paragraph> + Currently the local search engine is replaced by a ht://dig based +solution. + </paragraph> + </section> + <section ids="rss-feed" names="rss-feed"> + <title refid="id24"> + RSS-Feed + </title> + <important> + <paragraph> + There is no RSS feed yet but it would be nice to have +one. + </paragraph> + </important> + </section> + </section> + <section ids="content" names="content"> + <title refid="id25"> + Content + </title> + <section ids="general" names="general"> + <title refid="id26"> + General + </title> + <important> + <paragraph> + In general the sites are not maintained really. This is +bad. + </paragraph> + </important> + <important> + <paragraph> + In particular it would be good if the international +site would have more of the content of the German site. +Particularly it would be good to have the + <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux links + </reference> + in +English. Also the structure of the project should be presented on +the international site. + </paragraph> + </important> + </section> + <section ids="archives" names="archives"> + <title refid="id27"> + Archives + </title> + <paragraph> + All + <reference name="mailing lists" refid="mailing-lists"> + mailing lists + </reference> + of the project are archived on the web sites. + + <problematic ids="id53" refid="id52"> + StefanMerten_ + </problematic> + converts the incoming mails to HTML by + <reference name="MHonArc" refuri="http://www.mhonarc.org/"> + MHonArc + </reference> + and +uploaded automatically. + </paragraph> + <paragraph> + HTML pages for the archives are filtered. At the moment + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + comments of + <reference name="MHonArc" refuri="http://www.mhonarc.org/"> + MHonArc + </reference> + are removed + </paragraph> + </list_item> + <list_item> + <paragraph> + phone numbers are replaced by a fixed text + </paragraph> + </list_item> + <list_item> + <paragraph> + names of certain people who decided to late that they not want to be +found in Oekonux by Google are shortened + </paragraph> + </list_item> + <list_item> + <paragraph> + all URLs pointing to mail addresses are obfuscated a bit + </paragraph> + </list_item> + <list_item> + <paragraph> + mail addresses are obfuscated + </paragraph> + </list_item> + </bullet_list> + <important> + <paragraph> + There is a request to have the archives on the + <reference name="web sites" refid="web-sites"> + web +sites + </reference> + in mbox format. For this it must be clarified what can be +done against mail address harvesting. + </paragraph> + </important> + <paragraph> + Removal of archived pages is also widely automated. However, it needs +an explicit call with the number of the mail to remove. + </paragraph> + <important> + <paragraph> + Right now the removed mail is removed only from the +indexes but + <emphasis> + not + </emphasis> + from the server. By this it is no longer +reachable by neighboring mails or an index but the are generally +accessible. This must be changed. + </paragraph> + </important> + </section> + <section ids="texts" names="texts"> + <title refid="id28"> + Texts + </title> + <paragraph> + Several texts of the project are available on the + <reference name="web sites" refid="web-sites"> + web sites + </reference> + . + </paragraph> + <paragraph> + Among them is an introduction for which MagicPoint sources are +available. + </paragraph> + </section> + <section ids="link-page" names="link\ page"> + <title refid="id29"> + Link page + </title> + <paragraph> + One of the most important content resources of the + <reference name="Oekonux community" refuri="http://www.oekonux.de/"> + Oekonux +community + </reference> + are the + <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux links + </reference> + , where interesting links are +entered with a short comment. The page is structured. + </paragraph> + <important> + <paragraph> + It would be good if each of the + <reference name="Oekonux links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux links + </reference> + would +get a creation date. Meanwhile this would have some historical +value. + </paragraph> + <paragraph> + In general for existing links this would be possible by + <literal> + cvs +annotate + </literal> + . + </paragraph> + </important> + <important> + <paragraph> + It would be useful if the language of the page behind +the link would be given. This can be done by the HTML attribute + + <literal> + hreflang + </literal> + . + </paragraph> + </important> + </section> + <section ids="statistics" names="statistics"> + <title refid="id30"> + Statistics + </title> + <paragraph> + Statistics are available about the usage of the + <reference name="mailing lists" refid="mailing-lists"> + mailing lists + </reference> + as +well as about the + <reference name="web sites" refid="web-sites"> + web sites + </reference> + usage on the + <reference name="web sites" refid="web-sites"> + web sites + </reference> + . All +statistics are created weekly by some Free Software ( + <reference name="webalizer" refuri="http://www.webalizer.org/"> + webalizer + </reference> + , + + <reference name="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"> + mail2clf + </reference> + , + <reference name="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"> + mail2chart + </reference> + ) automatically by + <problematic ids="id55" refid="id54"> + StefanMerten_ + </problematic> + and uploaded. + </paragraph> + </section> + </section> + </section> + <section ids="opentheory" names="opentheory"> + <title refid="id31"> + OpenTheory + </title> + <paragraph> + Many texts from the project and from its environment are available in +the + <reference name="OpenTheory project" refuri="http://www.opentheory.org/"> + OpenTheory project + </reference> + . Some of them are gathered in the + <reference name="Oekonux OpenTheory project" refuri="http://www.opentheory.org/oekonux/"> + Oekonux +OpenTheory project + </reference> + . + </paragraph> + <paragraph> + The texts are about Oekonux content as well as for organizational +purposes. In particular the conference preparation has been done +there. + </paragraph> + </section> + <section ids="wiki" names="wiki"> + <title refid="id32"> + Wiki + </title> + <paragraph> + Currently there are two Oekonux Wikis at + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <reference refuri="http://en.wiki.oekonux.org/"> + http://en.wiki.oekonux.org/ + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference refuri="http://de.wiki.oekonux.org/"> + http://de.wiki.oekonux.org/ + </reference> + </paragraph> + </list_item> + </bullet_list> + <paragraph> + They are based on the + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + Wiki engine. + </paragraph> + <paragraph> + The content is maintained by a group of maintainers ( + <reference name="English" refuri="http://en.wiki.oekonux.org/MaintainerGroup"> + English + </reference> + <target ids="english" names="english" refuri="http://en.wiki.oekonux.org/MaintainerGroup"/> + , + <reference name="German" refuri="http://de.wiki.oekonux.org/MaintainerGruppe"> + German + </reference> + <target ids="german" names="german" refuri="http://de.wiki.oekonux.org/MaintainerGruppe"/> + . The technical part +of the Wikis is maintained by + <problematic ids="id57" refid="id56"> + StefanMerten_ + </problematic> + . + </paragraph> + </section> + <section ids="news-groups" names="news\ groups"> + <title refid="id33"> + News groups + </title> + <paragraph> + Since end of 2003 the main discussion + <reference name="mailing lists" refid="mailing-lists"> + mailing lists + </reference> + are available +through + <reference name="Gmane" refuri="http://gmane.org/"> + Gmane + </reference> + as Usenet newsgroups: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <reference refuri="news://news.gmane.org/gmane.politics.oekonux.german"> + news://news.gmane.org/gmane.politics.oekonux.german + </reference> + </paragraph> + <paragraph> + Mirrors + <literal> + liste AT oekonux DOT de + </literal> + . + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference refuri="news://news.gmane.org/gmane.politics.oekonux.english"> + news://news.gmane.org/gmane.politics.oekonux.english + </reference> + </paragraph> + <paragraph> + Mirrors + <literal> + list-en AT oekonux DOT org + </literal> + . + </paragraph> + </list_item> + </bullet_list> + <paragraph> + The newsgroups are configured in a way replies by news are not +possible. + </paragraph> + <important> + <paragraph> + For now the newsgroup archives contain only those mails +written after the newsgroup feature was in place. After the problem +of readable mail addresses has been solved the whole archive shall +be + <reference name="brought" refuri="http://gmane.org/import.php"> + brought + </reference> + <target ids="brought" names="brought" refuri="http://gmane.org/import.php"/> + to the newsgroup archive + </paragraph> + </important> + <section dupnames="features" ids="id4"> + <title refid="id34"> + Features + </title> + <section ids="search-engine" names="search\ engine"> + <title refid="id35"> + Search engine + </title> + <paragraph> + <reference name="Gmane" refuri="http://gmane.org/"> + Gmane + </reference> + has a search engine which searches the newsgroups. + </paragraph> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/> + <target ids="oekonux-community" names="oekonux\ community" refuri="http://www.oekonux.de/"/> + <target ids="project-list" names="project\ list" refuri="http://www.oekonux.de/projekt/liste/"/> + <target ids="majordomo" names="majordomo" refuri="http://www.greatcircle.com/majordomo/"/> + <target ids="spamassassin" names="spamassassin" refuri="http://www.spamassassin.org/"/> + <target refid="projekt-oekonux-e-v"/> + <target ids="e-v projekt-oekonux-e-v" names="e.v. projekt\ oekonux\ e.v." refuri="http://www.oekonux.de/projekt/verein/"/> + <target ids="opentheory-project" names="opentheory\ project" refuri="http://www.opentheory.org/"/> + <target ids="individual-network-berlin" names="individual\ network\ berlin" refuri="http://www.in-berlin.de/"/> + <target ids="qbullets" names="qbullets" refuri="http://www.matterform.com/qbullets/"/> + <target ids="mhonarc" names="mhonarc" refuri="http://www.mhonarc.org/"/> + <target ids="oekonux-links" names="oekonux\ links" refuri="http://www.oekonux.de/projekt/links.html"/> + <target ids="webalizer" names="webalizer" refuri="http://www.webalizer.org/"/> + <target ids="mail2clf" names="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"/> + <target ids="mail2chart" names="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"/> + <target ids="oekonux-opentheory-project" names="oekonux\ opentheory\ project" refuri="http://www.opentheory.org/oekonux/"/> + <target ids="gmane" names="gmane" refuri="http://gmane.org/"/> + <target ids="vd-server" names="vd\ server" refuri="http://www.vd-server.de/"/> + <target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + LocalWords: reStructuredText Premium page premium oekonux www org Hoster + </comment> + <comment xml:space="preserve"> + LocalWords: konferenz conference second third gehosteten MagicPoint Upload + </comment> + <comment xml:space="preserve"> + LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes + </comment> + <comment xml:space="preserve"> + LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you + </comment> + <comment xml:space="preserve"> + LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat + </comment> + <comment xml:space="preserve"> + LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs + </comment> + <comment xml:space="preserve"> + LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList rst + </comment> + <comment xml:space="preserve"> + LocalWords: MailMan buug SpamAssassin Individual Network vLinux server IRC + </comment> + <comment xml:space="preserve"> + LocalWords: Repository QBullets annotate hreflang OpenTheory Debian VD DNS + </comment> + <comment xml:space="preserve"> + LocalWords: HolgerWeiss StefanMerten mitglieder erste zweite dritte RSS + </comment> + <comment xml:space="preserve"> + LocalWords: MoinMoin + </comment> + </section> + </section> + </section> + <section classes="system-messages"> + <title> + Docutils System Messages + </title> + <system_message backrefs="id37" ids="id36" level="3" line="52" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "holgerweiss". + </paragraph> + </system_message> + <system_message backrefs="id39" ids="id38" level="3" line="52" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id41" ids="id40" level="3" line="100" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id43" ids="id42" level="3" line="104" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id45" ids="id44" level="3" line="104" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id47" ids="id46" level="3" line="195" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "page hits http://www.oekonux.de/projekt/statistik/website/". + </paragraph> + </system_message> + <system_message backrefs="id49" ids="id48" level="3" line="213" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id51" ids="id50" level="3" line="225" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id53" ids="id52" level="3" line="304" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id55" ids="id54" level="3" line="362" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + <system_message backrefs="id57" ids="id56" level="3" line="389" source="original/Machinery.rst" type="ERROR"> + <paragraph> + Unknown target name: "stefanmerten". + </paragraph> + </system_message> + </section> +</document> diff --git a/sandbox/xml2rst/tests/real/readable/MediaWikiFAQ.xml b/sandbox/xml2rst/tests/real/readable/MediaWikiFAQ.xml new file mode 100644 index 000000000..17ee89893 --- /dev/null +++ b/sandbox/xml2rst/tests/real/readable/MediaWikiFAQ.xml @@ -0,0 +1,834 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/MediaWikiFAQ.rst"> + <paragraph> + #format rst + </paragraph> + <section ids="faq-for-people-used-to-wikipedia-and-other-mediawiki-wikis" names="faq\ for\ people\ used\ to\ wikipedia\ and\ other\ mediawiki\ wikis"> + <title refid="id14"> + FAQ for people used to Wikipedia and other MediaWiki wikis + </title> + <topic classes="contents" ids="contents" names="contents"> + <title> + Contents + </title> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id14" refid="faq-for-people-used-to-wikipedia-and-other-mediawiki-wikis"> + FAQ for people used to Wikipedia and other MediaWiki wikis + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id15" refid="introduction"> + Introduction + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id16" refid="question-and-answers"> + Question and answers + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id17" refid="of-all-users"> + Of all users + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id18" refid="what-about-the-namespace-concept"> + What about the namespace concept? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id19" refid="what-about-the-users-namespace"> + What about the + <literal> + Users: + </literal> + namespace? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id20" refid="what-about-the-special-namespace"> + What about the + <literal> + Special: + </literal> + namespace? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id21" refid="what-about-the-talk-namespace"> + What about the + <literal> + Talk: + </literal> + namespace? + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id22" refid="of-editors"> + Of editors + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id23" refid="i-m-used-to-mediawiki-syntax-can-i-use-it-in-this-wiki"> + I'm used to + MediaWiki syntax + . Can I use it in this Wiki? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id24" refid="though-i-m-used-to-mediawiki-syntax-i-think-it-sucks-any-alternatives"> + Though I'm used to + MediaWiki syntax + I think it sucks. Any alternatives? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id25" refid="i-tried-to-create-a-new-page-and-ended-up-on-this-page-offering-templates-what-s-this"> + I tried to create a new page and ended up on this page offering templates. What's this? + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id26" refid="page-templates-ok-what-about-the-mediawiki-templates"> + Page templates, ok. What about the + MediaWiki + templates? + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <section ids="introduction" names="introduction"> + <title refid="id15"> + Introduction + </title> + <paragraph> + This page is a FAQ page for users used to Wikipedia and other + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + + <footnote_reference auto="1" ids="id1" refid="id2"> + 1 + </footnote_reference> + wikis. In Project Oekonux we chose + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + because +at the time of the decision there was a slight technological +superiority opening more options for its use. If you are interested in +the reasons you may want to consult the + <reference name="requirements" refuri="Oekonux/Project/Wiki/Requirements_"> + requirements + </reference> + which have been +found then. + </paragraph> + <footnote auto="1" backrefs="id1" ids="id2" names="1"> + <label> + 1 + </label> + <paragraph> + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + is the name of the software used for Wikipedia and +other Wikis. The software running this Wiki is called + + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . + </paragraph> + </footnote> + <paragraph> + However, + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + and it's use is widely known and thus Project +Oekonux strives to make the use of this + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + wiki as easy to + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + users as possible. This FAQ is one attempt to do so. If you +are a + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + user and have questions not covered here feel free to +contact + <reference refuri="mailto:projekt@oekonux.de"> + projekt@oekonux.de + </reference> + . + </paragraph> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + <section ids="question-and-answers" names="question\ and\ answers"> + <title refid="id16"> + Question and answers + </title> + <section ids="of-all-users" names="of\ all\ users"> + <title refid="id17"> + Of all users + </title> + <section ids="what-about-the-namespace-concept" names="what\ about\ the\ namespace\ concept?"> + <title refid="id18"> + What about the namespace concept? + </title> + <paragraph> + Most of the namespaces in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + are nothing else than a +structuring facility establishing structure on a top level. + </paragraph> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + there is no concept of namespaces in the sense of + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + . However, there is the concept of + <reference name="sub pages" refuri="HelpOnEditing/SubPages_"> + sub pages + </reference> + + <footnote_reference auto="1" ids="id3" refid="id4"> + 2 + </footnote_reference> + which +have names containing one or more slashes ( + <literal> + / + </literal> + ). + </paragraph> + <footnote auto="1" backrefs="id3" ids="id4" names="2"> + <label> + 2 + </label> + <paragraph> + There are also sub pages in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + but they are rarely used +in any area but the + <literal> + Users: + </literal> + namespace. + </paragraph> + </footnote> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + we map the concept of namespaces to the top level + <reference name="sub pages" refuri="HelpOnEditing/SubPages_"> + sub +pages + </reference> + of the wiki. So if you have a page named + <literal> + Oekonux:Project + </literal> + +in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + it would be named + <literal> + Oekonux/Project + </literal> + in + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . + </paragraph> + <paragraph> + Please note that + <reference name="sub pages" refuri="HelpOnEditing/SubPages_"> + sub pages + </reference> + are more flexible than namespaces +because they allow for more than one level or semantic hierarchy. + </paragraph> + </section> + <section ids="what-about-the-users-namespace" names="what\ about\ the\ users:\ namespace?"> + <title refid="id19"> + What about the + <literal> + Users: + </literal> + namespace? + </title> + <paragraph> + Unfortunately the + <literal> + Users: + </literal> + namespace as such can not be easily +modeled into + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . The homepages of users need to stay on the +top level so the + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + page + <literal> + Users:JohnDoe + </literal> + is mapped to + + <literal> + JohnDoe + </literal> + in + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . + </paragraph> + </section> + <section ids="what-about-the-special-namespace" names="what\ about\ the\ special:\ namespace?"> + <title refid="id20"> + What about the + <literal> + Special: + </literal> + namespace? + </title> + <paragraph> + The + <literal> + Special: + </literal> + namespace in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + does not lead to normal pages +but to pages which are generated dynamically by the software. + </paragraph> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + such pages (and a lot more) are modeled by + <problematic ids="id12" refid="id11"> + macros_ + </problematic> + . So +what in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + reads + <literal> + Special:RecentChanges + </literal> + in + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + is +written + <literal> + [[RecentChanges]] + </literal> + . + </paragraph> + </section> + <section ids="what-about-the-talk-namespace" names="what\ about\ the\ talk:\ namespace?"> + <title refid="id21"> + What about the + <literal> + Talk: + </literal> + namespace? + </title> + <paragraph> + Actually the + <literal> + Talk: + </literal> + namespace in + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + reachable by the + + <literal> + Discussion + </literal> + tab is not a namespace in the sense of the other +namespaces. Instead it is an add-on for pages in all namespaces. + </paragraph> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + this is modeled by + <reference name="sub pages" refuri="HelpOnEditing/SubPages_"> + sub pages + </reference> + . However, instead of +tagging the term + <literal> + Talk + </literal> + in the very front of the name of a page in + + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + this is added to the end. So for the + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + page name + + <literal> + Oekonux_Talk:Project + </literal> + in + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + the name + + <literal> + Oekonux/Project/Talk + </literal> + is used. + </paragraph> + <paragraph> + To foster similarity to + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + wikis most of the page templates +for this wiki contain a link to a + <literal> + /Talk + </literal> + + <reference name="sub page" refuri="HelpOnEditing/SubPages_"> + sub page + </reference> + . + </paragraph> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + </section> + <section ids="of-editors" names="of\ editors"> + <title refid="id22"> + Of editors + </title> + <section ids="i-m-used-to-mediawiki-syntax-can-i-use-it-in-this-wiki" names="i'm\ used\ to\ mediawiki\ syntax.\ can\ i\ use\ it\ in\ this\ wiki?"> + <title> + I'm used to + <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"> + MediaWiki syntax + </reference> + . Can I use it in this Wiki? + </title> + <paragraph> + By default + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + has a slightly + <problematic ids="id8" refid="id7"> + `different syntax`_ + </problematic> + then + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + . However, + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + can support many languages if only a +parser is available for it. There is a parser for + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + syntax +which can be used for this Wiki. All you have to do is to put + </paragraph> + <literal_block xml:space="preserve"> + #format media + </literal_block> + <paragraph> + in the very first line of your document. From that point on + <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"> + MediaWiki +syntax + </reference> + is recognized. + </paragraph> + <paragraph> + Currently the parser does not support the full + <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"> + MediaWiki syntax + </reference> + but +a considerable subset of it. For most pages this subset is completely +sufficient. For an extensive list of supported and unsupported +features please check the + <reference name="documentation of the parser" refuri="http://www.merten-home.de/FreeSoftware/media4moin/manual.html"> + documentation of the parser + </reference> + . + </paragraph> + </section> + <section ids="though-i-m-used-to-mediawiki-syntax-i-think-it-sucks-any-alternatives" names="though\ i'm\ used\ to\ mediawiki\ syntax\ i\ think\ it\ sucks.\ any\ alternatives?"> + <title> + Though I'm used to + <reference name="MediaWiki syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"> + MediaWiki syntax + </reference> + I think it sucks. Any alternatives? + </title> + <paragraph> + Because in principle + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + supports different syntaxes the general +answer is: Yes, you can use other syntaxes if and when the parser +plug-in for it exists and is installed. The default parser for + + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + parses the + <problematic ids="id10" refid="id9"> + `MoinMoin syntax`_ + </problematic> + . + </paragraph> + <paragraph> + In this Wiki by default we use a variant without automatic CamelCase +links and without + <problematic ids="id28" refid="id27"> + InterWiki_ + </problematic> + links without special markup. If you want +CamelCase and + <problematic ids="id30" refid="id29"> + InterWiki_ + </problematic> + links put + </paragraph> + <literal_block xml:space="preserve"> + #format wiki + </literal_block> + <paragraph> + in the first line of your page. The MoinMoin wiki markup language has +more options than the MediaWiki markup language but still is quite +illogical. + </paragraph> + <paragraph> + Otherwise a very promising ASCII based markup is + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + . It +is far more logical than any wiki markup language and it has a set of +nice features. If you want to use it put + </paragraph> + <literal_block xml:space="preserve"> + #format rst + </literal_block> + <paragraph> + in the first line of your page. + </paragraph> + </section> + <section ids="i-tried-to-create-a-new-page-and-ended-up-on-this-page-offering-templates-what-s-this" names="i\ tried\ to\ create\ a\ new\ page\ and\ ended\ up\ on\ this\ page\ offering\ templates.\ what's\ this?"> + <title refid="id25"> + I tried to create a new page and ended up on this page offering templates. What's this? + </title> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + it is possible to have page templates. A page templates +are an easy way to help people to conform to some style guide lines +established for the given wiki. They are created by the maintainers of +the wiki. + </paragraph> + <paragraph> + The name of a page template is build from the type of page the page +template is for and the suffix + <literal> + Template + </literal> + (in English). So for +instance a page template meant for talk pages is named + + <literal> + TalkTemplate + </literal> + . + </paragraph> + <paragraph> + In a sense a page template bundles some general knowledge about the +wiki ready to be used by the users of the wiki. Of course you can +start a new page from scratch but usually it makes more sense to use +an existing page template. + </paragraph> + </section> + <section ids="page-templates-ok-what-about-the-mediawiki-templates" names="page\ templates,\ ok.\ what\ about\ the\ mediawiki\ templates?"> + <title> + Page templates, ok. What about the + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + templates? + </title> + <paragraph> + In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + the term "template" is used differently than in + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + . In + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + a template is a + <emphasis> + page + </emphasis> + template + <footnote_reference auto="1" ids="id5" refid="id6"> + 3 + </footnote_reference> + while in + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + it is more like a function call in a programming language. + </paragraph> + <footnote auto="1" backrefs="id5" ids="id6" names="3"> + <label> + 3 + </label> + <paragraph> + The concept of page templates is probably not known in + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + . + </paragraph> + </footnote> + <paragraph> + In general there are two ways to get the functionality of + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + +templates in + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + templates which are used as +shortcuts for links are mapped to + <problematic ids="id32" refid="id31"> + InterWiki_ + </problematic> + links. For instance a +link to the posting containing the + <reference name="requirements" refuri="Oekonux/Project/Wiki/Requirements_"> + requirements + </reference> + for this wiki in the +archive of the project mailing list + <literal> + [pox] + </literal> + is named + + <literal> + poxArchive:04957 + </literal> + which expands to the rather long link + + <reference refuri="http://www.oekonux.de/projekt/liste/archive/msg04957.html"> + http://www.oekonux.de/projekt/liste/archive/msg04957.html + </reference> + . You +probably agree that the former is easier to type :-) . Such a link can +be used as any other link. In particular it can be used together with +a display text. If your favorite link target is not yet supported by +this wiki please contact + <reference refuri="mailto:projekt@oekonux.de"> + projekt@oekonux.de + </reference> + about it. + </paragraph> + <paragraph> + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + templates not building shortcuts for links generally can be +mapped to + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + + <problematic ids="id13" refid="id11"> + macros_ + </problematic> + . If the functionality you need is not yet +supported by this wiki please contact + <reference refuri="mailto:projekt@oekonux.de"> + projekt@oekonux.de + </reference> + about it. + </paragraph> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <target ids="mediawiki" names="mediawiki" refuri="http://wikipedia.sourceforge.net/"/> + <target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/> + <target ids="requirements" names="requirements" refuri="Oekonux/Project/Wiki/Requirements_"/> + <target ids="mediawiki-syntax" names="mediawiki\ syntax" refuri="http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup"/> + <target ids="different-syntax" names="different\ syntax" refname="helponediting"/> + <target ids="moinmoin-syntax" names="moinmoin\ syntax" refname="helponediting"/> + <target ids="documentation-of-the-parser" names="documentation\ of\ the\ parser" refuri="http://www.merten-home.de/FreeSoftware/media4moin/manual.html"/> + <target refid="sub-page"/> + <target ids="sub-pages sub-page" names="sub\ pages sub\ page" refuri="HelpOnEditing/SubPages_"/> + <target ids="macros" names="macros" refname="helponmacros"/> + <target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/> + <comment xml:space="preserve"> + LocalWords: rst Wikipedia MediaWiki MoinMoin homepages JohnDoe CamelCase + </comment> + <comment xml:space="preserve"> + LocalWords: RecentChanges InterWiki reStructuredText TalkTemplate SubPages + </comment> + <comment xml:space="preserve"> + LocalWords: poxArchive HelpOnEditing HelpOnMacros + </comment> + </section> + </section> + </section> + </section> + <section classes="system-messages"> + <title> + Docutils System Messages + </title> + <system_message backrefs="id8" ids="id7" level="3" line="197" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Indirect hyperlink target "different syntax" (id="different-syntax") refers to target "helponediting", which does not exist. + </paragraph> + </system_message> + <system_message backrefs="id10" ids="id9" level="3" line="198" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Indirect hyperlink target "moinmoin syntax" (id="moinmoin-syntax") refers to target "helponediting", which does not exist. + </paragraph> + </system_message> + <system_message backrefs="id12 id13" ids="id11" level="3" line="205" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Indirect hyperlink target "macros" (id="macros") refers to target "helponmacros", which does not exist. + </paragraph> + </system_message> + <system_message backrefs="id28" ids="id27" level="3" line="123" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Unknown target name: "interwiki". + </paragraph> + </system_message> + <system_message backrefs="id30" ids="id29" level="3" line="123" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Unknown target name: "interwiki". + </paragraph> + </system_message> + <system_message backrefs="id32" ids="id31" level="3" line="169" source="original/MediaWikiFAQ.rst" type="ERROR"> + <paragraph> + Unknown target name: "interwiki". + </paragraph> + </system_message> + </section> +</document> diff --git a/sandbox/xml2rst/tests/real/readable/Technik.xml b/sandbox/xml2rst/tests/real/readable/Technik.xml new file mode 100644 index 000000000..9487dcd8d --- /dev/null +++ b/sandbox/xml2rst/tests/real/readable/Technik.xml @@ -0,0 +1,1214 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/Technik.rst"> + <note> + <paragraph> + Sorry, wegen kaputter Formatierung, aber ich habe keine +Ahnung, wie das geht und es gibt leider keine Hilfe. Ich verwende +einfach mal + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + . + </paragraph> + </note> + <target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/> + <paragraph> + Diese Seite beschäftigt sich mit der Technik, die die + + <reference name="Oekonux-Community" refuri="http://www.oekonux.de/"> + Oekonux-Community + </reference> + nutzt. Ausgelöst wurde dies durch einen + <reference name="Thread zum Thema" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"> + Thread +zum Thema + </reference> + <target ids="thread-zum-thema" names="thread\ zum\ thema" refuri="http://www.oekonux.de/projekt/liste/archive/msg03333.html"/> + auf der + + <reference name="Projekt-Liste" refuri="http://www.oekonux.de/projekt/liste/"> + Projekt-Liste + </reference> + , die sich um die Organisation des Projekts kümmert. + </paragraph> + <target ids="oekonux-community" names="oekonux-community" refuri="http://www.oekonux.de/"/> + <target ids="projekt-liste" names="projekt-liste" refuri="http://www.oekonux.de/projekt/liste/"/> + <section ids="uberblick" names="überblick"> + <title> + Überblick + </title> + <paragraph> + Die Oekonux-Community nutzt derzeit die folgenden technischen +Einrichtungen: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <reference name="Mailing-Listen" refid="mailing-listen"> + Mailing-Listen + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="Web-Sites" refid="web-sites"> + Web-Sites + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="OpenTheory" refid="opentheory"> + OpenTheory + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="News-Groups" refid="news-groups"> + News-Groups + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference name="Wiki" refid="wiki"> + Wiki + </reference> + </paragraph> + </list_item> + </bullet_list> + <paragraph> + Weitere Einrichtungen wie IRC werden nach meiner Kenntnis derzeit +nicht genutzt. + </paragraph> + </section> + <section ids="mailing-listen" names="mailing-listen"> + <title> + Mailing-Listen + </title> + <section ids="existierende-listen" names="existierende\ listen"> + <title> + Existierende Listen + </title> + <paragraph> + Folgende Listen existieren: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + liste AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + list-en AT oekonux DOT org + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + projekt AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + chat AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + mitglieder AT oekonux DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + helfer AT oekonux-konferenz DOT de + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + referenten AT oekonux-konferenz DOT de + </literal> + </paragraph> + </list_item> + </bullet_list> + <paragraph> + Für alle Mailing-Listen existieren + <reference name="Archive" refid="archive"> + Archive + </reference> + , die auf der Web-Site +stehen, zu deren Domain sie gehören. + </paragraph> + </section> + <section dupnames="hosting" ids="hosting"> + <title> + Hosting + </title> + <paragraph> + Außer + <literal> + liste AT oekonux DOT de + </literal> + werden alle Mailing-Listen bei +StefanMn gehostet. Für diese sind POP-Boxen eingerichtet, die +regelmäßig gepollt werden. Diese Mailing-Listen werden von einem + + <reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/"> + Majordomo + </reference> + betreut. + </paragraph> + <target ids="majordomo" names="majordomo" refuri="http://www.greatcircle.com/majordomo/"/> + <important> + <paragraph> + Da + <reference name="Majordomo" refuri="http://www.greatcircle.com/majordomo/"> + Majordomo + </reference> + keine völlig Freie Software ist, gab es +den Vorschlag eine Alternative zu benutzen. Vorschläge waren Sympa +oder SmartList. Mit einer ganz neuen Lösung würde vermutlich + + <reference name="MailMan" refuri="http://www.list.org/"> + MailMan + </reference> + zum Einsatz kommen. + </paragraph> + </important> + <paragraph> + <literal> + liste AT oekonux DOT de + </literal> + wird aus historischen Gründen von + <reference name="buug" refuri="http://post.openoffice.de/"> + buug + </reference> + +gehostet. Dort kommt seit einiger Zeit + <reference name="MailMan" refuri="http://www.list.org/"> + MailMan + </reference> + als +Verwaltungs-Software zum Einsatz. + </paragraph> + <target ids="buug" names="buug" refuri="http://post.openoffice.de/"/> + <target ids="mailman" names="mailman" refuri="http://www.list.org/"/> + <important> + <paragraph> + In einer integrierten Lösung mit einem dedizierten +Server könnten und sollten auch die Mailing-Listen auf diesem +Server gehostet werden. + </paragraph> + </important> + </section> + <section dupnames="features" ids="features"> + <title> + Features + </title> + <section ids="spam-schutz" names="spam-schutz"> + <title> + Spam-Schutz + </title> + <paragraph> + Mail an sämtliche Mailing-Listen wird über einen + <reference name="SpamAssassin" refuri="http://www.spamassassin.org/"> + SpamAssassin + </reference> + +geleitet. Dies ist absolut unverzichtbar, da die Adressen der +Mailing-Listen mittlerweile sehr weit verbreitet sind. Die +SpamAssassin-Installation benötigt gelegentliche Wartung um gegen die +neuesten Ideen der SpammerInnen gewappnet zu sein. + </paragraph> + <target ids="spamassassin" names="spamassassin" refuri="http://www.spamassassin.org/"/> + </section> + </section> + </section> + <section ids="web-sites" names="web-sites"> + <title> + Web-Sites + </title> + <section dupnames="hosting" ids="id1"> + <title> + Hosting + </title> + <section ids="provider" names="provider"> + <title> + Provider + </title> + <paragraph> + Im Moment bezahlt der + <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/"> + e.V. + </reference> + bei + <reference name="1&1" refuri="http://hosting.1und1.de/"> + 1&1 + </reference> + ein + <reference name="Premium-Paket" refuri="http://hosting.1und1.de/xml/static?__page=premium"> + Premium-Paket + </reference> + <target ids="premium-paket" names="premium-paket" refuri="http://hosting.1und1.de/xml/static?__page=premium"/> + . + </paragraph> + <target ids="e-v" names="e.v." refuri="http://www.oekonux.de/projekt/verein/"/> + <target ids="id2" names="1&1" refuri="http://hosting.1und1.de/"/> + <paragraph> + Die Möglichkeiten dieses Pakets treffen nicht ganz die Bedürfnisse. +Einerseits beinhaltet es ungenutzte Features (z.B. Datenbank, + + <reference name="in2site" refuri="http://www.in2site.de/"> + in2site + </reference> + ), andererseits fehlen erwünschte Features (Möglichkeit für +lokale Suchmaschine, die auf dem Server den Index erstellt). + </paragraph> + <important> + <paragraph> + Es gibt ein + <reference name="Angebot" refuri="http://www.oekonux.de/projekt/liste/archive/msg03128.html"> + Angebot + </reference> + <target ids="angebot" names="angebot" refuri="http://www.oekonux.de/projekt/liste/archive/msg03128.html"/> + von + + <reference name="Hostsharing" refuri="http://www.hostsharing.net/"> + Hostsharing + </reference> + e.G., die das Hosting übernehmen könnten. + </paragraph> + </important> + <target ids="hostsharing" names="hostsharing" refuri="http://www.hostsharing.net/"/> + <paragraph> + Die Audio-Dateien, die vor allem bei den Konferenzen aufgezeichnet +worden sind, liegen wegen ihrer Größe auf anderen Servern. + </paragraph> + <paragraph> + Mit Ressourcen aus dem + <reference name="OpenTheory-Projekt" refuri="http://www.opentheory.org/"> + OpenTheory-Projekt + </reference> + wird im Vorfeld der +Konferenz das Programm der Konferenz online erstellt und präsentiert. + </paragraph> + <target ids="opentheory-projekt" names="opentheory-projekt" refuri="http://www.opentheory.org/"/> + <important> + <paragraph> + Es gibt Überlegungen, alle von der Oekonux-Community +genutzten Ressourcen zu zentralisieren. Dazu würde vermutlich ein +dedizierter Server benötigt. + </paragraph> + </important> + <important> + <paragraph> + Als weiterer Hoster käme das + <reference name="Individual Network Berlin" refuri="http://www.in-berlin.de/"> + Individual Network +Berlin + </reference> + in Frage. + </paragraph> + <paragraph> + <reference name="vLinux.de" refuri="http://vlinux.de/"> + vLinux.de + </reference> + oder + <reference name="server4you" refuri="http://www.server4you.de/de/v/"> + server4you + </reference> + könnten weitere, vor allem preisgünstige +Alternative sein. + </paragraph> + </important> + <target ids="individual-network-berlin" names="individual\ network\ berlin" refuri="http://www.in-berlin.de/"/> + <target ids="vlinux-de" names="vlinux.de" refuri="http://vlinux.de/"/> + <target ids="server4you" names="server4you" refuri="http://www.server4you.de/de/v/"/> + <important> + <paragraph> + Holger hat sich grundsätzlich bereit erklärt, einen +dedizierten Server zu betreuen. + </paragraph> + </important> + </section> + <section ids="domains" names="domains"> + <title> + Domains + </title> + <paragraph> + Die fünf Domains, die auf den Verein laufen, sind: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + oekonux.de + </literal> + </paragraph> + <paragraph> + Unter + <literal> + www + </literal> + liegt hier die deutsche Hauptseite des Projekts. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux.org + </literal> + </paragraph> + <paragraph> + Unter + <literal> + www + </literal> + liegt hier die internationale Hauptseite des Projekts. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux-konferenz.de + </literal> + </paragraph> + <paragraph> + Die deutsche Domain für alles rund um die Oekonux-Konferenzen. + </paragraph> + <bullet_list bullet="-"> + <list_item> + <paragraph> + <literal> + www + </literal> + </paragraph> + <paragraph> + Einstiegsseite für die jeweils aktuelle Konferenz. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + erste + </literal> + , + <literal> + zweite + </literal> + , + <literal> + dritte + </literal> + </paragraph> + <paragraph> + Einstiegsseiten für die jeweilige spezifische Konferenz. + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <literal> + oekonux-konferenz.org + </literal> + , + <literal> + oekonux-conference.org + </literal> + </paragraph> + <paragraph> + Die internationalen Domains für alles rund um die +Oekonux-Konferenzen. + </paragraph> + <bullet_list bullet="-"> + <list_item> + <paragraph> + <literal> + www + </literal> + </paragraph> + <paragraph> + Einstiegsseite für die jeweils aktuelle Konferenz. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + second + </literal> + , + <literal> + third + </literal> + </paragraph> + <paragraph> + Einstiegsseiten für die jeweilige spezifische Konferenz. + </paragraph> + </list_item> + </bullet_list> + <important> + <paragraph> + <literal> + oekonux-konferenz.org + </literal> + kann wahrscheinlich +mittelfristig entfallen. + </paragraph> + </important> + </list_item> + </bullet_list> + <paragraph> + Weitere Domains waren vor der Übernahme durch den + <reference name="e.V." refuri="http://www.oekonux.de/projekt/verein/"> + e.V. + </reference> + vorhanden, +diese sind aber zurück gegeben worden. + </paragraph> + </section> + </section> + <section dupnames="features" ids="id3"> + <title> + Features + </title> + <section ids="web-space" names="web-space"> + <title> + Web-Space + </title> + <paragraph> + Derzeit sind in allen vier Web-Präsenzen insgesamt knapp 200MB von ca. +17000 Files belegt. Die extern gehosteten Audio-Files umfassen ca. +1GB. + </paragraph> + </section> + <section ids="traffic" names="traffic"> + <title> + Traffic + </title> + <paragraph> + Derzeit generieren die Web-Sites ca. 2GB Traffic pro Monat. + </paragraph> + </section> + <section ids="formulare" names="formulare"> + <title> + Formulare + </title> + <paragraph> + Die von + <reference name="1&1" refuri="http://hosting.1und1.de/"> + 1&1 + </reference> + angebotenen so genannten Web-Elements werden im Vorfeld +einer Konferenz für Anmeldungsformulare verwendet. + </paragraph> + <paragraph> + Weitere Formulare werden nicht genutzt. + </paragraph> + </section> + <section ids="mail-adressen" names="mail-adressen"> + <title> + Mail-Adressen + </title> + <paragraph> + Derzeit verteilen sich rund 80 Mail-Adressen auf die verschiedenen + + <reference name="Domains" refid="domains"> + Domains + </reference> + . Nur ein Teil von ihnen ist als POP-Box realisiert - +insbesondere die Adressen, die für die + <reference name="Mailing-Listen" refid="mailing-listen"> + Mailing-Listen + </reference> + verwendet +werden. Weitere Mail-Adressen sind als Alias eingerichtet. + </paragraph> + <paragraph> + Neben den funktionsbezogenen Mail-Adressen gibt es derzeit lediglich +eine persönliche Mail-Adresse in den + <reference name="Domains" refid="domains"> + Domains + </reference> + . Grundsätzlich können +weitere private Mail-Adressen vergeben werden. Vor langer Zeit wurde +beschlossen, dass der Nachname der Person in der Mail-Adresse +enthalten sein muss. + </paragraph> + </section> + <section ids="generierung-und-upload" names="generierung\ und\ upload"> + <title> + Generierung und Upload + </title> + <paragraph> + Derzeit werden alle Inhalte von StefanMn u.a. aus SDF-Quellen auf +seinem privaten Rechner generiert und per FTP auf die Web-Sites +geladen. Das Ganze ist in eine + <literal> + make + </literal> + -basierte Automatisierung +eingebettet. + </paragraph> + <important> + <paragraph> + Die Quellen für die statischen Anteile der jetzigen +Lösung sind vor Ewigkeiten mal in ein CVS-Repository gestellt +worden. Allerdings hat sich niemensch jemals dafür interessiert - +geschweige denn Hilfe angeboten. + </paragraph> + <paragraph> + Es wäre aber grundsätzlich gut, wenn eine neue Lösung für die +Web-Sites mittels CVS (oder Subversion) zugänglich wäre. Damit +könnten viele Leute an der Site arbeiten. + </paragraph> + <paragraph> + StefanMn hätte gerne, dass die Quellen der Web-Seiten mittels einem +ASCII-nahen Format - möglichst + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + - erstellt werden +könnten. Er würde (auch) dafür einen Konverter vom jetzigen Format +zur Verfügung stellen. + </paragraph> + </important> + </section> + <section ids="statische-seiten" names="statische\ seiten"> + <title> + Statische Seiten + </title> + <paragraph> + Praktisch sämtliche Seiten in den Oekonux-Domains sind statische +HTML-Seiten ohne jegliches JavaScript oder andere aktive Elemente. Sie +sind damit + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + für + <emphasis> + alle + </emphasis> + Browser zugänglich + </paragraph> + </list_item> + <list_item> + <paragraph> + wird für alle Zeiten lesbar sein + </paragraph> + </list_item> + <list_item> + <paragraph> + kein Sicherheitsproblem für den Server + </paragraph> + </list_item> + <list_item> + <paragraph> + stabile URLs ohne Variablen + </paragraph> + <paragraph> + Viele Suchmaschinen ignorieren Links mit + <literal> + ? + </literal> + . + </paragraph> + </list_item> + <list_item> + <paragraph> + bedürfen keinerlei Wartung + </paragraph> + </list_item> + <list_item> + <paragraph> + freundlich für externe Suchmaschinen + </paragraph> + <paragraph> + Zwar werden für die Navigation Frames eingesetzt, es gibt jedoch +immer einen + <literal> + <noframes> + </literal> + -Bereich, der die entsprechenden Links +enthält. + </paragraph> + </list_item> + <list_item> + <paragraph> + mit Tools wie z.B. + <literal> + wget + </literal> + komplett und problemlos zu saugen + </paragraph> + </list_item> + <list_item> + <paragraph> + funktioniert mit jedem Web-Hosting-Angebot + </paragraph> + </list_item> + </bullet_list> + </section> + <section ids="privacy" names="privacy"> + <title> + Privacy + </title> + <paragraph> + <reference name="1&1" refuri="http://hosting.1und1.de/"> + 1&1 + </reference> + stellt praktisch in allen Tarifen die Log-Files des Web-Servers +zur Verfügung. Darin sind die Zugriffe auf die einzelnen Domains +unterschieden. Diese Logs werden ausgewertet und ohne die zugreifenden +IP-Adressen und weitere, tendenziell Privacy-gefährdende Details auf +den Web-Seiten zur Verfügung gestellt. + </paragraph> + <important> + <paragraph> + Wie StefanMn in einer + <reference name="Mail an [pox]" refuri="http://www.oekonux.de/projekt/liste/archive/msg02683.html"> + Mail an [pox] + </reference> + <target ids="mail-an-pox" names="mail\ an\ [pox]" refuri="http://www.oekonux.de/projekt/liste/archive/msg02683.html"/> + +vorgeschlagen hat, sollte die Privacy-Policy auf den Web-Sites +veröffentlicht sein. + </paragraph> + <paragraph> + Insbesondere sollte klar gemacht werden, dass + <reference name="in2site" refuri="http://www.in2site.de/"> + in2site + </reference> + + <strong> + nicht + </strong> + +verwendet wird. + </paragraph> + </important> + <target ids="in2site" names="in2site" refuri="http://www.in2site.de/"/> + </section> + <section ids="navigation" names="navigation"> + <title> + Navigation + </title> + <paragraph> + Die Navigation wird mit Hilfe von Frames realisiert. Ein schmaler +Frame auf der linken Seite ist einem File-Browser nachempfunden. Er +zeigt ständig die aktuelle Position innerhalb der Site an. Der rechte +Frame enthält den angewählten Inhalt. Wird in der Navigation ein +Verzeichnis angewählt, so erscheint im Inhalts-Frame stets + + <literal> + default.html + </literal> + . + </paragraph> + <paragraph> + Außerdem hat jede Third-Level-Domain eine eigene Sitemap. +Links auf allen Seiten werden von + <reference name="QBullets" refuri="http://www.matterform.com/qbullets/"> + QBullets + </reference> + gefolgt, die grob den Typ +des Links angeben. + </paragraph> + <target ids="qbullets" names="qbullets" refuri="http://www.matterform.com/qbullets/"/> + </section> + <section ids="lokale-suchmaschine" names="lokale\ suchmaschine"> + <title> + Lokale Suchmaschine + </title> + <paragraph> + Mittels + <reference name="FreeFind" refuri="http://www.freefind.com/"> + FreeFind + </reference> + wurde auf + <literal> + www.oekonux.de + </literal> + eine lokale, +kostenlose, durch Werbung finanzierte Suchmaschine eingerichtet. + </paragraph> + <target ids="freefind" names="freefind" refuri="http://www.freefind.com/"/> + <important> + <paragraph> + Nachdem das Größenlimit für kostenlosen Service im +2003-05 bereits zum zweiten Mal überschritten wurde, indexiert +diese Suchmaschine seit einiger Zeit nicht mehr die gesamte Site. + </paragraph> + <paragraph> + Eine lokale Suchmaschine wie + <reference name="Perlfect Search" refuri="http://perlfect.com/freescripts/search/"> + Perlfect Search + </reference> + scheitert daran, +dass im derzeitigen Tarif einem Prozess zu wenig Rechenzeit zur +Verfügung steht um die Site zu indexieren. + </paragraph> + <paragraph> + Es besteht Handlungsbedarf. + </paragraph> + </important> + <target ids="perlfect-search" names="perlfect\ search" refuri="http://perlfect.com/freescripts/search/"/> + </section> + <section ids="rss-feed" names="rss-feed"> + <title> + RSS-Feed + </title> + <important> + <paragraph> + Es wäre nett, einen RSS-Feed auf einem eigenen Server +zu haben. + </paragraph> + </important> + </section> + <section ids="datenbanken" names="datenbanken"> + <title> + Datenbanken + </title> + <important> + <paragraph> + Derzeit werden Datenbanken nicht genutzt, aber es wäre +sinnvoll, diese Option bei einer neuen Lösung zu haben. +(vorzugsweise mySGL). + </paragraph> + </important> + </section> + <section ids="apache" names="apache"> + <title> + Apache + </title> + <important> + <paragraph> + Eine neue Hosting-Lösung sollte uns in möglichst großem +Umfang Zugang zum Web-Server geben. + </paragraph> + </important> + </section> + </section> + <section ids="inhalte" names="inhalte"> + <title> + Inhalte + </title> + <section ids="allgemeines" names="allgemeines"> + <title> + Allgemeines + </title> + <important> + <paragraph> + Generell werden die Sites nicht sehr intensiv gepflegt. +Dies ist nicht gut. + </paragraph> + </important> + <important> + <paragraph> + Insbesondere wäre es super, wenn die internationale +Site mehr von den Inhalten der deutschen Site hätte. Besonders +wünschenswert wäre es, wenn die + <reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux-Links + </reference> + auf Englisch +verfügbar wären. + </paragraph> + </important> + </section> + <section ids="archive" names="archive"> + <title> + Archive + </title> + <paragraph> + Sämtliche + <reference name="Mailing-Listen" refid="mailing-listen"> + Mailing-Listen + </reference> + des Projekts werden auf den Web-Sites +archiviert. Die Mails werden bei Eingang bei StefanMn mittels + <reference name="MHonArc" refuri="http://www.mhonarc.org/"> + MHonArc + </reference> + +in HTML konvertiert und automatisch hochgeladen. + </paragraph> + <target ids="mhonarc" names="mhonarc" refuri="http://www.mhonarc.org/"/> + <paragraph> + Die HTML-Seiten für die Mails werden noch gefiltert. Momentan werden + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + Kommentare von + <reference name="MHonArc" refuri="http://www.mhonarc.org/"> + MHonArc + </reference> + entfernt + </paragraph> + </list_item> + <list_item> + <paragraph> + Telefon-Nummern + </paragraph> + </list_item> + <list_item> + <paragraph> + Einzelne Personen, die sich zu spät entschieden haben, dass sie +nicht per Google bei Oekonux gefunden werden wollen + </paragraph> + </list_item> + <list_item> + <paragraph> + Alle URLs, die auf Mail-Adressen verweisen + </paragraph> + </list_item> + <list_item> + <paragraph> + Mail-Adressen werden unkenntlich gemacht + </paragraph> + </list_item> + </bullet_list> + <important> + <paragraph> + Weiter werden ASCII-Äquivalente der Archive in Paketen +zu 40 Stück auf die Web-Site gestellt. Dieses Feature ist obsolet. + </paragraph> + </important> + <important> + <paragraph> + Es besteht der Wunsch, die Archive auch im mbox-Format +auf die + <reference name="Web-Sites" refid="web-sites"> + Web-Sites + </reference> + zu bringen. Hier muss noch überlegt werden, +was gegen Mail-Adressen-Harvesting getan werden kann. + </paragraph> + </important> + <paragraph> + Das Löschen aus den Archiven ist ebenfalls weit gehend automatisiert. +Es erfordert aber einen expliziten Aufruf, der die Nummer der +entsprechenden Mail nennt. + </paragraph> + <important> + <paragraph> + Momentan wird die gelöschte Mail nur aus den Indexen +entfernt, sie wird aber + <emphasis> + nicht + </emphasis> + vom Server gelöscht. Dadurch ist +sie zwar nicht mehr über Indexe oder benachbarte Mails verlinkt, +bleibt aber grundsätzlich zugreifbar. Das muss geändert werden. + </paragraph> + </important> + </section> + <section ids="texte" names="texte"> + <title> + Texte + </title> + <paragraph> + Verschiedene Texte des Projekts sind auf den Web-Sites verfügbar. + </paragraph> + <paragraph> + Darunter befindet sich eine Einführung, deren Quellen auch für +MagicPoint vorliegen + </paragraph> + </section> + <section ids="link-seite" names="link-seite"> + <title> + Link-Seite + </title> + <paragraph> + Eine wichtige inhaltliche Ressource der Oekonux-Community sind die + + <reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux-Links + </reference> + , in die interessante Links mit einem kurzen Kommentar +aufgenommen werden. Die Seite ist strukturiert. + </paragraph> + <target ids="oekonux-links" names="oekonux-links" refuri="http://www.oekonux.de/projekt/links.html"/> + <important> + <paragraph> + Es wäre sehr gut, wenn jeder der + <reference name="Oekonux-Links" refuri="http://www.oekonux.de/projekt/links.html"> + Oekonux-Links + </reference> + das +Datum bekäme, zu dem er erstellt wurde. Mittlerweile hätte dies +einen gewissen dokumentarischen Wert ("Aha, damals war das also von +Bedeutung"). + </paragraph> + <paragraph> + Dies wäre mittels + <literal> + cvs annotate + </literal> + grundsätzlich auch für schon +vorhandene Links machbar. + </paragraph> + </important> + <important> + <paragraph> + Es wäre gut, wenn die Sprache der Site angegeben wäre, +die durch den Link referenziert wird. Dies ist mittels des +HTML-Attributs + <literal> + hreflang + </literal> + machbar. + </paragraph> + </important> + </section> + <section ids="statistiken" names="statistiken"> + <title> + Statistiken + </title> + <paragraph> + Statistiken sowohl über die Nutzung der + <reference name="Mailing-Listen" refid="mailing-listen"> + Mailing-Listen + </reference> + als auch +über die Nutzung der + <reference name="Web-Sites" refid="web-sites"> + Web-Sites + </reference> + werden auf den + <reference name="Web-Sites" refid="web-sites"> + Web-Sites + </reference> + zur +Verfügung gestellt. Alle Statistiken werden mit Freien Tools +( + <reference name="webalizer" refuri="http://www.webalizer.org/"> + webalizer + </reference> + , + <reference name="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"> + mail2clf + </reference> + , + <reference name="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"> + mail2chart + </reference> + ) mindestens einmal wöchentlich von +StefanMn automatisch erstellt und hochgeladen. Die +Web-Site-Statistiken werden einmal monatlich um Referrer-Links +bereinigt, die von Porno-Sites stammen. + </paragraph> + <target ids="webalizer" names="webalizer" refuri="http://www.webalizer.org/"/> + <target ids="mail2clf" names="mail2clf" refuri="http://www.merten-home.de/FreeSoftware/mail2clf/"/> + <target ids="mail2chart" names="mail2chart" refuri="http://www.merten-home.de/FreeSoftware/mail2chart/"/> + </section> + </section> + </section> + <section ids="opentheory" names="opentheory"> + <title> + OpenTheory + </title> + <paragraph> + Viele Texte aus und rund um das Oekonux-Projekt sind auch im + + <reference name="OpenTheory-Projekt" refuri="http://www.opentheory.org/"> + OpenTheory-Projekt + </reference> + verfügbar. Einige sind im + + <reference name="Oekonux-OpenTheory-Projekt" refuri="http://www.opentheory.org/oekonux/"> + Oekonux-OpenTheory-Projekt + </reference> + zusammen gefasst. + </paragraph> + <target ids="oekonux-opentheory-projekt" names="oekonux-opentheory-projekt" refuri="http://www.opentheory.org/oekonux/"/> + <paragraph> + Die Texte sind sowohl inhaltlicher als auch organisatorischer Natur. +Insbesondere für die Vorbereitung der Konferenzen wurden +OpenTheory-Projekte angelegt. + </paragraph> + </section> + <section ids="wiki" names="wiki"> + <title> + Wiki + </title> + <paragraph> + Derzeit nutzt die Oekonux-Community zwei Wiki-Installationen: + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + co-forum.de + </literal> + </paragraph> + <paragraph> + Wird technisch von Thomas Kalka betreut und auch gehosteten. Es +handelt sich um ein allgemeines Wiki. + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + de.wiki.oekonux.org.uk + </literal> + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + en.wiki.oekonux.org.uk + </literal> + </paragraph> + <paragraph> + Diese beiden Wikis sind neueren Datums und explizit als Oekonux-Wiki +gedacht. Sie werden technisch von Chris Croome betreut und auch +gehostet. + </paragraph> + <important> + <paragraph> + Bislang besteht keine inhaltliche Betreuung. + </paragraph> + </important> + </list_item> + </bullet_list> + </section> + <section ids="news-groups" names="news-groups"> + <title> + News-Groups + </title> + <paragraph> + Seit Ende 2003 werden die Haupt- + <reference name="Mailing-Listen" refid="mailing-listen"> + Mailing-Listen + </reference> + für die Diskussion +auch mittels + <reference name="Gmane" refuri="http://gmane.org/"> + Gmane + </reference> + als Usenet-Newsgroups angeboten: + </paragraph> + <target ids="gmane" names="gmane" refuri="http://gmane.org/"/> + <bullet_list bullet="*"> + <list_item> + <paragraph> + <literal> + news://news.gmane.org/gmane.politics.oekonux.german + </literal> + </paragraph> + <paragraph> + Spiegelt + <literal> + liste AT oekonux DOT de + </literal> + . + </paragraph> + </list_item> + <list_item> + <paragraph> + <literal> + news://news.gmane.org/gmane.politics.oekonux.english + </literal> + </paragraph> + <paragraph> + Spiegelt + <literal> + list-en AT oekonux DOT org + </literal> + . + </paragraph> + </list_item> + </bullet_list> + <paragraph> + Die News-Groups sind so eingestellt, das Antworten über die News nicht +möglich sind. + </paragraph> + <important> + <paragraph> + Zum heutigen Zeitpunkt (2004-01-23) enthalten die +News-Group-Archive nur die Mails, die geschrieben wurde, nachdem +das News-Group-Feature hinzu genommen wurde. Nachdem das Problem +der lesbaren Mail-Adressen gelöst wurde, ist es angestrebt, dass +die gesamten Archive in das News-Group-Archiv + <reference name="importiert" refuri="http://gmane.org/import.php"> + importiert + </reference> + <target ids="importiert" names="importiert" refuri="http://gmane.org/import.php"/> + werden. + </paragraph> + </important> + <section dupnames="features" ids="id4"> + <title> + Features + </title> + <section ids="suchmaschine" names="suchmaschine"> + <title> + Suchmaschine + </title> + <paragraph> + <reference name="Gmane" refuri="http://gmane.org/"> + Gmane + </reference> + verfügt über eine Suchmaschine, die die entsprechenden +News-Archive durchsuchen. + </paragraph> + <important> + <paragraph> + Zumindest übergangsweise wäre es gut, diese +Suchmaschine direkt über die + <reference name="Web-Sites" refid="web-sites"> + Web-Sites + </reference> + zu verlinken oder +anderweitig zu integrieren. + </paragraph> + </important> + <comment xml:space="preserve"> + LocalWords: reStructuredText Premium page premium oekonux www org Hoster + </comment> + <comment xml:space="preserve"> + LocalWords: konferenz conference second third gehosteten MagicPoint Upload + </comment> + <comment xml:space="preserve"> + LocalWords: SDF make MHonArc Harvesting ToDo important JavaScript noframes + </comment> + <comment xml:space="preserve"> + LocalWords: wget pox Privacy Policy site default html Sitemap FreeFind you + </comment> + <comment xml:space="preserve"> + LocalWords: Perlfect clf Search webalizer mail mail chart Referrer co chat + </comment> + <comment xml:space="preserve"> + LocalWords: forum Kalka Chris Croome Gmane DOT list en mbox Subversion cvs + </comment> + <comment xml:space="preserve"> + LocalWords: StefanMn projekt helfer referenten gepollt Sympa SmartList + </comment> + <comment xml:space="preserve"> + LocalWords: MailMan buug SpamAssassin Individual Network vLinux server + </comment> + <comment xml:space="preserve"> + LocalWords: Repository QBullets annotate hreflang + </comment> + </section> + </section> + </section> +</document> diff --git a/sandbox/xml2rst/tests/real/readable/WikiRequirements.xml b/sandbox/xml2rst/tests/real/readable/WikiRequirements.xml new file mode 100644 index 000000000..d7ecb2ae6 --- /dev/null +++ b/sandbox/xml2rst/tests/real/readable/WikiRequirements.xml @@ -0,0 +1,1170 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/WikiRequirements.rst"> + <paragraph> + #FORMAT rst + </paragraph> + <section ids="requirements-for-an-oekonux-wiki" names="requirements\ for\ an\ oekonux\ wiki"> + <title refid="id1"> + Requirements for an Oekonux Wiki + </title> + <topic classes="contents" ids="contents" names="contents"> + <title> + Contents + </title> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id1" refid="requirements-for-an-oekonux-wiki"> + Requirements for an Oekonux Wiki + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id2" refid="introduction"> + Introduction + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id3" refid="requirements"> + Requirements + </reference> + </paragraph> + <bullet_list> + <list_item> + <paragraph> + <reference ids="id4" refid="non-functional-requirements"> + Non-functional requirements + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id5" refid="functional-requirements"> + Functional requirements + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id6" refid="requirements-for-policy-choices"> + Requirements for policy choices + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + <section ids="introduction" names="introduction"> + <title refid="id2"> + Introduction + </title> + <paragraph> + In + <reference name="Project Oekonux" refuri="http://www.oekonux.de/"> + Project Oekonux + </reference> + there has been a long discussion about setting +up a Wiki for the project. Also several attempts to establish a Wiki +have been made. Most of these discussions took place on + <reference name="the projekt mailing list" refuri="http://www.oekonux.de/projekt/liste/"> + the projekt mailing list + </reference> + +which is the organizing body of the project. + </paragraph> + <paragraph> + One of the most important questions was which Wiki software to use. +Finally a decision has been made based upon the requirements being +raised. + </paragraph> + <paragraph> + The following lists all the requirements which have been found and +lists the alternative solutions for them. One reason for this list is +to document the design decisions / choices taken and their basis in +the requirements. This way it is easier to + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + understand the decisions + </paragraph> + </list_item> + <list_item> + <paragraph> + change decisions while not forgetting about reasons for the original +decision + </paragraph> + </list_item> + </bullet_list> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + <section ids="requirements" names="requirements"> + <title refid="id3"> + Requirements + </title> + <section ids="non-functional-requirements" names="non-functional\ requirements"> + <title refid="id4"> + Non-functional requirements + </title> + <enumerated_list enumtype="arabic" prefix="" suffix="."> + <list_item> + <paragraph> + The software must have an active developer community and must be +Free + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Only an active developer community of a Free Software +project guarantees for a constant development. + </paragraph> + </field_body> + </field> + </field_list> + <paragraph> + Discussion came down to two candidates which met this requirement: + + <reference name="MediaWiki" refuri="http://wikipedia.sourceforge.net/"> + MediaWiki + </reference> + and + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + . The following requirements list +alternative solutions only for these two Wiki implementations. + </paragraph> + </list_item> + <list_item> + <paragraph> + The software must be easy to use for people used to Wikipedia + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Because of the overwhelming success of Wikipedia many +people are used to the way how Wikipedia is operated. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Given by definition. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + The typical use cases need to be identified and a +special help page must be created for these users. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + </enumerated_list> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + <section ids="functional-requirements" names="functional\ requirements"> + <title refid="id5"> + Functional requirements + </title> + <enumerated_list enumtype="arabic" prefix="" suffix="."> + <list_item> + <paragraph> + Email notification must be possible sending diffs and other changes + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Email notification is a basic requirement for any +offline processing. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Rumor has it that there is a plug-in for email +notification but nobody saw it yet (2005-03-26). + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Supports email notification as diffs for arbitrary pages +and page groups (regular expression). Only notifies on moves and +deletion of pages. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + It must be possible to limit changeability of a page (for instance +for user's pages) + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Some pages are private pages or should not be changes +for other reasons. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Don't know whether this can be enforced technically. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Implements access control lists (ACL) allowing for +arbitrary rights. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Categories must be possible + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + With categories can form arbitrary non-hierarchical +structures + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Navigation panels must be available + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Useful to create overviews. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available as + <literal> + Navigation + </literal> + macro for hierarchical +structures and as + <literal> + PageList + </literal> + macro for structures based logical +expressions on regular expressions over page names. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + A version history must be available + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Needed to get an overview of the change history of a +page. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + List of changes for a given user must be available + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Nice to have. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Not available. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + A watch list must be possible reporting about the latest changes +for a given set of pages + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Nice to have. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Can be simulated by email notification. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Automatic links by using CamelCase (aka WikiWords) must not be the +default + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + CamelCase makes sense only in certain language. In +particular German is a language where automatic CamelCase links +are not too useful. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + CamelCase words never create automatic links. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + The + <reference name="NoCamelCase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase"> + NoCamelCase + </reference> + plug-in makes this the default. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Support for other than the standard Wiki syntaxes like + + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + must be available + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + All Wiki languages suck so support for more sane +syntaxes is a very useful thing. In particular support for + + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + being a powerful language and a good candidate +for a standard ASCII based markup language. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + There is no support for any other syntax than the +MediaWiki syntax. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Offers several syntaxes by the concept of parsers. Among +the available syntaxes are + <reference name="reStructuredText" refuri="http://docutils.sourceforge.net/rst.html"> + reStructuredText + </reference> + and + <reference name="LaTeX" refuri="http://www.latex-project.org/"> + LaTeX + </reference> + . + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Arbitrary attachments must be possible + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Nice to have to attach arbitrary data to a page. In +particular it makes possible to include material not marked up in +the Wiki syntax. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Unknown but probably available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="11" suffix="."> + <list_item> + <paragraph> + Shortcuts for links must be available + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + In particular it is useful to be able to reference +entries in the Oekonux mailing list archive as easy as possible. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Implements this by templates. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Implements by InterWiki links. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="12" suffix="."> + <list_item> + <paragraph> + Page templates must be available + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Page templates are a good way to support policy +decisions by offering standard templates for all page types. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Not available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="13" suffix="."> + <list_item> + <paragraph> + It must be possible to revert page changes + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Useful to undo unwanted changes. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="14" suffix="."> + <list_item> + <paragraph> + It must be possible to know who did a change in a page + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Nice to have. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="15" suffix="."> + <list_item> + <paragraph> + Offline usage must be possible as far as possible + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Not everyone is always online so offline facilities are +generally useful. Offline usage includes + </paragraph> + <bullet_list bullet="*"> + <list_item> + <paragraph> + a push feature for change notification + </paragraph> + </list_item> + <list_item> + <paragraph> + browsing + </paragraph> + </list_item> + <list_item> + <paragraph> + editing + </paragraph> + </list_item> + </bullet_list> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Not available. At most email notification is available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Email notification allows for monitoring changes and in +principle the diffs can be used to update a local copy. A local +installation of + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + only needs Python and + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + so it +is easy to accomplish. Because + <reference name="MoinMoin" refuri="http://moinmoin.wikiwikiweb.de/"> + MoinMoin + </reference> + uses a file based +storage scheme it is at least easy to update a local copy in +short online phases for offline use so at least offline browsing +is available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="16" suffix="."> + <list_item> + <paragraph> + Pages must be locked during they are edited + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Page locking prevents parallel editing of a page which +is useful in a highly frequented Wiki. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Not available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Editing a page locks it for 10 minutes and the lock can +be renewed. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <enumerated_list enumtype="arabic" prefix="" start="17" suffix="."> + <list_item> + <paragraph> + It must be possible to edit sections of a page + </paragraph> + </list_item> + </enumerated_list> + <block_quote> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + Makes parallel editing of a page less dangerous which +is useful in a highly frequented Wiki. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Not available. + </paragraph> + </field_body> + </field> + </field_list> + </block_quote> + <comment xml:space="preserve"> + ############################################################################ + </comment> + </section> + <section ids="requirements-for-policy-choices" names="requirements\ for\ policy\ choices"> + <title refid="id6"> + Requirements for policy choices + </title> + <enumerated_list enumtype="arabic" prefix="" suffix="."> + <list_item> + <paragraph> + Pages standing in a certain close relation to a certain other page +must be possible in a sane way + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + There are several ways in which a page can have closely +related pages (e.g. discussion pages). It makes sense to have a +uniform way to express this relation. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Implements discussion pages as one a special type of +closely related pages by suffixing + <literal> + Discussion + </literal> + to the +namespace of a page. For other closely related pages there is no +fixed implementation. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + By making sub-pages possible all types of closely +related pages can be implemented by some fixed names being part +of a policy and supported by page templates. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Structuring of content must be possible by a page hierarchy + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + The maintenance policy may decide to have a page +hierarchy as a structuring principle. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Implements a top level structure by namespaces and +allows for structuring otherwise. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + With sub-pages arbitrary hierarchies can be build on any +level. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Sub-Wikis must be possible + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + The maintenance policy may decide this makes sense. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Not available. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Could be done in a page hierarchy on any level. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + <list_item> + <paragraph> + Underscores and white-space in page names must be possible but +insignificant + </paragraph> + <field_list> + <field> + <field_name> + Rationale + </field_name> + <field_body> + <paragraph> + If the maintenance policy decides that underscores and +white-space may be used in arbitrary ways the software must be +able to reflect this. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MediaWiki + </field_name> + <field_body> + <paragraph> + Unknown. + </paragraph> + </field_body> + </field> + <field> + <field_name> + MoinMoin + </field_name> + <field_body> + <paragraph> + Underscores and white-space is significant. + </paragraph> + </field_body> + </field> + </field_list> + </list_item> + </enumerated_list> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <comment xml:space="preserve"> + ############################################################################ + </comment> + <substitution_definition names="projekt"> + <reference name="the projekt mailing list" refuri="http://www.oekonux.de/projekt/liste/"> + the projekt mailing list + </reference> + </substitution_definition> + <substitution_definition names="NoCamelCase"> + <reference name="NoCamelCase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase"> + NoCamelCase + </reference> + </substitution_definition> + <target ids="project-oekonux" names="project\ oekonux" refuri="http://www.oekonux.de/"/> + <target ids="the-projekt-mailing-list" names="the\ projekt\ mailing\ list" refuri="http://www.oekonux.de/projekt/liste/"/> + <target ids="mediawiki" names="mediawiki" refuri="http://wikipedia.sourceforge.net/"/> + <target ids="moinmoin" names="moinmoin" refuri="http://moinmoin.wikiwikiweb.de/"/> + <target ids="restructuredtext" names="restructuredtext" refuri="http://docutils.sourceforge.net/rst.html"/> + <target ids="latex" names="latex" refuri="http://www.latex-project.org/"/> + <target ids="nocamelcase" names="nocamelcase" refuri="http://moinmoin.wikiwikiweb.de/ParserMarket/NoCamelCase"/> + <comment xml:space="preserve"> + LocalWords: diffs CamelCase InterWiki MoinMoin rst projekt MediaWiki aka + </comment> + <comment xml:space="preserve"> + LocalWords: Wikipedia PageList WikiWords reStructuredText + </comment> + <comment xml:space="preserve"> + LocalWords: Wikis NoCamelCase + </comment> + </section> + </section> +</document> diff --git a/sandbox/xml2rst/tests/simple/expected/header.rst b/sandbox/xml2rst/tests/simple/expected/header.rst new file mode 100644 index 000000000..30ae01b9d --- /dev/null +++ b/sandbox/xml2rst/tests/simple/expected/header.rst @@ -0,0 +1,6 @@ +Some text. + +A header +======== + +Text under header. diff --git a/sandbox/xml2rst/tests/simple/expected/manyLines.rst b/sandbox/xml2rst/tests/simple/expected/manyLines.rst new file mode 100644 index 000000000..9e21cb0ed --- /dev/null +++ b/sandbox/xml2rst/tests/simple/expected/manyLines.rst @@ -0,0 +1,4 @@ +This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. diff --git a/sandbox/xml2rst/tests/simple/expected/oneLine.rst b/sandbox/xml2rst/tests/simple/expected/oneLine.rst new file mode 100644 index 000000000..9557aa1b4 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/expected/oneLine.rst @@ -0,0 +1 @@ +One line. diff --git a/sandbox/xml2rst/tests/simple/expected/targets.rst b/sandbox/xml2rst/tests/simple/expected/targets.rst new file mode 100644 index 000000000..ca4359dd4 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/expected/targets.rst @@ -0,0 +1,23 @@ +Some text containing an _`internal target`. + +A header +======== + + +.. _external target: http://www.example.com/ + +There can be an `external target`_, `a header`_ or an `internal +target`_. + +.. _additional header target: + +Another header +-------------- + +Some text with reference to the `additional header target`_. + +.. _first target: + +.. _second target: + +.. _third target: http://www.example.com/ diff --git a/sandbox/xml2rst/tests/simple/expected/titles.rst b/sandbox/xml2rst/tests/simple/expected/titles.rst new file mode 100644 index 000000000..428468bd2 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/expected/titles.rst @@ -0,0 +1,17 @@ +====================== +The title - autoraised +====================== + +------------------------------ +The subtitle - also autoraised +------------------------------ + +The first section +================= + +Some text in the first section. + +The second second +================= + +More text. diff --git a/sandbox/xml2rst/tests/simple/filterunit.cfg b/sandbox/xml2rst/tests/simple/filterunit.cfg new file mode 100644 index 000000000..af9a91eb3 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/filterunit.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +expectedExtension = .rst + +command = ../../xml2rst.py +options = $< diff --git a/sandbox/xml2rst/tests/simple/input/header.xml b/sandbox/xml2rst/tests/simple/input/header.xml new file mode 100644 index 000000000..c3631e945 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/input/header.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/header.rst"><paragraph>Some text.</paragraph><section ids="a-header" names="a\ header"><title>A header</title><paragraph>Text under header.</paragraph></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/simple/input/manyLines.xml b/sandbox/xml2rst/tests/simple/input/manyLines.xml new file mode 100644 index 000000000..ae95583f7 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/input/manyLines.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/manyLines.rst"><paragraph>This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though.</paragraph></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/simple/input/oneLine.xml b/sandbox/xml2rst/tests/simple/input/oneLine.xml new file mode 100644 index 000000000..038b26370 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/input/oneLine.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/oneLine.rst"><paragraph>One line.</paragraph></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/simple/input/targets.xml b/sandbox/xml2rst/tests/simple/input/targets.xml new file mode 100644 index 000000000..f731e4f03 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/input/targets.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/targets.rst"><paragraph>Some text containing an <target ids="internal-target" names="internal\ target">internal target</target>.</paragraph><section ids="a-header" names="a\ header"><title>A header</title><target ids="external-target" names="external\ target" refuri="http://www.example.com/"/><paragraph>There can be an <reference name="external target" refuri="http://www.example.com/">external target</reference>, <reference name="a header" refid="a-header">a header</reference> or an <reference name="internal target" refid="internal-target">internal +target</reference>.</paragraph><target refid="additional-header-target"/><section ids="another-header additional-header-target" names="another\ header additional\ header\ target"><title>Another header</title><paragraph>Some text with reference to the <reference name="additional header target" refid="additional-header-target">additional header target</reference>.</paragraph><target refid="first-target"/><target refid="second-target"/><target ids="third-target second-target first-target" names="third\ target second\ target first\ target" refuri="http://www.example.com/"/></section></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/simple/input/titles.xml b/sandbox/xml2rst/tests/simple/input/titles.xml new file mode 100644 index 000000000..1e6816092 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/input/titles.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="the-title-autoraised" names="the\ title\ -\ autoraised" source="original/titles.rst" title="The title - autoraised"><title>The title - autoraised</title><subtitle ids="the-subtitle-also-autoraised" names="the\ subtitle\ -\ also\ autoraised">The subtitle - also autoraised</subtitle><section ids="the-first-section" names="the\ first\ section"><title>The first section</title><paragraph>Some text in the first section.</paragraph></section><section ids="the-second-second" names="the\ second\ second"><title>The second second</title><paragraph>More text.</paragraph></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/simple/original/header.rst b/sandbox/xml2rst/tests/simple/original/header.rst new file mode 100644 index 000000000..30ae01b9d --- /dev/null +++ b/sandbox/xml2rst/tests/simple/original/header.rst @@ -0,0 +1,6 @@ +Some text. + +A header +======== + +Text under header. diff --git a/sandbox/xml2rst/tests/simple/original/manyLines.rst b/sandbox/xml2rst/tests/simple/original/manyLines.rst new file mode 100644 index 000000000..9e21cb0ed --- /dev/null +++ b/sandbox/xml2rst/tests/simple/original/manyLines.rst @@ -0,0 +1,4 @@ +This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. diff --git a/sandbox/xml2rst/tests/simple/original/oneLine.rst b/sandbox/xml2rst/tests/simple/original/oneLine.rst new file mode 100644 index 000000000..9557aa1b4 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/original/oneLine.rst @@ -0,0 +1 @@ +One line. diff --git a/sandbox/xml2rst/tests/simple/original/targets.rst b/sandbox/xml2rst/tests/simple/original/targets.rst new file mode 100644 index 000000000..6c5807462 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/original/targets.rst @@ -0,0 +1,20 @@ +Some text containing an _`internal target`. + +A header +======== + +.. _external target: http://www.example.com/ + +There can be an `external target`_, `a header`_ or an `internal +target`_. + +.. _additional header target: + +Another header +-------------- + +Some text with reference to the `additional header target`_. + +.. _first target: +.. _second target: +.. _third target: http://www.example.com/ diff --git a/sandbox/xml2rst/tests/simple/original/titles.rst b/sandbox/xml2rst/tests/simple/original/titles.rst new file mode 100644 index 000000000..428468bd2 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/original/titles.rst @@ -0,0 +1,17 @@ +====================== +The title - autoraised +====================== + +------------------------------ +The subtitle - also autoraised +------------------------------ + +The first section +================= + +Some text in the first section. + +The second second +================= + +More text. diff --git a/sandbox/xml2rst/tests/simple/readable/header.xml b/sandbox/xml2rst/tests/simple/readable/header.xml new file mode 100644 index 000000000..355d4b51e --- /dev/null +++ b/sandbox/xml2rst/tests/simple/readable/header.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/header.rst"> + <paragraph> + Some text. + </paragraph> + <section ids="a-header" names="a\ header"> + <title> + A header + </title> + <paragraph> + Text under header. + </paragraph> + </section> +</document> diff --git a/sandbox/xml2rst/tests/simple/readable/manyLines.xml b/sandbox/xml2rst/tests/simple/readable/manyLines.xml new file mode 100644 index 000000000..0f59a7e4b --- /dev/null +++ b/sandbox/xml2rst/tests/simple/readable/manyLines.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/manyLines.rst"> + <paragraph> + This is a text consisting of many lines. The lines are broken +according to the "natural" folding of Emacs. This folding sets in at +the fill-column which happens to be [^HV fill-column] 70 in this case. +Could be any other value though. + </paragraph> +</document> diff --git a/sandbox/xml2rst/tests/simple/readable/oneLine.xml b/sandbox/xml2rst/tests/simple/readable/oneLine.xml new file mode 100644 index 000000000..ff5d9a59f --- /dev/null +++ b/sandbox/xml2rst/tests/simple/readable/oneLine.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/oneLine.rst"> + <paragraph> + One line. + </paragraph> +</document> diff --git a/sandbox/xml2rst/tests/simple/readable/targets.xml b/sandbox/xml2rst/tests/simple/readable/targets.xml new file mode 100644 index 000000000..7e98980d5 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/readable/targets.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document source="original/targets.rst"> + <paragraph> + Some text containing an + <target ids="internal-target" names="internal\ target"> + internal target + </target> + . + </paragraph> + <section ids="a-header" names="a\ header"> + <title> + A header + </title> + <target ids="external-target" names="external\ target" refuri="http://www.example.com/"/> + <paragraph> + There can be an + <reference name="external target" refuri="http://www.example.com/"> + external target + </reference> + , + <reference name="a header" refid="a-header"> + a header + </reference> + or an + <reference name="internal target" refid="internal-target"> + internal +target + </reference> + . + </paragraph> + <target refid="additional-header-target"/> + <section ids="another-header additional-header-target" names="another\ header additional\ header\ target"> + <title> + Another header + </title> + <paragraph> + Some text with reference to the + <reference name="additional header target" refid="additional-header-target"> + additional header target + </reference> + . + </paragraph> + <target refid="first-target"/> + <target refid="second-target"/> + <target ids="third-target second-target first-target" names="third\ target second\ target first\ target" refuri="http://www.example.com/"/> + </section> + </section> +</document> diff --git a/sandbox/xml2rst/tests/simple/readable/titles.xml b/sandbox/xml2rst/tests/simple/readable/titles.xml new file mode 100644 index 000000000..0578453b6 --- /dev/null +++ b/sandbox/xml2rst/tests/simple/readable/titles.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="the-title-autoraised" names="the\ title\ -\ autoraised" source="original/titles.rst" title="The title - autoraised"> + <title> + The title - autoraised + </title> + <subtitle ids="the-subtitle-also-autoraised" names="the\ subtitle\ -\ also\ autoraised"> + The subtitle - also autoraised + </subtitle> + <section ids="the-first-section" names="the\ first\ section"> + <title> + The first section + </title> + <paragraph> + Some text in the first section. + </paragraph> + </section> + <section ids="the-second-second" names="the\ second\ second"> + <title> + The second second + </title> + <paragraph> + More text. + </paragraph> + </section> +</document> diff --git a/sandbox/xml2rst/tests/synthetic/expected/class.rst b/sandbox/xml2rst/tests/synthetic/expected/class.rst new file mode 100644 index 000000000..ea57b1788 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/expected/class.rst @@ -0,0 +1,399 @@ +.. section-numbering:: + +.. class:: c1 c2 + +============================== +reStructuredText Test Document +============================== + +.. class:: c3 + +----------------------------- +Examples of Syntax Constructs +----------------------------- + +:author: David Goodger +.. bibliographic fields (which also require a transform): + +.. class:: c5 + +:Address: 123 Example Street Example, EX Canada A1B 2C3 + +:Contact: goodger@users.sourceforge.net + +:Authors: Me; Myself; I + +:organization: humankind + +:date: Now, or yesterday. Or maybe even *before* yesterday. + +:status: This is a "work in progress" + +:revision: is managed by a version control system. + +:version: 1 + +: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. + +.. class:: c6 + +:field name: This is a "generic bibliographic field". + +:field name "2": Generic bibliographic fields may contain multiple body elements. + + .. class:: c7 + + Like this. + +.. class:: c8 + +:Dedication: + .. class:: c9 + + For Docutils users & co-developers. + +.. class:: c10 + +:abstract: This is a test document, containing at least one example of each + reStructuredText construct. + +.. contents:: Table of Contents + :class: c12 c11 + + +.. class:: c13 + +Structural Elements +=================== + +.. class:: c14 + +Section Title +------------- + +.. class:: c15 + +That's it, the text just above this line. + +.. class:: c16 + +----- + +.. class:: c17 + +A paragraph. + +Bullet Lists +------------ + +.. class:: c18 + +- A bullet list + + .. class:: c19 + + + Nested bullet list. + + .. class:: c20 + + + Nested item 2. + +Enumerated Lists +---------------- + +.. class:: c21 + +1. Arabic numerals. + + .. class:: c22 + + a) lower alpha) + +Definition Lists +---------------- + +.. class:: c23 + +Term + .. class:: c24 + + Definition + +Field Lists +----------- + +.. class:: c25 + +:how arg1 arg2: + .. class:: c26 + + The field marker is a colon, the field name, and a colon. + + .. class:: c27 + + The field body may contain one or more body elements, indented + relative to the field marker. + +Option Lists +------------ + +For listing command-line options: + +.. class:: c28 + +-a + command-line option "a" + + +.. class:: c29 + +-x, -y, -z + Multiple options are an "option group". + + +Literal Blocks +-------------- + +Literal blocks are indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented + +.. class:: c30 + +:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation + +.. class:: c31 + +:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +.. class:: c32 + +| This is a line block. It ends with a blank line. + +.. class:: c33 + +| New lines begin with a vertical bar ("|"). + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + .. class:: c34 + + 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. + + .. class:: c35 + + -- Anne Elk (Miss) + +Doctest Blocks +-------------- + +.. class:: c36 + +>>> 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) + +Footnotes +--------- + +.. class:: c37 + +.. [1] A footnote contains body elements, consistently indented by at least + 3 spaces. + + .. class:: c38 + + This is the footnote's second paragraph. + +.. class:: c39 + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a hyperlink reference (label_). + +.. class:: c40 + +.. [#] This footnote is numbered automatically and anonymously using a label + of "#" only. + +.. class:: c41 + +.. [*] Footnotes may also use symbols, specified with a "*" label. Here's a + reference to the next footnote: [*]_. + +Citations +--------- + +.. class:: c42 + +.. [CIT2002] Citations are text-labeled footnotes. They may be rendered separately + and differently from footnotes. + +Targets +------- + + +.. _example: + +.. _python: http://www.python.org/ + +.. class:: c43 c44 + +Some__ reference__. + +__ targets_ + +__ http://www.example.com/ + +.. class:: c45 c46 + +Directives +---------- + +.. contents:: + :local: + :class: c47 + + +Images +~~~~~~ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :class: c48 + :target: directives_ + +A figure directive: + +.. figure:: ../../../docs/user/rst/images/title.png + :figclass: c49 + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + .. class:: c50 + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + +Admonitions +~~~~~~~~~~~ + +.. class:: c51 + +.. attention:: Directives at large. + +.. class:: c52 + +.. caution:: Don't take any wooden nickels. + +.. class:: c53 + +.. danger:: Mad scientist at work! + +.. class:: c54 + +.. error:: Does not compute. + +.. class:: c55 + +.. hint:: It's bigger than a bread box. + +.. class:: c56 + +.. important:: + - Wash behind your ears. + + - Clean up your room. + + - Call your mother. + + - Back up your data. + +.. class:: c57 + +.. note:: This is a note. + +.. class:: c58 + +.. tip:: 15% if the service is good. + +.. class:: c59 + +.. warning:: Strong prose may provoke extreme mental exertion. Reader discretion + is strongly advised. + +.. admonition:: And, by the way... + :class: c60 + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + :class: c61 + + This is a sidebar. It is for text outside the flow of the main text. + + .. rubric:: This is a rubric inside a sidebar + :class: c62 + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + :class: c63 + + This is a topic. + +Compound Paragraph +~~~~~~~~~~~~~~~~~~ + +.. compound:: + :class: c64 + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + + * Compound 1, list item two. diff --git a/sandbox/xml2rst/tests/synthetic/expected/standard_0_3_7.rst b/sandbox/xml2rst/tests/synthetic/expected/standard_0_3_7.rst new file mode 100644 index 000000000..dd00b5be5 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/expected/standard_0_3_7.rst @@ -0,0 +1,659 @@ +.. section-numbering:: + +============================== +reStructuredText Test Document +============================== + +----------------------------- +Examples of Syntax Constructs +----------------------------- + +:author: David Goodger +:address: 123 Example Street + Example, EX Canada + A1B 2C3 +:contact: goodger@users.sourceforge.net +:authors: Me; Myself; I +:organization: humankind +:date: Now, or yesterday. Or maybe even *before* yesterday. +:status: This is a "work in progress" +:revision: is managed by a version control system. +:version: 1 +: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. +:field name: This is a "generic bibliographic field". + +:field name "2": Generic bibliographic fields may contain multiple body elements. + + Like this. + + +:Dedication: + + For Docutils users & co-developers. + +:Abstract: + + This is a test document, containing at least one example of each + reStructuredText construct. + +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. _doctitle: + +.. Above is the document title, and below is the subtitle. + They are transformed from section titles after parsing. + +.. _subtitle: + +.. bibliographic fields (which also require a transform): + +.. contents:: Table of Contents + + +Structural Elements +=================== + +Section Title +------------- + +That's it, the text just above this line. + +Empty Section +------------- + +Transitions +----------- + +Here's a transition: + +----- + +It divides the section. Transitions may also occur between sections: + +----- + + +Body Elements +============= + +Paragraphs +---------- + +A paragraph. + +Inline Markup +~~~~~~~~~~~~~ + +Paragraphs contain text and may contain inline markup: *emphasis*, +**strong emphasis**, ``inline literals``, standalone hyperlinks +(http://www.python.org), external hyperlinks (Python_ ), internal +cross-references (example_), external hyperlinks with embedded URIs +(`Python web site <http://www.python.org>`__), footnote references +(manually numbered [1]_, anonymous auto-numbered [#]_, labeled +auto-numbered [#label]_, or symbolic [*]_), citation references +([CIT2002]_), substitution references (|EXAMPLE|), and _`inline +hyperlink targets` (see Targets_ below for a reference back to here). +Character-level inline markup is also possible (although exceedingly +ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by +|problematic| text (generated by processing errors; this one is +intentional). Here is a reference to the doctitle_ and the subtitle_. + +The default role for interpreted text is `Title Reference`. Here are +some explicit interpreted text roles: a PEP reference (:PEP:`287`); an +RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for *standard* **inline** +``markup``. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``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).`` + +If the ``--pep-references`` option was supplied, there should be a +live link to PEP 258 here. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + + * Nested item 2. + + - Third level. + + - Item 2. + + * Nested item 3. + + * This nested list should be compacted by the HTML writer. + + .. _target: + + .. Even if this item contains a target and a comment. + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + i. iii + + i. iv + +Definition Lists +---------------- + +Term + Definition + +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. + +Term + Definition + +Term : classifier one : classifier two + Definition + +Field Lists +----------- + +:what: 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. + +:how arg1 arg2: The field marker is a colon, the field name, and a colon. + + The field body may contain one or more body elements, indented + relative to the field marker. + +:credits: + .. class:: credits + + This paragraph has the `credits` class set. (This is actually not + about credits but just for ensuring that the class attribute + doesn't get stripped away.) + +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 + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z + Multiple options are an "option group". + +-v, --verbose + Commonly-seen: short & long options. + +-1 file, --one=file, --two file + Multiple options with 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 indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented: + +:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation: + +:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +| This is a line block. It ends with a blank line. +| New lines begin with a vertical bar ("|"). +| Line breaks and initial indent are significant, and preserved. +| Continuation lines are also possible. A long line that is intended + to wrap should begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Another line block, surrounded by paragraphs: + +| And it's no good waiting by the window +| It's no good waiting for the sun +| Please believe me, the things you dream of +| They don't fall in the lap of no-one + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + 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. + + -- 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) + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a hyperlink reference + (label_). + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + + This is the second paragraph. + + And this is the third paragraph. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [CIT2002] Citations are text-labeled footnotes. They may be + rendered separately and differently from footnotes. + +Here's a reference to the above, [CIT2002]_, and a [nonexistent]_ +citation. + +Targets +------- + + +.. _example: + +This paragraph is pointed to by the explicit "example" target. A +reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as +"Python_ ". + +.. _python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ targets_ + +Here's a `hyperlink reference without a target`_, which generates an +error. + +And another phrase__ pointing to an anonymous hyperlink. + +__ http://www.example.com/ + +Duplicate Target Names +~~~~~~~~~~~~~~~~~~~~~~ + +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. + +Duplicate Target Names +~~~~~~~~~~~~~~~~~~~~~~ + +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: `Duplicate Target Names`_), an error is generated. + +Directives +---------- + +.. contents:: + :local: + +These are just a sample of the many reStructuredText Directives. For +others, please see +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + +Document Parts +~~~~~~~~~~~~~~ + +An example of the "contents" directive can be seen above this section +(a local, untitled table of contents_) and at the beginning of the +document (a document-wide `table of contents`_). + +Images +~~~~~~ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :target: directives_ + + +.. image:: ../../../docs/user/rst/images/title.png + :target: http://www.merten-home.de/ + +A figure directive: + +.. figure:: ../../../docs/user/rst/images/title.png + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +Admonitions +~~~~~~~~~~~ + +.. attention:: Directives at large. + +.. caution:: Don't take any wooden nickels. + +.. danger:: Mad scientist at work! + +.. error:: Does not compute. + +.. hint:: It's bigger than a bread box. + +.. important:: + - Wash behind your ears. + + - Clean up your room. + + - Call your mother. + + - Back up your data. + +.. note:: This is a note. + +.. tip:: 15% if the service is good. + +.. warning:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +~~~~~~~~~~~~~~~~ + +.. target-notes:: + +Replacement Text +~~~~~~~~~~~~~~~~ + +I recommend you try Python, *the* best language around . + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +~~~~~~~~~~~~~~~~~~ + +.. compound:: + :class: some-class + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + + * Compound 1, list item two. + +Another compound statement: + +.. compound:: + + Compound 2, a literal block: + + :: + + Compound 2, literal. + + Compound 2, this is a test. + +.. compound:: + + Compound 3, only consisting of one paragraph. + +.. compound:: + + :: + + Compound 4. + This one starts with a literal block. + + Compound 4, a paragraph. + +Now something *really* perverted -- a nested compound block. In +LaTeX, the following paragraphs should all be first-line indented: + +.. compound:: + + Compound 5, block 1 (a paragraph). + + .. compound:: + + Compound 6, block 2 in compound 5. + + Compound 6, another paragraph. + + Compound 5, block 3 (a paragraph). + +.. compound:: + + Compound 7, with a table inside: + + +--------------------+--------------------+--------------------+ + | Left cell, first | Middle cell, | Right cell. | + | paragraph. | consisting of | | + | | exactly one | Paragraph 2. | + | Left cell, second | paragraph. | | + | paragraph. | | Paragraph 3. | + +--------------------+--------------------+--------------------+ + + Compound 7, a paragraph after the table. + + Compound 7, another paragraph. + +Substitution Definitions +------------------------ + +An inline image (|EXAMPLE|) example: + +.. |EXAMPLE| image:: ../../../docs/user/rst/images/biohazard.png + + +(Substitution definitions are not visible in the HTML source.) + +Comments +-------- + +Here's one: + +.. 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. + +(View the HTML source to see the comment.) + +Raw text +-------- + +This does not necessarily look nice, because there may be missing white space. + +It's just there to freeze the behavior. + +.. raw:: html latex + + A test. + +.. raw:: html latex + + Second test. + +.. class:: myclass + +.. raw:: html latex + + Another test with myclass set. + +This is the :RAW-ROLE:`fourth test` with myrawroleclass set. + +.. raw:: html + + Fifth test in HTML.<br />Line two. + +.. raw:: latex + + Fifth test in LaTeX.\\Line two. diff --git a/sandbox/xml2rst/tests/synthetic/expected/standard_r6008.rst b/sandbox/xml2rst/tests/synthetic/expected/standard_r6008.rst new file mode 100644 index 000000000..583fa06b8 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/expected/standard_r6008.rst @@ -0,0 +1,807 @@ +.. section-numbering:: + +============================== +reStructuredText Test Document +============================== + +----------------------------- +Examples of Syntax Constructs +----------------------------- + +:author: David Goodger +:address: 123 Example Street + Example, EX Canada + A1B 2C3 +:contact: goodger@python.org +:authors: Me; Myself; I +:organization: humankind +:date: Now, or yesterday. Or maybe even *before* yesterday. +:status: This is a "work in progress" +:revision: is managed by a version control system. +:version: 1 +: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. +:field name: This is a "generic bibliographic field". + +:field name "2": Generic bibliographic fields may contain multiple body elements. + + Like this. + + +:Dedication: + + For Docutils users & co-developers. + +:Abstract: + + This is a test document, containing at least one example of each + reStructuredText construct. + +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. _doctitle: + +.. Above is the document title, and below is the subtitle. + They are transformed from section titles after parsing. + +.. _subtitle: + +.. bibliographic fields (which also require a transform): + +.. contents:: Table of Contents + + +Structural Elements +=================== + +Section Title +------------- + +Section Subtitle +~~~~~~~~~~~~~~~~ + +That's it, the text just above this line. + +Empty Section +------------- + +Transitions +----------- + +Here's a transition: + +----- + +It divides the section. Transitions may also occur between sections: + +----- + + +Body Elements +============= + +Paragraphs +---------- + +A paragraph. + +Inline Markup +~~~~~~~~~~~~~ + +Paragraphs contain text and may contain inline markup: *emphasis*, +**strong emphasis**, ``inline literals``, standalone hyperlinks +(http://www.python.org), external hyperlinks (Python_ ), internal +cross-references (example_), external hyperlinks with embedded URIs +(`Python web site <http://www.python.org>`__), `anonymous hyperlink +references`__ (`a second reference`__ ), footnote references (manually +numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered +[#label]_, or symbolic [*]_), citation references ([CIT2002]_), +substitution references (|EXAMPLE|), and _`inline hyperlink targets` +(see Targets_ below for a reference back to here). Character-level +inline markup is also possible (although exceedingly ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by |problematic| text +(generated by processing errors; this one is intentional). Here is a +reference to the doctitle_ and the subtitle_. + +__ http://www.python.org/ + +__ http://docutils.sourceforge.net/ + +The default role for interpreted text is `Title Reference`. Here are +some explicit interpreted text roles: a PEP reference (:PEP:`287`); an +RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for *standard* **inline** +``markup``. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``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).`` + +If the ``--pep-references`` option was supplied, there should be a +live link to PEP 258 here. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + + * Nested item 2. + + - Third level. + + - Item 2. + + * Nested item 3. + + * This nested list should be compacted by the HTML writer. + + .. _target: + + .. Even if this item contains a target and a comment. + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + i. iii + + i. iv + +Definition Lists +---------------- + +Term + Definition + +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. + +Term + Definition + +Term : classifier one : classifier two + Definition + +Field Lists +----------- + +:what: 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. + +:how arg1 arg2: The field marker is a colon, the field name, and a colon. + + The field body may contain one or more body elements, indented + relative to the field marker. + +:credits: + .. class:: credits + + This paragraph has the `credits` class set. (This is actually not + about credits but just for ensuring that the class attribute + doesn't get stripped away.) + +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 + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z + Multiple options are an "option group". + +-v, --verbose + Commonly-seen: short & long options. + +-1 file, --one=file, --two file + Multiple options with 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 indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented: + +:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation: + +:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +| This is a line block. It ends with a blank line. +| New lines begin with a vertical bar ("|"). +| Line breaks and initial indent are significant, and preserved. +| Continuation lines are also possible. A long line that is intended + to wrap should begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Another line block, surrounded by paragraphs: + +| And it's no good waiting by the window +| It's no good waiting for the sun +| Please believe me, the things you dream of +| They don't fall in the lap of no-one + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + 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. + + -- 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) + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a `hyperlink reference`__. + + __ label_ + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + + This is the second paragraph. + + And this is the third paragraph. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [CIT2002] Citations are text-labeled footnotes. They may be + rendered separately and differently from footnotes. + +Here's a reference to the above, [CIT2002]_, and a [nonexistent]_ +citation. + +.. _another target: + +Targets +------- + + +.. _example: + +This paragraph is pointed to by the explicit "example" target. A +reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as +"Python_ ". + +.. _python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ targets_ + +Here's a `hyperlink reference without a target`_, which generates an +error. + +Duplicate Target Names +~~~~~~~~~~~~~~~~~~~~~~ + +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. + +Duplicate Target Names +~~~~~~~~~~~~~~~~~~~~~~ + +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: `Duplicate Target Names`_), an error is generated. + +Directives +---------- + +.. contents:: + :local: + +These are just a sample of the many reStructuredText Directives. For +others, please see +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + +Document Parts +~~~~~~~~~~~~~~ + +An example of the "contents" directive can be seen above this section +(a local, untitled table of contents_) and at the beginning of the +document (a document-wide `table of contents`_). + +Images and Figures +~~~~~~~~~~~~~~~~~~ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :class: class1 class2 + :target: directives_ + +Image with multiple IDs: + +.. _image target 1: + +.. _image target 2: + +.. _image target 3: + +.. image:: ../../../docs/user/rst/images/title.png + + +A centered image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: center + + +A left-aligned image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: left + + +This paragraph might flow around the image. +The specific behavior depends upon the style sheet and +the browser or rendering software used. + +A right-aligned image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: right + + +This paragraph might flow around the image. +The specific behavior depends upon the style sheet and +the browser or rendering software used. + +For inline images see `Substitution Definitions`_. + +Image size: + +An image 2 em wide: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :width: 2em + + +An image 2 em wide and 15 pixel high: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :height: 15px + :width: 2em + + +An image occupying 50% of the line width: + +.. image:: ../../../docs/user/rst/images/title.png + :width: 50% + + +An image 2 cm high: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :height: 2cm + + +A *figure* 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. + +.. figure:: ../../../docs/user/rst/images/title.png + :figclass: figclass1 figclass2 + :alt: reStructuredText, the markup syntax + :class: class1 class2 + :width: 258 + + Plaintext markup syntax and parser system. + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +A left-aligned figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :figclass: figclass1 figclass2 + :align: left + :alt: reStructuredText, the markup syntax + :class: class1 class2 + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + +A centered figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :align: center + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + +A right-aligned figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :align: right + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + +Admonitions +~~~~~~~~~~~ + +.. attention:: Directives at large. + +.. caution:: Don't take any wooden nickels. + +.. danger:: Mad scientist at work! + +.. error:: Does not compute. + +.. hint:: It's bigger than a bread box. + +.. important:: + - Wash behind your ears. + + - Clean up your room. + + - Call your mother. + + - Back up your data. + +.. note:: This is a note. + +.. tip:: 15% if the service is good. + +.. warning:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + + .. _docutils: http://docutils.sourceforge.net/ + +Topics, Sidebars, and Rubrics +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +~~~~~~~~~~~~~~~~ + +.. target-notes:: + +Replacement Text +~~~~~~~~~~~~~~~~ + +I recommend you try Python, *the* best language around . + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +~~~~~~~~~~~~~~~~~~ + +.. compound:: + :class: some-class + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + + * Compound 1, list item two. + +Another compound statement: + +.. compound:: + + Compound 2, a literal block: + + :: + + Compound 2, literal. + + Compound 2, this is a test. + +.. compound:: + + Compound 3, only consisting of one paragraph. + +.. compound:: + + :: + + Compound 4. + This one starts with a literal block. + + Compound 4, a paragraph. + +Now something *really* perverted -- a nested compound block. This is +just to test that it works at all; the results don't have to be +meaningful. + +.. compound:: + + Compound 5, block 1 (a paragraph). + + .. compound:: + + Compound 6, block 2 in compound 5. + + Compound 6, another paragraph. + + Compound 5, block 3 (a paragraph). + +.. compound:: + + Compound 7, with a table inside: + + +--------------------+--------------------+--------------------+ + | Left cell, first | Middle cell, | Right cell. | + | paragraph. | consisting of | | + | | exactly one | Paragraph 2. | + | Left cell, second | paragraph. | | + | paragraph. | | Paragraph 3. | + +--------------------+--------------------+--------------------+ + + Compound 7, a paragraph after the table. + + Compound 7, another paragraph. + +Parsed Literal Blocks +~~~~~~~~~~~~~~~~~~~~~ + + +.. parsed-literal:: + + This is a parsed literal block. + This line is indented. The next line is blank. + + Inline markup is supported, e.g. *emphasis*, **strong**, ``literal + text``, footnotes [1]_, _`hyperlink targets`, and `references <http://www.python.org/>`_. + +Substitution Definitions +------------------------ + +An inline image (|EXAMPLE|) example: + +.. |EXAMPLE| image:: ../../../docs/user/rst/images/biohazard.png + + +(Substitution definitions are not visible in the HTML source.) + +Comments +-------- + +Here's one: + +.. 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: ä ö ü æ ø å + +(View the HTML source to see the comment.) + +Raw text +-------- + +This does not necessarily look nice, because there may be missing white space. + +It's just there to freeze the behavior. + +.. raw:: html latex + + A test. + +.. raw:: html latex + + Second test. + +.. class:: myclass + +.. raw:: html latex + + Another test with myclass set. + +This is the :RAW-ROLE:`fourth test` with myrawroleclass set. + +.. raw:: html + + Fifth test in HTML.<br />Line two. + +.. raw:: latex + + Fifth test in LaTeX.\\Line two. + +Container +--------- + +.. container:: custom + + paragraph 1 + + paragraph 2 diff --git a/sandbox/xml2rst/tests/synthetic/filterunit.cfg b/sandbox/xml2rst/tests/synthetic/filterunit.cfg new file mode 100644 index 000000000..af9a91eb3 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/filterunit.cfg @@ -0,0 +1,5 @@ +inputExtension = .xml +expectedExtension = .rst + +command = ../../xml2rst.py +options = $< diff --git a/sandbox/xml2rst/tests/synthetic/input/class.xml b/sandbox/xml2rst/tests/synthetic/input/class.xml new file mode 100644 index 000000000..d5d940f66 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/input/class.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document classes="c1 c2" ids="restructuredtext-test-document" names="restructuredtext\ test\ document" source="original/class.rst" title="reStructuredText Test Document"><title>reStructuredText Test Document</title><subtitle classes="c3" ids="examples-of-syntax-constructs" names="examples\ of\ syntax\ constructs">Examples of Syntax Constructs</subtitle><docinfo><author>David Goodger</author></docinfo><comment xml:space="preserve">bibliographic fields (which also require a transform):</comment><field_list classes="c5"><field><field_name>Address</field_name><field_body><paragraph>123 Example Street Example, EX Canada A1B 2C3</paragraph></field_body></field><field><field_name>Contact</field_name><field_body><paragraph><reference refuri="mailto:goodger@users.sourceforge.net">goodger@users.sourceforge.net</reference></paragraph></field_body></field><field><field_name>Authors</field_name><field_body><paragraph>Me; Myself; I</paragraph></field_body></field><field><field_name>organization</field_name><field_body><paragraph>humankind</paragraph></field_body></field><field><field_name>date</field_name><field_body><paragraph>Now, or yesterday. Or maybe even <emphasis>before</emphasis> yesterday.</paragraph></field_body></field><field><field_name>status</field_name><field_body><paragraph>This is a "work in progress"</paragraph></field_body></field><field><field_name>revision</field_name><field_body><paragraph>is managed by a version control system.</paragraph></field_body></field><field><field_name>version</field_name><field_body><paragraph>1</paragraph></field_body></field><field><field_name>copyright</field_name><field_body><paragraph>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.</paragraph></field_body></field></field_list><field_list classes="c6"><field><field_name>field name</field_name><field_body><paragraph>This is a "generic bibliographic field".</paragraph></field_body></field><field><field_name>field name "2"</field_name><field_body><paragraph>Generic bibliographic fields may contain multiple body elements.</paragraph><paragraph classes="c7">Like this.</paragraph></field_body></field></field_list><field_list classes="c8"><field><field_name>Dedication</field_name><field_body><paragraph classes="c9">For Docutils users & co-developers.</paragraph></field_body></field></field_list><field_list classes="c10"><field><field_name>abstract</field_name><field_body><paragraph>This is a test document, containing at least one example of each +reStructuredText construct.</paragraph></field_body></field></field_list><topic classes="contents c12 c11" ids="table-of-contents" names="table\ of\ contents"><title>Table of Contents</title><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id9" refid="structural-elements"><generated classes="sectnum">1   </generated>Structural Elements</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id10" refid="section-title"><generated classes="sectnum">1.1   </generated>Section Title</reference></paragraph></list_item><list_item><paragraph><reference ids="id11" refid="bullet-lists"><generated classes="sectnum">1.2   </generated>Bullet Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id12" refid="enumerated-lists"><generated classes="sectnum">1.3   </generated>Enumerated Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id13" refid="definition-lists"><generated classes="sectnum">1.4   </generated>Definition Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id14" refid="field-lists"><generated classes="sectnum">1.5   </generated>Field Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id15" refid="option-lists"><generated classes="sectnum">1.6   </generated>Option Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id16" refid="literal-blocks"><generated classes="sectnum">1.7   </generated>Literal Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id17" refid="line-blocks"><generated classes="sectnum">1.8   </generated>Line Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id18" refid="block-quotes"><generated classes="sectnum">1.9   </generated>Block Quotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id19" refid="doctest-blocks"><generated classes="sectnum">1.10   </generated>Doctest Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id20" refid="footnotes"><generated classes="sectnum">1.11   </generated>Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id21" refid="citations"><generated classes="sectnum">1.12   </generated>Citations</reference></paragraph></list_item><list_item><paragraph><reference ids="id22" refid="targets"><generated classes="sectnum">1.13   </generated>Targets</reference></paragraph></list_item><list_item><paragraph><reference ids="id23" refid="directives"><generated classes="sectnum">1.14   </generated>Directives</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id24" refid="images"><generated classes="sectnum">1.14.1   </generated>Images</reference></paragraph></list_item><list_item><paragraph><reference ids="id25" refid="admonitions"><generated classes="sectnum">1.14.2   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id26" refid="topics-sidebars-and-rubrics"><generated classes="sectnum">1.14.3   </generated>Topics, Sidebars, and Rubrics</reference></paragraph></list_item><list_item><paragraph><reference ids="id27" refid="compound-paragraph"><generated classes="sectnum">1.14.4   </generated>Compound Paragraph</reference></paragraph></list_item></bullet_list></list_item></bullet_list></list_item></bullet_list></topic><section classes="c13" ids="structural-elements" names="structural\ elements"><title auto="1" refid="id9"><generated classes="sectnum">1   </generated>Structural Elements</title><section classes="c14" ids="section-title" names="section\ title"><title auto="1" refid="id10"><generated classes="sectnum">1.1   </generated>Section Title</title><paragraph classes="c15">That's it, the text just above this line.</paragraph><transition classes="c16"/><paragraph classes="c17">A paragraph.</paragraph></section><section ids="bullet-lists" names="bullet\ lists"><title auto="1" refid="id11"><generated classes="sectnum">1.2   </generated>Bullet Lists</title><bullet_list bullet="-" classes="c18"><list_item><paragraph>A bullet list</paragraph><bullet_list bullet="+" classes="c19"><list_item><paragraph>Nested bullet list.</paragraph></list_item></bullet_list><bullet_list bullet="+" classes="c20"><list_item><paragraph>Nested item 2.</paragraph></list_item></bullet_list></list_item></bullet_list></section><section ids="enumerated-lists" names="enumerated\ lists"><title auto="1" refid="id12"><generated classes="sectnum">1.3   </generated>Enumerated Lists</title><enumerated_list classes="c21" enumtype="arabic" prefix="" suffix="."><list_item><paragraph>Arabic numerals.</paragraph><enumerated_list classes="c22" enumtype="loweralpha" prefix="" suffix=")"><list_item><paragraph>lower alpha)</paragraph></list_item></enumerated_list></list_item></enumerated_list></section><section ids="definition-lists" names="definition\ lists"><title auto="1" refid="id13"><generated classes="sectnum">1.4   </generated>Definition Lists</title><definition_list classes="c23"><definition_list_item><term>Term</term><definition><paragraph classes="c24">Definition</paragraph></definition></definition_list_item></definition_list></section><section ids="field-lists" names="field\ lists"><title auto="1" refid="id14"><generated classes="sectnum">1.5   </generated>Field Lists</title><field_list classes="c25"><field><field_name>how arg1 arg2</field_name><field_body><paragraph classes="c26">The field marker is a colon, the field name, and a colon.</paragraph><paragraph classes="c27">The field body may contain one or more body elements, indented +relative to the field marker.</paragraph></field_body></field></field_list></section><section ids="option-lists" names="option\ lists"><title auto="1" refid="id15"><generated classes="sectnum">1.6   </generated>Option Lists</title><paragraph>For listing command-line options:</paragraph><option_list classes="c28"><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><option_list classes="c29"><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></section><section ids="literal-blocks" names="literal\ blocks"><title auto="1" refid="id16"><generated classes="sectnum">1.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 classes="c30" 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 classes="c31" 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="id17"><generated classes="sectnum">1.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 classes="c32"><line>This is a line block. It ends with a blank line.</line></line_block><line_block classes="c33"><line>New lines begin with a vertical bar ("|").</line></line_block></section><section ids="block-quotes" names="block\ quotes"><title auto="1" refid="id18"><generated classes="sectnum">1.9   </generated>Block Quotes</title><paragraph>Block quotes consist of indented body elements:</paragraph><block_quote><paragraph classes="c34">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 classes="c35">Anne Elk (Miss)</attribution></block_quote></section><section ids="doctest-blocks" names="doctest\ blocks"><title auto="1" refid="id19"><generated classes="sectnum">1.10   </generated>Doctest Blocks</title><doctest_block classes="c36" 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="id20"><generated classes="sectnum">1.11   </generated>Footnotes</title><footnote backrefs="id2" classes="c37" ids="id1" names="1"><label>1</label><paragraph>A footnote contains body elements, consistently indented by at least +3 spaces.</paragraph><paragraph classes="c38">This is the footnote's second paragraph.</paragraph></footnote><footnote auto="1" backrefs="id3" classes="c39" ids="label" names="label"><label>2</label><paragraph>Footnotes may be numbered, either manually (as in <footnote_reference ids="id2" refid="id1">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="id3" refid="label">2</footnote_reference>) and as a hyperlink reference (<reference name="label" refid="label">label</reference>).</paragraph></footnote><footnote auto="1" classes="c40" ids="id4" names="3"><label>3</label><paragraph>This footnote is numbered automatically and anonymously using a label +of "#" only.</paragraph></footnote><footnote auto="*" backrefs="id6" classes="c41" ids="id5"><label>*</label><paragraph>Footnotes may also use symbols, specified with a "*" label. Here's a +reference to the next footnote: <footnote_reference auto="*" ids="id6" refid="id5">*</footnote_reference>.</paragraph></footnote></section><section ids="citations" names="citations"><title auto="1" refid="id21"><generated classes="sectnum">1.12   </generated>Citations</title><citation classes="c42" ids="cit2002" names="cit2002"><label>CIT2002</label><paragraph>Citations are text-labeled footnotes. They may be rendered separately +and differently from footnotes.</paragraph></citation></section><section ids="targets" names="targets"><title auto="1" refid="id22"><generated classes="sectnum">1.13   </generated>Targets</title><target refid="example"/><target ids="python example" names="python example" refuri="http://www.python.org/"/><paragraph classes="c43 c44"><reference anonymous="1" name="Some" refid="targets">Some</reference> <reference anonymous="1" name="reference" refuri="http://www.example.com/">reference</reference>.</paragraph><target anonymous="1" ids="id7" refid="targets"/><target anonymous="1" ids="id8" refuri="http://www.example.com/"/></section><section classes="c45 c46" ids="directives" names="directives"><title auto="1" refid="id23"><generated classes="sectnum">1.14   </generated>Directives</title><topic classes="contents c47 local" ids="contents" names="contents"><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id28" refid="images"><generated classes="sectnum">1.14.1   </generated>Images</reference></paragraph></list_item><list_item><paragraph><reference ids="id29" refid="admonitions"><generated classes="sectnum">1.14.2   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id30" refid="topics-sidebars-and-rubrics"><generated classes="sectnum">1.14.3   </generated>Topics, Sidebars, and Rubrics</reference></paragraph></list_item><list_item><paragraph><reference ids="id31" refid="compound-paragraph"><generated classes="sectnum">1.14.4   </generated>Compound Paragraph</reference></paragraph></list_item></bullet_list></topic><section ids="images" names="images"><title auto="1" refid="id28"><generated classes="sectnum">1.14.1   </generated>Images</title><paragraph>An image directive (also clickable -- a hyperlink reference):</paragraph><reference name="directives" refid="directives"><image classes="c48" uri="../../../docs/user/rst/images/title.png"/></reference><paragraph>A figure directive:</paragraph><figure classes="c49"><image alt="reStructuredText, the markup syntax" uri="../../../docs/user/rst/images/title.png"/><caption>A figure is an image with a caption and/or a legend:</caption><legend><table classes="c50"><tgroup cols="2"><colspec colwidth="12"/><colspec colwidth="47"/><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></legend></figure></section><section ids="admonitions" names="admonitions"><title auto="1" refid="id29"><generated classes="sectnum">1.14.2   </generated>Admonitions</title><attention classes="c51"><paragraph>Directives at large.</paragraph></attention><caution classes="c52"><paragraph>Don't take any wooden nickels.</paragraph></caution><danger classes="c53"><paragraph>Mad scientist at work!</paragraph></danger><error classes="c54"><paragraph>Does not compute.</paragraph></error><hint classes="c55"><paragraph>It's bigger than a bread box.</paragraph></hint><important classes="c56"><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 classes="c57"><paragraph>This is a note.</paragraph></note><tip classes="c58"><paragraph>15% if the service is good.</paragraph></tip><warning classes="c59"><paragraph>Strong prose may provoke extreme mental exertion. Reader discretion +is strongly advised.</paragraph></warning><admonition classes="c60"><title>And, by the way...</title><paragraph>You can make up your own admonition too.</paragraph></admonition></section><section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"><title auto="1" refid="id30"><generated classes="sectnum">1.14.3   </generated>Topics, Sidebars, and Rubrics</title><sidebar classes="c61"><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 classes="c62">This is a rubric inside a sidebar</rubric><paragraph>Sidebars often appears beside the main text with a border and +background color.</paragraph></sidebar><topic classes="c63"><title>Topic Title</title><paragraph>This is a topic.</paragraph></topic></section><section ids="compound-paragraph" names="compound\ paragraph"><title auto="1" refid="id31"><generated classes="sectnum">1.14.4   </generated>Compound Paragraph</title><compound classes="c64"><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></section></section></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/synthetic/input/standard_0_3_7.xml b/sandbox/xml2rst/tests/synthetic/input/standard_0_3_7.xml new file mode 100644 index 000000000..8843abd0a --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/input/standard_0_3_7.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="restructuredtext-test-document doctitle" names="restructuredtext\ test\ document doctitle" source="original/standard_0_3_7.rst" 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><docinfo><author>David Goodger</author><address xml:space="preserve">123 Example Street +Example, EX Canada +A1B 2C3</address><contact><reference refuri="mailto:goodger@users.sourceforge.net">goodger@users.sourceforge.net</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><field_name>field name</field_name><field_body><paragraph>This is a "generic bibliographic field".</paragraph></field_body></field><field><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"/><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"/><comment xml:space="preserve">bibliographic fields (which also require a transform):</comment><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="id28" refid="structural-elements"><generated classes="sectnum">1   </generated>Structural Elements</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id29" refid="section-title"><generated classes="sectnum">1.1   </generated>Section Title</reference></paragraph></list_item><list_item><paragraph><reference ids="id30" refid="empty-section"><generated classes="sectnum">1.2   </generated>Empty Section</reference></paragraph></list_item><list_item><paragraph><reference ids="id31" refid="transitions"><generated classes="sectnum">1.3   </generated>Transitions</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id32" refid="body-elements"><generated classes="sectnum">2   </generated>Body Elements</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id33" refid="paragraphs"><generated classes="sectnum">2.1   </generated>Paragraphs</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id34" 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="id35" refid="bullet-lists"><generated classes="sectnum">2.2   </generated>Bullet Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id36" refid="enumerated-lists"><generated classes="sectnum">2.3   </generated>Enumerated Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id37" refid="definition-lists"><generated classes="sectnum">2.4   </generated>Definition Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id38" refid="field-lists"><generated classes="sectnum">2.5   </generated>Field Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id39" refid="option-lists"><generated classes="sectnum">2.6   </generated>Option Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id40" refid="literal-blocks"><generated classes="sectnum">2.7   </generated>Literal Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id41" refid="line-blocks"><generated classes="sectnum">2.8   </generated>Line Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id42" refid="block-quotes"><generated classes="sectnum">2.9   </generated>Block Quotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id43" refid="doctest-blocks"><generated classes="sectnum">2.10   </generated>Doctest Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id44" refid="footnotes"><generated classes="sectnum">2.11   </generated>Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id45" refid="citations"><generated classes="sectnum">2.12   </generated>Citations</reference></paragraph></list_item><list_item><paragraph><reference ids="id46" refid="targets"><generated classes="sectnum">2.13   </generated>Targets</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id47" refid="duplicate-target-names"><generated classes="sectnum">2.13.1   </generated>Duplicate Target Names</reference></paragraph></list_item><list_item><paragraph><reference ids="id48" refid="id19"><generated classes="sectnum">2.13.2   </generated>Duplicate Target Names</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id49" refid="directives"><generated classes="sectnum">2.14   </generated>Directives</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id50" refid="document-parts"><generated classes="sectnum">2.14.1   </generated>Document Parts</reference></paragraph></list_item><list_item><paragraph><reference ids="id51" refid="images"><generated classes="sectnum">2.14.2   </generated>Images</reference></paragraph></list_item><list_item><paragraph><reference ids="id52" refid="admonitions"><generated classes="sectnum">2.14.3   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id53" 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="id54" refid="target-footnotes"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id55" refid="replacement-text"><generated classes="sectnum">2.14.6   </generated>Replacement Text</reference></paragraph></list_item><list_item><paragraph><reference ids="id56" refid="compound-paragraph"><generated classes="sectnum">2.14.7   </generated>Compound Paragraph</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id57" refid="substitution-definitions"><generated classes="sectnum">2.15   </generated>Substitution Definitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id58" refid="comments"><generated classes="sectnum">2.16   </generated>Comments</reference></paragraph></list_item><list_item><paragraph><reference ids="id59" refid="raw-text"><generated classes="sectnum">2.17   </generated>Raw text</reference></paragraph></list_item></bullet_list></list_item></bullet_list></topic><section ids="structural-elements" names="structural\ elements"><title auto="1" refid="id28"><generated classes="sectnum">1   </generated>Structural Elements</title><section ids="section-title" names="section\ title"><title auto="1" refid="id29"><generated classes="sectnum">1.1   </generated>Section Title</title><paragraph>That's it, the text just above this line.</paragraph></section><section ids="empty-section" names="empty\ section"><title auto="1" refid="id30"><generated classes="sectnum">1.2   </generated>Empty Section</title></section><section ids="transitions" names="transitions"><title auto="1" refid="id31"><generated classes="sectnum">1.3   </generated>Transitions</title><paragraph>Here's a transition:</paragraph><transition/><paragraph>It divides the section. Transitions may also occur between sections:</paragraph></section></section><transition/><section ids="body-elements" names="body\ elements"><title auto="1" refid="id32"><generated classes="sectnum">2   </generated>Body Elements</title><section ids="paragraphs" names="paragraphs"><title auto="1" refid="id33"><generated classes="sectnum">2.1   </generated>Paragraphs</title><paragraph>A paragraph.</paragraph><section ids="inline-markup" names="inline\ markup"><title auto="1" refid="id34"><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="id23" refid="id22">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>), footnote references +(manually numbered <footnote_reference ids="id1" refid="id6">1</footnote_reference>, anonymous auto-numbered <footnote_reference auto="1" ids="id2" refid="id9">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="id10">*</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"/>), 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="id21" refid="id20">|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><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://www.faqs.org/rfcs/rfc2822.html">RFC 2822</reference>); a <subscript>subscript</subscript>; a <superscript>superscript</superscript>; +and explicit roles for <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="id35"><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"/><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="id36"><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><enumerated_list enumtype="upperalpha" prefix="" start="3" suffix="."><list_item><paragraph>C</paragraph></list_item><list_item><paragraph>D</paragraph></list_item></enumerated_list><enumerated_list enumtype="lowerroman" prefix="" start="3" suffix="."><list_item><paragraph>iii</paragraph></list_item><list_item><paragraph>iv</paragraph></list_item></enumerated_list></list_item></enumerated_list></section><section ids="definition-lists" names="definition\ lists"><title auto="1" refid="id37"><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="id38"><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="id39"><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="id40"><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="id41"><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>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>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_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_block></line_block></line_block><line>Singing...</line></line_block></block_quote></section><section ids="block-quotes" names="block\ quotes"><title auto="1" refid="id42"><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></section><section ids="doctest-blocks" names="doctest\ blocks"><title auto="1" refid="id43"><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="id44"><generated classes="sectnum">2.11   </generated>Footnotes</title><footnote backrefs="id1 id7" ids="id6" 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 id8" ids="label" names="label"><label>2</label><paragraph>Footnotes may be numbered, either manually (as in <footnote_reference ids="id7" refid="id6">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="id8" refid="label">2</footnote_reference>) and as a hyperlink reference +(<reference name="label" refid="label">label</reference>).</paragraph></footnote><footnote auto="1" backrefs="id2" ids="id9" 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="id10"><label>*</label><paragraph>Footnotes may also use symbols, specified with a "*" label. +Here's a reference to the next footnote: <footnote_reference auto="*" ids="id11" refid="id12">†</footnote_reference>.</paragraph></footnote><footnote auto="*" backrefs="id11" ids="id12"><label>†</label><paragraph>This footnote shows the next symbol in the sequence.</paragraph></footnote><footnote ids="id13" names="4"><label>4</label><paragraph>Here's an unreferenced footnote, with a reference to a +nonexistent footnote: <problematic ids="id68 id14" refid="id67">[5]_</problematic>.</paragraph></footnote></section><section ids="citations" names="citations"><title auto="1" refid="id45"><generated classes="sectnum">2.12   </generated>Citations</title><citation backrefs="id5 id15" 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="id15" refid="cit2002">CIT2002</citation_reference>, and a <problematic ids="id70 id16" refid="id69">[nonexistent]_</problematic> +citation.</paragraph></section><section ids="targets" names="targets"><title auto="1" refid="id46"><generated classes="sectnum">2.13   </generated>Targets</title><target refid="example"/><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="id24" refid="id22">5</footnote_reference>".</paragraph><target ids="python" names="python" refuri="http://www.python.org/"/><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="id17" refid="targets"/><paragraph>Here's a <problematic ids="id72" refid="id71">`hyperlink reference without a target`_</problematic>, which generates an +error.</paragraph><paragraph>And another <reference anonymous="1" name="phrase" refuri="http://www.example.com/">phrase</reference> <footnote_reference auto="1" ids="id27" refid="id26">6</footnote_reference> pointing to an anonymous hyperlink.</paragraph><target anonymous="1" ids="id18" refuri="http://www.example.com/"/><section dupnames="duplicate\ target\ names" ids="duplicate-target-names"><title auto="1" refid="id47"><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="id19"><title auto="1" refid="id48"><generated classes="sectnum">2.13.2   </generated>Duplicate Target Names</title><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="id74" refid="id73">`Duplicate Target Names`_</problematic>), an error is generated.</paragraph></section></section><section ids="directives" names="directives"><title auto="1" refid="id49"><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="id60" refid="document-parts"><generated classes="sectnum">2.14.1   </generated>Document Parts</reference></paragraph></list_item><list_item><paragraph><reference ids="id61" refid="images"><generated classes="sectnum">2.14.2   </generated>Images</reference></paragraph></list_item><list_item><paragraph><reference ids="id62" refid="admonitions"><generated classes="sectnum">2.14.3   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id63" 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="id64" refid="target-footnotes"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id65" refid="replacement-text"><generated classes="sectnum">2.14.6   </generated>Replacement Text</reference></paragraph></list_item><list_item><paragraph><reference ids="id66" refid="compound-paragraph"><generated classes="sectnum">2.14.7   </generated>Compound Paragraph</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="id60"><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" names="images"><title auto="1" refid="id61"><generated classes="sectnum">2.14.2   </generated>Images</title><paragraph>An image directive (also clickable -- a hyperlink reference):</paragraph><reference name="directives" refid="directives"><image uri="../../../docs/user/rst/images/title.png"/></reference><reference refuri="http://www.merten-home.de/"><image uri="../../../docs/user/rst/images/title.png"/></reference><paragraph>A figure directive:</paragraph><figure><image alt="reStructuredText, the markup syntax" uri="../../../docs/user/rst/images/title.png"/><caption>A figure is an image with a caption and/or a legend:</caption><legend><table><tgroup cols="2"><colspec colwidth="12"/><colspec colwidth="47"/><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></section><section ids="admonitions" names="admonitions"><title auto="1" refid="id62"><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></admonition></section><section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"><title auto="1" refid="id63"><generated classes="sectnum">2.14.4   </generated>Topics, Sidebars, and Rubrics</title><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 appears beside the main text with a border and +background color.</paragraph></sidebar><topic><title>Topic Title</title><paragraph>This is a topic.</paragraph></topic><rubric>This is a rubric</rubric></section><section ids="target-footnotes" names="target\ footnotes"><title auto="1" refid="id64"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</title><footnote auto="1" backrefs="id23 id24 id25" ids="id22" names="TARGET_NOTE:\ id22"><label>5</label><paragraph><reference refuri="http://www.python.org/">http://www.python.org/</reference></paragraph></footnote><footnote auto="1" backrefs="id27" ids="id26" names="TARGET_NOTE:\ id26"><label>6</label><paragraph><reference refuri="http://www.example.com/">http://www.example.com/</reference></paragraph></footnote></section><section ids="replacement-text" names="replacement\ text"><title auto="1" refid="id65"><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="id25" refid="id22">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="id66"><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. In +LaTeX, the following paragraphs should all be first-line indented:</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 colwidth="20"/><colspec colwidth="20"/><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><section ids="substitution-definitions" names="substitution\ definitions"><title auto="1" refid="id57"><generated classes="sectnum">2.15   </generated>Substitution Definitions</title><paragraph>An inline image (<image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/>) example:</paragraph><substitution_definition names="EXAMPLE"><image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/></substitution_definition><paragraph>(Substitution definitions are not visible in the HTML source.)</paragraph></section><section ids="comments" names="comments"><title auto="1" refid="id58"><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.</comment><paragraph>(View the HTML source to see the comment.)</paragraph></section><section ids="raw-text" names="raw\ text"><title auto="1" refid="id59"><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><section classes="system-messages"><title>Docutils System Messages</title><system_message backrefs="id21" ids="id20" level="3" line="96" source="original/standard_0_3_7.rst" type="ERROR"><paragraph>Undefined substitution referenced: "problematic".</paragraph></system_message><system_message backrefs="id68" ids="id67" level="3" line="350" source="original/standard_0_3_7.rst" type="ERROR"><paragraph>Unknown target name: "5".</paragraph></system_message><system_message backrefs="id70" ids="id69" level="3" line="359" source="original/standard_0_3_7.rst" type="ERROR"><paragraph>Unknown target name: "nonexistent".</paragraph></system_message><system_message backrefs="id72" ids="id71" level="3" line="384" source="original/standard_0_3_7.rst" type="ERROR"><paragraph>Unknown target name: "hyperlink reference without a target".</paragraph></system_message><system_message backrefs="id74" ids="id73" level="3" line="401" source="original/standard_0_3_7.rst" type="ERROR"><paragraph>Duplicate target name, cannot be used as a unique reference: "duplicate target names".</paragraph></system_message></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/synthetic/input/standard_r6008.xml b/sandbox/xml2rst/tests/synthetic/input/standard_r6008.xml new file mode 100644 index 000000000..3ec8d4804 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/input/standard_r6008.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="restructuredtext-test-document doctitle" names="restructuredtext\ test\ document doctitle" source="original/standard_r6008.rst" 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><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><field_name>field name</field_name><field_body><paragraph>This is a "generic bibliographic field".</paragraph></field_body></field><field><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"/><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"/><comment xml:space="preserve">bibliographic fields (which also require a transform):</comment><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="id32" refid="structural-elements"><generated classes="sectnum">1   </generated>Structural Elements</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id33" refid="section-title"><generated classes="sectnum">1.1   </generated>Section Title</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id34" refid="section-subtitle"><generated classes="sectnum">1.1.1   </generated>Section Subtitle</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id35" refid="empty-section"><generated classes="sectnum">1.2   </generated>Empty Section</reference></paragraph></list_item><list_item><paragraph><reference ids="id36" refid="transitions"><generated classes="sectnum">1.3   </generated>Transitions</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id37" refid="body-elements"><generated classes="sectnum">2   </generated>Body Elements</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id38" refid="paragraphs"><generated classes="sectnum">2.1   </generated>Paragraphs</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id39" 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="id40" refid="bullet-lists"><generated classes="sectnum">2.2   </generated>Bullet Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id41" refid="enumerated-lists"><generated classes="sectnum">2.3   </generated>Enumerated Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id42" refid="definition-lists"><generated classes="sectnum">2.4   </generated>Definition Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id43" refid="field-lists"><generated classes="sectnum">2.5   </generated>Field Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id44" refid="option-lists"><generated classes="sectnum">2.6   </generated>Option Lists</reference></paragraph></list_item><list_item><paragraph><reference ids="id45" refid="literal-blocks"><generated classes="sectnum">2.7   </generated>Literal Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id46" refid="line-blocks"><generated classes="sectnum">2.8   </generated>Line Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id47" refid="block-quotes"><generated classes="sectnum">2.9   </generated>Block Quotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id48" refid="doctest-blocks"><generated classes="sectnum">2.10   </generated>Doctest Blocks</reference></paragraph></list_item><list_item><paragraph><reference ids="id49" refid="footnotes"><generated classes="sectnum">2.11   </generated>Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id50" refid="citations"><generated classes="sectnum">2.12   </generated>Citations</reference></paragraph></list_item><list_item><paragraph><reference ids="id51" refid="targets"><generated classes="sectnum">2.13   </generated>Targets</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id52" refid="duplicate-target-names"><generated classes="sectnum">2.13.1   </generated>Duplicate Target Names</reference></paragraph></list_item><list_item><paragraph><reference ids="id53" 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="id54" refid="directives"><generated classes="sectnum">2.14   </generated>Directives</reference></paragraph><bullet_list classes="auto-toc"><list_item><paragraph><reference ids="id55" refid="document-parts"><generated classes="sectnum">2.14.1   </generated>Document Parts</reference></paragraph></list_item><list_item><paragraph><reference ids="id56" refid="images-and-figures"><generated classes="sectnum">2.14.2   </generated>Images and Figures</reference></paragraph></list_item><list_item><paragraph><reference ids="id57" refid="admonitions"><generated classes="sectnum">2.14.3   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id58" 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="id59" refid="target-footnotes"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id60" refid="replacement-text"><generated classes="sectnum">2.14.6   </generated>Replacement Text</reference></paragraph></list_item><list_item><paragraph><reference ids="id61" refid="compound-paragraph"><generated classes="sectnum">2.14.7   </generated>Compound Paragraph</reference></paragraph></list_item><list_item><paragraph><reference ids="id62" refid="parsed-literal-blocks"><generated classes="sectnum">2.14.8   </generated>Parsed Literal Blocks</reference></paragraph></list_item></bullet_list></list_item><list_item><paragraph><reference ids="id63" refid="substitution-definitions"><generated classes="sectnum">2.15   </generated>Substitution Definitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id64" refid="comments"><generated classes="sectnum">2.16   </generated>Comments</reference></paragraph></list_item><list_item><paragraph><reference ids="id65" refid="raw-text"><generated classes="sectnum">2.17   </generated>Raw text</reference></paragraph></list_item><list_item><paragraph><reference ids="id66" refid="container"><generated classes="sectnum">2.18   </generated>Container</reference></paragraph></list_item></bullet_list></list_item></bullet_list></topic><section ids="structural-elements" names="structural\ elements"><title auto="1" refid="id32"><generated classes="sectnum">1   </generated>Structural Elements</title><section ids="section-title" names="section\ title"><title auto="1" refid="id33"><generated classes="sectnum">1.1   </generated>Section Title</title><section ids="section-subtitle" names="section\ subtitle"><title auto="1" refid="id34"><generated classes="sectnum">1.1.1   </generated>Section Subtitle</title><paragraph>That's it, the text just above this line.</paragraph></section></section><section ids="empty-section" names="empty\ section"><title auto="1" refid="id35"><generated classes="sectnum">1.2   </generated>Empty Section</title></section><section ids="transitions" names="transitions"><title auto="1" refid="id36"><generated classes="sectnum">1.3   </generated>Transitions</title><paragraph>Here's a transition:</paragraph><transition/><paragraph>It divides the section. Transitions may also occur between sections:</paragraph></section></section><transition/><section ids="body-elements" names="body\ elements"><title auto="1" refid="id37"><generated classes="sectnum">2   </generated>Body Elements</title><section ids="paragraphs" names="paragraphs"><title auto="1" refid="id38"><generated classes="sectnum">2.1   </generated>Paragraphs</title><paragraph>A paragraph.</paragraph><section ids="inline-markup" names="inline\ markup"><title auto="1" refid="id39"><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="id29" 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="id31" refid="id30">6</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"/>), 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 anonymous="1" ids="id7" refuri="http://docutils.sourceforge.net/"/><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://www.faqs.org/rfcs/rfc2822.html">RFC 2822</reference>); a <subscript>subscript</subscript>; a <superscript>superscript</superscript>; +and explicit roles for <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="id40"><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"/><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="id41"><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><enumerated_list enumtype="upperalpha" prefix="" start="3" suffix="."><list_item><paragraph>C</paragraph></list_item><list_item><paragraph>D</paragraph></list_item></enumerated_list><enumerated_list enumtype="lowerroman" prefix="" start="3" suffix="."><list_item><paragraph>iii</paragraph></list_item><list_item><paragraph>iv</paragraph></list_item></enumerated_list></list_item></enumerated_list></section><section ids="definition-lists" names="definition\ lists"><title auto="1" refid="id42"><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="id43"><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="id44"><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="id45"><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="id46"><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>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>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_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_block></line_block></line_block><line>Singing...</line></line_block></block_quote></section><section ids="block-quotes" names="block\ quotes"><title auto="1" refid="id47"><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></section><section ids="doctest-blocks" names="doctest\ blocks"><title auto="1" refid="id48"><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="id49"><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"/></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="id76 id17" refid="id75">[5]_</problematic>.</paragraph></footnote></section><section ids="citations" names="citations"><title auto="1" refid="id50"><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="id78 id19" refid="id77">[nonexistent]_</problematic> +citation.</paragraph><target refid="another-target"/></section><section ids="targets another-target" names="targets another\ target"><title auto="1" refid="id51"><generated classes="sectnum">2.13   </generated>Targets</title><target refid="example"/><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/"/><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"/><paragraph>Here's a <problematic ids="id80" refid="id79">`hyperlink reference without a target`_</problematic>, which generates an +error.</paragraph><section dupnames="duplicate\ target\ names" ids="duplicate-target-names"><title auto="1" refid="id52"><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="id53"><generated classes="sectnum">2.13.2   </generated>Duplicate Target Names</title><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="id82" refid="id81">`Duplicate Target Names`_</problematic>), an error is generated.</paragraph></section></section><section ids="directives" names="directives"><title auto="1" refid="id54"><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="id67" refid="document-parts"><generated classes="sectnum">2.14.1   </generated>Document Parts</reference></paragraph></list_item><list_item><paragraph><reference ids="id68" refid="images-and-figures"><generated classes="sectnum">2.14.2   </generated>Images and Figures</reference></paragraph></list_item><list_item><paragraph><reference ids="id69" refid="admonitions"><generated classes="sectnum">2.14.3   </generated>Admonitions</reference></paragraph></list_item><list_item><paragraph><reference ids="id70" 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="id71" refid="target-footnotes"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</reference></paragraph></list_item><list_item><paragraph><reference ids="id72" refid="replacement-text"><generated classes="sectnum">2.14.6   </generated>Replacement Text</reference></paragraph></list_item><list_item><paragraph><reference ids="id73" refid="compound-paragraph"><generated classes="sectnum">2.14.7   </generated>Compound Paragraph</reference></paragraph></list_item><list_item><paragraph><reference ids="id74" refid="parsed-literal-blocks"><generated classes="sectnum">2.14.8   </generated>Parsed Literal Blocks</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="id67"><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="id68"><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"/></reference><paragraph>Image with multiple IDs:</paragraph><target refid="image-target-1"/><target refid="image-target-2"/><target refid="image-target-3"/><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"/><paragraph>A centered image:</paragraph><image align="center" uri="../../../docs/user/rst/images/biohazard.png"/><paragraph>A left-aligned image:</paragraph><image align="left" uri="../../../docs/user/rst/images/biohazard.png"/><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"/><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"/><paragraph>An image 2 em wide and 15 pixel high:</paragraph><image height="15px" uri="../../../docs/user/rst/images/biohazard.png" width="2em"/><paragraph>An image occupying 50% of the line width:</paragraph><image uri="../../../docs/user/rst/images/title.png" width="50%"/><paragraph>An image 2 cm high:</paragraph><image height="2cm" uri="../../../docs/user/rst/images/biohazard.png"/><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"/><caption>Plaintext markup syntax and parser system.</caption><legend><table><tgroup cols="2"><colspec colwidth="12"/><colspec colwidth="47"/><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"><image alt="reStructuredText, the markup syntax" classes="class1 class2" uri="../../../docs/user/rst/images/biohazard.png" width="50"/><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>A centered figure:</paragraph><figure align="center"><image uri="../../../docs/user/rst/images/biohazard.png" width="50"/><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>A right-aligned figure:</paragraph><figure align="right"><image uri="../../../docs/user/rst/images/biohazard.png" width="50"/><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></section><section ids="admonitions" names="admonitions"><title auto="1" refid="id69"><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/"/></admonition></section><section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"><title auto="1" refid="id70"><generated classes="sectnum">2.14.4   </generated>Topics, Sidebars, and Rubrics</title><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 appears beside the main text with a border and +background color.</paragraph></sidebar><topic><title>Topic Title</title><paragraph>This is a topic.</paragraph></topic><rubric>This is a rubric</rubric></section><section ids="target-footnotes" names="target\ footnotes"><title auto="1" refid="id71"><generated classes="sectnum">2.14.5   </generated>Target Footnotes</title><footnote auto="1" backrefs="id26 id27 id28 id29" 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="id31" ids="id30" names="TARGET_NOTE:\ id30"><label>6</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="id72"><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="id73"><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 colwidth="20"/><colspec colwidth="20"/><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="id74"><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>, 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/"/>.</literal_block></section></section><section ids="substitution-definitions" names="substitution\ definitions"><title auto="1" refid="id63"><generated classes="sectnum">2.15   </generated>Substitution Definitions</title><paragraph>An inline image (<image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/>) example:</paragraph><substitution_definition names="EXAMPLE"><image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/></substitution_definition><paragraph>(Substitution definitions are not visible in the HTML source.)</paragraph></section><section ids="comments" names="comments"><title auto="1" refid="id64"><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="id65"><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="id66"><generated classes="sectnum">2.18   </generated>Container</title><container classes="custom"><paragraph>paragraph 1</paragraph><paragraph>paragraph 2</paragraph></container></section></section><section classes="system-messages"><title>Docutils System Messages</title><system_message backrefs="id24" ids="id23" level="3" line="98" source="original/standard_r6008.rst" type="ERROR"><paragraph>Undefined substitution referenced: "problematic".</paragraph></system_message><system_message backrefs="id76" ids="id75" level="3" line="357" source="original/standard_r6008.rst" type="ERROR"><paragraph>Unknown target name: "5".</paragraph></system_message><system_message backrefs="id78" ids="id77" level="3" line="366" source="original/standard_r6008.rst" type="ERROR"><paragraph>Unknown target name: "nonexistent".</paragraph></system_message><system_message backrefs="id80" ids="id79" level="3" line="393" source="original/standard_r6008.rst" type="ERROR"><paragraph>Unknown target name: "hyperlink reference without a target".</paragraph></system_message><system_message backrefs="id82" ids="id81" level="3" line="406" source="original/standard_r6008.rst" type="ERROR"><paragraph>Duplicate target name, cannot be used as a unique reference: "duplicate target names".</paragraph></system_message></section></document>
\ No newline at end of file diff --git a/sandbox/xml2rst/tests/synthetic/original/class.rst b/sandbox/xml2rst/tests/synthetic/original/class.rst new file mode 100644 index 000000000..16d3c8202 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/original/class.rst @@ -0,0 +1,407 @@ +.. section-numbering:: + +.. class:: c1 + +.. class:: c2 + +============================== +reStructuredText Test Document +============================== + +.. class:: c3 + +----------------------------- +Examples of Syntax Constructs +----------------------------- + +.. bibliographic fields (which also require a transform): + +.. class:: c4 + +:Author: David Goodger + +.. class:: c5 + +:Address: 123 Example Street Example, EX Canada A1B 2C3 + +:Contact: goodger@users.sourceforge.net + +:Authors: Me; Myself; I + +:organization: humankind + +:date: Now, or yesterday. Or maybe even *before* yesterday. + +:status: This is a "work in progress" + +:revision: is managed by a version control system. + +:version: 1 + +: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. + +.. class:: c6 + +:field name: This is a "generic bibliographic field". + +:field name "2": Generic bibliographic fields may contain multiple body elements. + + .. class:: c7 + + Like this. + +.. class:: c8 + +:Dedication: + + .. class:: c9 + + For Docutils users & co-developers. + +.. class:: c10 + +:abstract: This is a test document, containing at least one example of each + reStructuredText construct. + +.. class:: c11 + +.. contents:: Table of Contents + :class: c12 + +.. class:: c13 + +Structural Elements +=================== + +.. class:: c14 + +Section Title +------------- + +.. class:: c15 + +That's it, the text just above this line. + +.. class:: c16 + +----- + +.. class:: c17 + +A paragraph. + +Bullet Lists +------------ + +.. class:: c18 + +- A bullet list + + .. class:: c19 + + + Nested bullet list. + + .. class:: c20 + + + Nested item 2. + +Enumerated Lists +---------------- + +.. class:: c21 + +1. Arabic numerals. + + .. class:: c22 + + a) lower alpha) + +Definition Lists +---------------- + +.. class:: c23 + +Term + .. class:: c24 + + Definition + +Field Lists +----------- + +.. class:: c25 + +:how arg1 arg2: + + .. class:: c26 + + The field marker is a colon, the field name, and a colon. + + .. class:: c27 + + The field body may contain one or more body elements, indented + relative to the field marker. + +Option Lists +------------ + +For listing command-line options: + +.. class:: c28 + +-a + command-line option "a" + +.. class:: c29 + +-x, -y, -z + Multiple options are an "option group". + +Literal Blocks +-------------- + +Literal blocks are indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented + +.. class:: c30 + +:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation + +.. class:: c31 + +:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +.. class:: c32 + +| This is a line block. It ends with a blank line. + +.. class:: c33 + +| New lines begin with a vertical bar ("|"). + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + .. class:: c34 + + 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. + + .. class:: c35 + + -- Anne Elk (Miss) + +Doctest Blocks +-------------- + +.. class:: c36 + +>>> 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) + +Footnotes +--------- + +.. class:: c37 + +.. [1] A footnote contains body elements, consistently indented by at least + 3 spaces. + + .. class:: c38 + + This is the footnote's second paragraph. + +.. class:: c39 + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a hyperlink reference (label_). + +.. class:: c40 + +.. [#] This footnote is numbered automatically and anonymously using a label + of "#" only. + +.. class:: c41 + +.. [*] Footnotes may also use symbols, specified with a "*" label. Here's a + reference to the next footnote: [*]_. + +Citations +--------- + +.. class:: c42 + +.. [CIT2002] Citations are text-labeled footnotes. They may be rendered separately + and differently from footnotes. + +Targets +------- + +.. class:: c43 + +.. _example: + +.. class:: c44 + +.. _Python: http://www.python.org/ + +Some__ reference__. + +.. class:: c45 + +__ Targets_ + +.. class:: c46 + +__ http://www.example.com/ + +Directives +---------- + +.. contents:: :local: + :class: c47 + +Images +~~~~~~ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :class: c48 + :target: directives_ + +A figure directive: + +.. figure:: ../../../docs/user/rst/images/title.png + :figclass: c49 + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + .. class:: c50 + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + +Admonitions +~~~~~~~~~~~ + +.. class:: c51 + +.. attention:: Directives at large. + +.. class:: c52 + +.. caution:: Don't take any wooden nickels. + +.. class:: c53 + +.. danger:: Mad scientist at work! + +.. class:: c54 + +.. error:: Does not compute. + +.. class:: c55 + +.. hint:: It's bigger than a bread box. + +.. class:: c56 + +.. important:: + - Wash behind your ears. + + - Clean up your room. + + - Call your mother. + + - Back up your data. + +.. class:: c57 + +.. note:: This is a note. + +.. class:: c58 + +.. tip:: 15% if the service is good. + +.. class:: c59 + +.. warning:: Strong prose may provoke extreme mental exertion. Reader discretion + is strongly advised. + +.. admonition:: And, by the way... + :class: c60 + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + :class: c61 + + This is a sidebar. It is for text outside the flow of the main text. + + .. class:: c62 + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + :class: c63 + + This is a topic. + +Compound Paragraph +~~~~~~~~~~~~~~~~~~ + +.. compound:: + :class: c64 + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + + * Compound 1, list item two. diff --git a/sandbox/xml2rst/tests/synthetic/original/standard_0_3_7.rst b/sandbox/xml2rst/tests/synthetic/original/standard_0_3_7.rst new file mode 100644 index 000000000..9e39d2404 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/original/standard_0_3_7.rst @@ -0,0 +1,636 @@ +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. _doctitle: + +================================ + reStructuredText Test Document +================================ + +.. Above is the document title, and below is the subtitle. + They are transformed from section titles after parsing. + +.. _subtitle: + +-------------------------------- + Examples of Syntax Constructs +-------------------------------- + +.. bibliographic fields (which also require a transform): + +:Author: David Goodger +:Address: 123 Example Street + Example, EX Canada + A1B 2C3 +:Contact: goodger@users.sourceforge.net +:Authors: Me; Myself; I +:organization: humankind +:date: Now, or yesterday. Or maybe even *before* yesterday. +:status: This is a "work in progress" +:revision: is managed by a version control system. +:version: 1 +: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. +:field name: This is a "generic bibliographic field". +:field name "2": + Generic bibliographic fields may contain multiple body elements. + + Like this. + +:Dedication: + + For Docutils users & co-developers. + +:abstract: + + This is a test document, containing at least one example of each + reStructuredText construct. + +.. meta:: + :keywords: reStructuredText, test, parser + :description lang=en: A test document, containing at least one + example of each reStructuredText construct. + +.. contents:: Table of Contents +.. section-numbering:: + + +Structural Elements +=================== + +Section Title +------------- + +That's it, the text just above this line. + +Empty Section +------------- + +Transitions +----------- + +Here's a transition: + +--------- + +It divides the section. Transitions may also occur between sections: + +--------- + +Body Elements +============= + +Paragraphs +---------- + +A paragraph. + +Inline Markup +````````````` + +Paragraphs contain text and may contain inline markup: *emphasis*, +**strong emphasis**, ``inline literals``, standalone hyperlinks +(http://www.python.org), external hyperlinks (Python_), internal +cross-references (example_), external hyperlinks with embedded URIs +(`Python web site <http://www.python.org>`__), footnote references +(manually numbered [1]_, anonymous auto-numbered [#]_, labeled +auto-numbered [#label]_, or symbolic [*]_), citation references +([CIT2002]_), substitution references (|example|), and _`inline +hyperlink targets` (see Targets_ below for a reference back to here). +Character-level inline markup is also possible (although exceedingly +ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by +|problematic| text (generated by processing errors; this one is +intentional). Here is a reference to the doctitle_ and the subtitle_. + +The default role for interpreted text is `Title Reference`. Here are +some explicit interpreted text roles: a PEP reference (:PEP:`287`); an +RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for :emphasis:`standard` :strong:`inline` +:literal:`markup`. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``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).`` + +If the ``--pep-references`` option was supplied, there should be a +live link to PEP 258 here. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + * Nested item 2. + + - Third level. + - Item 2. + + * Nested item 3. + + * This nested list should be compacted by the HTML writer. + + .. _target: + + .. Even if this item contains a target and a comment. + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + iii. iii + + iv. iv + +Definition Lists +---------------- + +Term + Definition +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. +Term + Definition +Term : classifier one : classifier two + Definition + +Field Lists +----------- + +:what: 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. + +:how arg1 arg2: + + The field marker is a colon, the field name, and a colon. + + The field body may contain one or more body elements, indented + relative to the field marker. + +:credits: + + .. class:: credits + + This paragraph has the `credits` class set. (This is actually not + about credits but just for ensuring that the class attribute + doesn't get stripped away.) + +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 + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z Multiple options are an "option group". +-v, --verbose Commonly-seen: short & long options. +-1 file, --one=file, --two file + Multiple options with 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 indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +| This is a line block. It ends with a blank line. +| New lines begin with a vertical bar ("|"). +| Line breaks and initial indent are significant, and preserved. +| Continuation lines are also possible. A long line that is intended + to wrap should begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Another line block, surrounded by paragraphs: + +| And it's no good waiting by the window +| It's no good waiting for the sun +| Please believe me, the things you dream of +| They don't fall in the lap of no-one + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + 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. + + -- 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) + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a hyperlink reference + (label_). + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + + This is the second paragraph. + + And this is the third paragraph. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [CIT2002] Citations are text-labeled footnotes. They may be + rendered separately and differently from footnotes. + +Here's a reference to the above, [CIT2002]_, and a [nonexistent]_ +citation. + +Targets +------- + +.. _example: + +This paragraph is pointed to by the explicit "example" target. A +reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as +"Python_". + +.. _Python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ Targets_ + +Here's a `hyperlink reference without a target`_, which generates an +error. + +And another phrase__ pointing to an anonymous hyperlink. + +__ http://www.example.com/ + +Duplicate Target Names +`````````````````````` + +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. + +Duplicate Target Names +`````````````````````` + +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: `Duplicate Target Names`_), an error is generated. + +Directives +---------- + +.. contents:: :local: + +These are just a sample of the many reStructuredText Directives. For +others, please see +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + +Document Parts +`````````````` + +An example of the "contents" directive can be seen above this section +(a local, untitled table of contents_) and at the beginning of the +document (a document-wide `table of contents`_). + +Images +`````` + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :target: directives_ + +.. image:: ../../../docs/user/rst/images/title.png + :target: http://www.merten-home.de/ + +A figure directive: + +.. figure:: ../../../docs/user/rst/images/title.png + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +Admonitions +``````````` + +.. Attention:: Directives at large. + +.. Caution:: + + Don't take any wooden nickels. + +.. DANGER:: Mad scientist at work! + +.. Error:: Does not compute. + +.. Hint:: It's bigger than a bread box. + +.. Important:: + - Wash behind your ears. + - Clean up your room. + - Call your mother. + - Back up your data. + +.. Note:: This is a note. + +.. Tip:: 15% if the service is good. + +.. WARNING:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +````````````````````````````` + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +```````````````` + +.. target-notes:: + + +Replacement Text +```````````````` + +I recommend you try |Python|_. + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +`````````````````` + +.. compound:: + :class: some-class + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + * Compound 1, list item two. + +Another compound statement: + +.. compound:: + + Compound 2, a literal block:: + + Compound 2, literal. + + Compound 2, this is a test. + +.. compound:: + + Compound 3, only consisting of one paragraph. + +.. compound:: + + :: + + Compound 4. + This one starts with a literal block. + + Compound 4, a paragraph. + +Now something *really* perverted -- a nested compound block. In +LaTeX, the following paragraphs should all be first-line indented: + +.. compound:: + + Compound 5, block 1 (a paragraph). + + .. compound:: + + Compound 6, block 2 in compound 5. + + Compound 6, another paragraph. + + Compound 5, block 3 (a paragraph). + +.. compound:: + + Compound 7, with a table inside: + + +--------------------+--------------------+--------------------+ + | Left cell, first | Middle cell, | Right cell. | + | paragraph. | consisting of | | + | | exactly one | Paragraph 2. | + | Left cell, second | paragraph. | | + | paragraph. | | Paragraph 3. | + +--------------------+--------------------+--------------------+ + + Compound 7, a paragraph after the table. + + Compound 7, another paragraph. + +Substitution Definitions +------------------------ + +An inline image (|example|) example: + +.. |EXAMPLE| image:: ../../../docs/user/rst/images/biohazard.png + +(Substitution definitions are not visible in the HTML source.) + +Comments +-------- + +Here's one: + +.. 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. + +(View the HTML source to see the comment.) + +Raw text +-------- + +This does not necessarily look nice, because there may be missing white space. + +It's just there to freeze the behavior. + +.. raw:: html latex + + A test. + +.. raw:: html latex + + Second test. + +.. class:: myclass + +.. raw:: html latex + + Another test with myclass set. + +.. role:: raw-role(raw) + :format: html latex + :class: myrawroleclass + +This is the :raw-role:`fourth test` with myrawroleclass set. + +.. raw:: html + + Fifth test in HTML.<br />Line two. + +.. raw:: latex + + Fifth test in LaTeX.\\Line two. diff --git a/sandbox/xml2rst/tests/synthetic/original/standard_r6008.rst b/sandbox/xml2rst/tests/synthetic/original/standard_r6008.rst new file mode 100644 index 000000000..cb4c9d177 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/original/standard_r6008.rst @@ -0,0 +1,774 @@ +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. _doctitle: + +================================ + reStructuredText Test Document +================================ + +.. Above is the document title, and below is the subtitle. + They are transformed from section titles after parsing. + +.. _subtitle: + +-------------------------------- + Examples of Syntax Constructs +-------------------------------- + +.. bibliographic fields (which also require a transform): + +:Author: David Goodger +:Address: 123 Example Street + Example, EX Canada + A1B 2C3 +:Contact: goodger@python.org +:Authors: Me; Myself; I +:organization: humankind +:date: Now, or yesterday. Or maybe even *before* yesterday. +:status: This is a "work in progress" +:revision: is managed by a version control system. +:version: 1 +: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. +:field name: This is a "generic bibliographic field". +:field name "2": + Generic bibliographic fields may contain multiple body elements. + + Like this. + +:Dedication: + + For Docutils users & co-developers. + +:abstract: + + This is a test document, containing at least one example of each + reStructuredText construct. + +.. meta:: + :keywords: reStructuredText, test, parser + :description lang=en: A test document, containing at least one + example of each reStructuredText construct. + +.. contents:: Table of Contents +.. section-numbering:: + + +Structural Elements +=================== + +Section Title +------------- +Section Subtitle +```````````````` + +That's it, the text just above this line. + +Empty Section +------------- + +Transitions +----------- + +Here's a transition: + +--------- + +It divides the section. Transitions may also occur between sections: + +--------- + +Body Elements +============= + +Paragraphs +---------- + +A paragraph. + +Inline Markup +````````````` + +Paragraphs contain text and may contain inline markup: *emphasis*, +**strong emphasis**, ``inline literals``, standalone hyperlinks +(http://www.python.org), external hyperlinks (Python_), internal +cross-references (example_), external hyperlinks with embedded URIs +(`Python web site <http://www.python.org>`__), `anonymous hyperlink +references`__ (`a second reference`__), footnote references (manually +numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered +[#label]_, or symbolic [*]_), citation references ([CIT2002]_), +substitution references (|example|), and _`inline hyperlink targets` +(see Targets_ below for a reference back to here). Character-level +inline markup is also possible (although exceedingly ugly!) in *re*\ +``Structured``\ *Text*. Problems are indicated by |problematic| text +(generated by processing errors; this one is intentional). Here is a +reference to the doctitle_ and the subtitle_. + +__ http://www.python.org/ +__ http://docutils.sourceforge.net/ + +The default role for interpreted text is `Title Reference`. Here are +some explicit interpreted text roles: a PEP reference (:PEP:`287`); an +RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for :emphasis:`standard` :strong:`inline` +:literal:`markup`. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``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).`` + +If the ``--pep-references`` option was supplied, there should be a +live link to PEP 258 here. + +Bullet Lists +------------ + +- A bullet list + + + Nested bullet list. + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + * Nested item 2. + + - Third level. + - Item 2. + + * Nested item 3. + + * This nested list should be compacted by the HTML writer. + + .. _target: + + .. Even if this item contains a target and a comment. + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + iii. iii + + iv. iv + +Definition Lists +---------------- + +Term + Definition +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. +Term + Definition +Term : classifier one : classifier two + Definition + +Field Lists +----------- + +:what: 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. + +:how arg1 arg2: + + The field marker is a colon, the field name, and a colon. + + The field body may contain one or more body elements, indented + relative to the field marker. + +:credits: + + .. class:: credits + + This paragraph has the `credits` class set. (This is actually not + about credits but just for ensuring that the class attribute + doesn't get stripped away.) + +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 + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z Multiple options are an "option group". +-v, --verbose Commonly-seen: short & long options. +-1 file, --one=file, --two file + Multiple options with 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 indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +This section tests line blocks. Line blocks are body elements which +consist of lines and other line blocks. Nested line blocks cause +indentation. + +| This is a line block. It ends with a blank line. +| New lines begin with a vertical bar ("|"). +| Line breaks and initial indent are significant, and preserved. +| Continuation lines are also possible. A long line that is intended + to wrap should begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Another line block, surrounded by paragraphs: + +| And it's no good waiting by the window +| It's no good waiting for the sun +| Please believe me, the things you dream of +| They don't fall in the lap of no-one + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + 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. + + -- 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) + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) 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 ([#label]_) and as a `hyperlink reference`__. + + __ label_ + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + + This is the second paragraph. + + And this is the third paragraph. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [CIT2002] Citations are text-labeled footnotes. They may be + rendered separately and differently from footnotes. + +Here's a reference to the above, [CIT2002]_, and a [nonexistent]_ +citation. + +.. _Another Target: + +Targets +------- + +.. _example: + +This paragraph is pointed to by the explicit "example" target. A +reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `Body Elements`_. + +Explicit external targets are interpolated into references such as +"Python_". + +.. _Python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ Targets_ + +Here's a `hyperlink reference without a target`_, which generates an +error. + +Duplicate Target Names +`````````````````````` + +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. + +Duplicate Target Names +`````````````````````` + +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: `Duplicate Target Names`_), an error is generated. + +Directives +---------- + +.. contents:: :local: + +These are just a sample of the many reStructuredText Directives. For +others, please see +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + +Document Parts +`````````````` + +An example of the "contents" directive can be seen above this section +(a local, untitled table of contents_) and at the beginning of the +document (a document-wide `table of contents`_). + +Images and Figures +`````````````````` + +An image directive (also clickable -- a hyperlink reference): + +.. image:: ../../../docs/user/rst/images/title.png + :class: class1 class2 + :target: directives_ + +Image with multiple IDs: + +.. _image target 1: +.. _image target 2: +.. _image target 3: +.. image:: ../../../docs/user/rst/images/title.png + +A centered image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: center + +A left-aligned image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: left + +This paragraph might flow around the image. +The specific behavior depends upon the style sheet and +the browser or rendering software used. + +A right-aligned image: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :align: right + +This paragraph might flow around the image. +The specific behavior depends upon the style sheet and +the browser or rendering software used. + +For inline images see `Substitution Definitions`_. + +Image size: + +An image 2 em wide: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :width: 2 em + +An image 2 em wide and 15 pixel high: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :width: 2em + :height: 15 px + +An image occupying 50% of the line width: + +.. image:: ../../../docs/user/rst/images/title.png + :width: 50% + +An image 2 cm high: + +.. image:: ../../../docs/user/rst/images/biohazard.png + :height: 2 cm + +A *figure* 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. + +.. figure:: ../../../docs/user/rst/images/title.png + :figclass: figclass1 figclass2 + :class: class1 class2 + :alt: reStructuredText, the markup syntax + :width: 258 + + Plaintext markup syntax and parser system. + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +A left-aligned figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :figclass: figclass1 figclass2 + :class: class1 class2 + :alt: reStructuredText, the markup syntax + :align: left + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + +A centered figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :align: center + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + +A right-aligned figure: + +.. figure:: ../../../docs/user/rst/images/biohazard.png + :align: right + :width: 50 + + This is the caption. + + This is the legend. + + The legend may consist of several paragraphs. + +This paragraph might flow around the figure. The specific behavior depends +upon the style sheet and the browser or rendering software used. + + +Admonitions +``````````` + +.. Attention:: Directives at large. + +.. Caution:: + + Don't take any wooden nickels. + +.. DANGER:: Mad scientist at work! + +.. Error:: Does not compute. + +.. Hint:: It's bigger than a bread box. + +.. Important:: + - Wash behind your ears. + - Clean up your room. + - Call your mother. + - Back up your data. + +.. Note:: This is a note. + +.. Tip:: 15% if the service is good. + +.. WARNING:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + + .. _Docutils: http://docutils.sourceforge.net/ + +Topics, Sidebars, and Rubrics +````````````````````````````` + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +```````````````` + +.. target-notes:: + + +Replacement Text +```````````````` + +I recommend you try |Python|_. + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +`````````````````` + +.. compound:: + :class: some-class + + Compound 1, paragraph 1. + + Compound 1, paragraph 2. + + * Compound 1, list item one. + * Compound 1, list item two. + +Another compound statement: + +.. compound:: + + Compound 2, a literal block:: + + Compound 2, literal. + + Compound 2, this is a test. + +.. compound:: + + Compound 3, only consisting of one paragraph. + +.. compound:: + + :: + + Compound 4. + This one starts with a literal block. + + Compound 4, a paragraph. + +Now something *really* perverted -- a nested compound block. This is +just to test that it works at all; the results don't have to be +meaningful. + +.. compound:: + + Compound 5, block 1 (a paragraph). + + .. compound:: + + Compound 6, block 2 in compound 5. + + Compound 6, another paragraph. + + Compound 5, block 3 (a paragraph). + +.. compound:: + + Compound 7, with a table inside: + + +--------------------+--------------------+--------------------+ + | Left cell, first | Middle cell, | Right cell. | + | paragraph. | consisting of | | + | | exactly one | Paragraph 2. | + | Left cell, second | paragraph. | | + | paragraph. | | Paragraph 3. | + +--------------------+--------------------+--------------------+ + + Compound 7, a paragraph after the table. + + Compound 7, another paragraph. + +Parsed Literal Blocks +````````````````````` + +.. parsed-literal:: + + This is a parsed literal block. + This line is indented. The next line is blank. + + Inline markup is supported, e.g. *emphasis*, **strong**, ``literal + text``, footnotes [1]_, _`hyperlink targets`, and `references + <http://www.python.org/>`_. + +Substitution Definitions +------------------------ + +An inline image (|example|) example: + +.. |EXAMPLE| image:: ../../../docs/user/rst/images/biohazard.png + +(Substitution definitions are not visible in the HTML source.) + +Comments +-------- + +Here's one: + +.. 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: ä ö ü æ ø å + +(View the HTML source to see the comment.) + +Raw text +-------- + +This does not necessarily look nice, because there may be missing white space. + +It's just there to freeze the behavior. + +.. raw:: html latex + + A test. + +.. raw:: html latex + + Second test. + +.. class:: myclass + +.. raw:: html latex + + Another test with myclass set. + +.. role:: raw-role(raw) + :format: html latex + :class: myrawroleclass + +This is the :raw-role:`fourth test` with myrawroleclass set. + +.. raw:: html + + Fifth test in HTML.<br />Line two. + +.. raw:: latex + + Fifth test in LaTeX.\\Line two. + +Container +--------- + +.. container:: custom + + paragraph 1 + + paragraph 2 diff --git a/sandbox/xml2rst/tests/synthetic/readable/class.xml b/sandbox/xml2rst/tests/synthetic/readable/class.xml new file mode 100644 index 000000000..da1d37784 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/readable/class.xml @@ -0,0 +1,1000 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document classes="c1 c2" ids="restructuredtext-test-document" names="restructuredtext\ test\ document" source="original/class.rst" title="reStructuredText Test Document"> + <title> + reStructuredText Test Document + </title> + <subtitle classes="c3" ids="examples-of-syntax-constructs" names="examples\ of\ syntax\ constructs"> + Examples of Syntax Constructs + </subtitle> + <docinfo> + <author> + David Goodger + </author> + </docinfo> + <comment xml:space="preserve"> + bibliographic fields (which also require a transform): + </comment> + <field_list classes="c5"> + <field> + <field_name> + Address + </field_name> + <field_body> + <paragraph> + 123 Example Street Example, EX Canada A1B 2C3 + </paragraph> + </field_body> + </field> + <field> + <field_name> + Contact + </field_name> + <field_body> + <paragraph> + <reference refuri="mailto:goodger@users.sourceforge.net"> + goodger@users.sourceforge.net + </reference> + </paragraph> + </field_body> + </field> + <field> + <field_name> + Authors + </field_name> + <field_body> + <paragraph> + Me; Myself; I + </paragraph> + </field_body> + </field> + <field> + <field_name> + organization + </field_name> + <field_body> + <paragraph> + humankind + </paragraph> + </field_body> + </field> + <field> + <field_name> + date + </field_name> + <field_body> + <paragraph> + Now, or yesterday. Or maybe even + <emphasis> + before + </emphasis> + yesterday. + </paragraph> + </field_body> + </field> + <field> + <field_name> + status + </field_name> + <field_body> + <paragraph> + This is a "work in progress" + </paragraph> + </field_body> + </field> + <field> + <field_name> + revision + </field_name> + <field_body> + <paragraph> + is managed by a version control system. + </paragraph> + </field_body> + </field> + <field> + <field_name> + version + </field_name> + <field_body> + <paragraph> + 1 + </paragraph> + </field_body> + </field> + <field> + <field_name> + copyright + </field_name> + <field_body> + <paragraph> + 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. + </paragraph> + </field_body> + </field> + </field_list> + <field_list classes="c6"> + <field> + <field_name> + field name + </field_name> + <field_body> + <paragraph> + This is a "generic bibliographic field". + </paragraph> + </field_body> + </field> + <field> + <field_name> + field name "2" + </field_name> + <field_body> + <paragraph> + Generic bibliographic fields may contain multiple body elements. + </paragraph> + <paragraph classes="c7"> + Like this. + </paragraph> + </field_body> + </field> + </field_list> + <field_list classes="c8"> + <field> + <field_name> + Dedication + </field_name> + <field_body> + <paragraph classes="c9"> + For Docutils users & co-developers. + </paragraph> + </field_body> + </field> + </field_list> + <field_list classes="c10"> + <field> + <field_name> + abstract + </field_name> + <field_body> + <paragraph> + This is a test document, containing at least one example of each +reStructuredText construct. + </paragraph> + </field_body> + </field> + </field_list> + <topic classes="contents c12 c11" ids="table-of-contents" names="table\ of\ contents"> + <title> + Table of Contents + </title> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id9" refid="structural-elements"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id10" refid="section-title"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id11" refid="bullet-lists"> + <generated classes="sectnum"> + 1.2   + </generated> + Bullet Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id12" refid="enumerated-lists"> + <generated classes="sectnum"> + 1.3   + </generated> + Enumerated Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id13" refid="definition-lists"> + <generated classes="sectnum"> + 1.4   + </generated> + Definition Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id14" refid="field-lists"> + <generated classes="sectnum"> + 1.5   + </generated> + Field Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id15" refid="option-lists"> + <generated classes="sectnum"> + 1.6   + </generated> + Option Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id16" refid="literal-blocks"> + <generated classes="sectnum"> + 1.7   + </generated> + Literal Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id17" refid="line-blocks"> + <generated classes="sectnum"> + 1.8   + </generated> + Line Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id18" refid="block-quotes"> + <generated classes="sectnum"> + 1.9   + </generated> + Block Quotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id19" refid="doctest-blocks"> + <generated classes="sectnum"> + 1.10   + </generated> + Doctest Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id20" refid="footnotes"> + <generated classes="sectnum"> + 1.11   + </generated> + Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id21" refid="citations"> + <generated classes="sectnum"> + 1.12   + </generated> + Citations + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id22" refid="targets"> + <generated classes="sectnum"> + 1.13   + </generated> + Targets + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id23" refid="directives"> + <generated classes="sectnum"> + 1.14   + </generated> + Directives + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id24" refid="images"> + <generated classes="sectnum"> + 1.14.1   + </generated> + Images + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id25" refid="admonitions"> + <generated classes="sectnum"> + 1.14.2   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id26" refid="topics-sidebars-and-rubrics"> + <generated classes="sectnum"> + 1.14.3   + </generated> + Topics, Sidebars, and Rubrics + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id27" refid="compound-paragraph"> + <generated classes="sectnum"> + 1.14.4   + </generated> + Compound Paragraph + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <section classes="c13" ids="structural-elements" names="structural\ elements"> + <title auto="1" refid="id9"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </title> + <section classes="c14" ids="section-title" names="section\ title"> + <title auto="1" refid="id10"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </title> + <paragraph classes="c15"> + That's it, the text just above this line. + </paragraph> + <transition classes="c16"/> + <paragraph classes="c17"> + A paragraph. + </paragraph> + </section> + <section ids="bullet-lists" names="bullet\ lists"> + <title auto="1" refid="id11"> + <generated classes="sectnum"> + 1.2   + </generated> + Bullet Lists + </title> + <bullet_list bullet="-" classes="c18"> + <list_item> + <paragraph> + A bullet list + </paragraph> + <bullet_list bullet="+" classes="c19"> + <list_item> + <paragraph> + Nested bullet list. + </paragraph> + </list_item> + </bullet_list> + <bullet_list bullet="+" classes="c20"> + <list_item> + <paragraph> + Nested item 2. + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </section> + <section ids="enumerated-lists" names="enumerated\ lists"> + <title auto="1" refid="id12"> + <generated classes="sectnum"> + 1.3   + </generated> + Enumerated Lists + </title> + <enumerated_list classes="c21" enumtype="arabic" prefix="" suffix="."> + <list_item> + <paragraph> + Arabic numerals. + </paragraph> + <enumerated_list classes="c22" enumtype="loweralpha" prefix="" suffix=")"> + <list_item> + <paragraph> + lower alpha) + </paragraph> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </section> + <section ids="definition-lists" names="definition\ lists"> + <title auto="1" refid="id13"> + <generated classes="sectnum"> + 1.4   + </generated> + Definition Lists + </title> + <definition_list classes="c23"> + <definition_list_item> + <term> + Term + </term> + <definition> + <paragraph classes="c24"> + Definition + </paragraph> + </definition> + </definition_list_item> + </definition_list> + </section> + <section ids="field-lists" names="field\ lists"> + <title auto="1" refid="id14"> + <generated classes="sectnum"> + 1.5   + </generated> + Field Lists + </title> + <field_list classes="c25"> + <field> + <field_name> + how arg1 arg2 + </field_name> + <field_body> + <paragraph classes="c26"> + The field marker is a colon, the field name, and a colon. + </paragraph> + <paragraph classes="c27"> + The field body may contain one or more body elements, indented +relative to the field marker. + </paragraph> + </field_body> + </field> + </field_list> + </section> + <section ids="option-lists" names="option\ lists"> + <title auto="1" refid="id15"> + <generated classes="sectnum"> + 1.6   + </generated> + Option Lists + </title> + <paragraph> + For listing command-line options: + </paragraph> + <option_list classes="c28"> + <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> + <option_list classes="c29"> + <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> + </section> + <section ids="literal-blocks" names="literal\ blocks"> + <title auto="1" refid="id16"> + <generated classes="sectnum"> + 1.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 classes="c30" 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 classes="c31" 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="id17"> + <generated classes="sectnum"> + 1.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 classes="c32"> + <line> + This is a line block. It ends with a blank line. + </line> + </line_block> + <line_block classes="c33"> + <line> + New lines begin with a vertical bar ("|"). + </line> + </line_block> + </section> + <section ids="block-quotes" names="block\ quotes"> + <title auto="1" refid="id18"> + <generated classes="sectnum"> + 1.9   + </generated> + Block Quotes + </title> + <paragraph> + Block quotes consist of indented body elements: + </paragraph> + <block_quote> + <paragraph classes="c34"> + 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 classes="c35"> + Anne Elk (Miss) + </attribution> + </block_quote> + </section> + <section ids="doctest-blocks" names="doctest\ blocks"> + <title auto="1" refid="id19"> + <generated classes="sectnum"> + 1.10   + </generated> + Doctest Blocks + </title> + <doctest_block classes="c36" 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="id20"> + <generated classes="sectnum"> + 1.11   + </generated> + Footnotes + </title> + <footnote backrefs="id2" classes="c37" ids="id1" names="1"> + <label> + 1 + </label> + <paragraph> + A footnote contains body elements, consistently indented by at least +3 spaces. + </paragraph> + <paragraph classes="c38"> + This is the footnote's second paragraph. + </paragraph> + </footnote> + <footnote auto="1" backrefs="id3" classes="c39" ids="label" names="label"> + <label> + 2 + </label> + <paragraph> + Footnotes may be numbered, either manually (as in + <footnote_reference ids="id2" refid="id1"> + 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="id3" refid="label"> + 2 + </footnote_reference> + ) and as a hyperlink reference ( + <reference name="label" refid="label"> + label + </reference> + ). + </paragraph> + </footnote> + <footnote auto="1" classes="c40" ids="id4" names="3"> + <label> + 3 + </label> + <paragraph> + This footnote is numbered automatically and anonymously using a label +of "#" only. + </paragraph> + </footnote> + <footnote auto="*" backrefs="id6" classes="c41" ids="id5"> + <label> + * + </label> + <paragraph> + Footnotes may also use symbols, specified with a "*" label. Here's a +reference to the next footnote: + <footnote_reference auto="*" ids="id6" refid="id5"> + * + </footnote_reference> + . + </paragraph> + </footnote> + </section> + <section ids="citations" names="citations"> + <title auto="1" refid="id21"> + <generated classes="sectnum"> + 1.12   + </generated> + Citations + </title> + <citation classes="c42" ids="cit2002" names="cit2002"> + <label> + CIT2002 + </label> + <paragraph> + Citations are text-labeled footnotes. They may be rendered separately +and differently from footnotes. + </paragraph> + </citation> + </section> + <section ids="targets" names="targets"> + <title auto="1" refid="id22"> + <generated classes="sectnum"> + 1.13   + </generated> + Targets + </title> + <target refid="example"/> + <target ids="python example" names="python example" refuri="http://www.python.org/"/> + <paragraph classes="c43 c44"> + <reference anonymous="1" name="Some" refid="targets"> + Some + </reference> + + <reference anonymous="1" name="reference" refuri="http://www.example.com/"> + reference + </reference> + . + </paragraph> + <target anonymous="1" ids="id7" refid="targets"/> + <target anonymous="1" ids="id8" refuri="http://www.example.com/"/> + </section> + <section classes="c45 c46" ids="directives" names="directives"> + <title auto="1" refid="id23"> + <generated classes="sectnum"> + 1.14   + </generated> + Directives + </title> + <topic classes="contents c47 local" ids="contents" names="contents"> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id28" refid="images"> + <generated classes="sectnum"> + 1.14.1   + </generated> + Images + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id29" refid="admonitions"> + <generated classes="sectnum"> + 1.14.2   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id30" refid="topics-sidebars-and-rubrics"> + <generated classes="sectnum"> + 1.14.3   + </generated> + Topics, Sidebars, and Rubrics + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id31" refid="compound-paragraph"> + <generated classes="sectnum"> + 1.14.4   + </generated> + Compound Paragraph + </reference> + </paragraph> + </list_item> + </bullet_list> + </topic> + <section ids="images" names="images"> + <title auto="1" refid="id28"> + <generated classes="sectnum"> + 1.14.1   + </generated> + Images + </title> + <paragraph> + An image directive (also clickable -- a hyperlink reference): + </paragraph> + <reference name="directives" refid="directives"> + <image classes="c48" uri="../../../docs/user/rst/images/title.png"/> + </reference> + <paragraph> + A figure directive: + </paragraph> + <figure classes="c49"> + <image alt="reStructuredText, the markup syntax" uri="../../../docs/user/rst/images/title.png"/> + <caption> + A figure is an image with a caption and/or a legend: + </caption> + <legend> + <table classes="c50"> + <tgroup cols="2"> + <colspec colwidth="12"/> + <colspec colwidth="47"/> + <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> + </legend> + </figure> + </section> + <section ids="admonitions" names="admonitions"> + <title auto="1" refid="id29"> + <generated classes="sectnum"> + 1.14.2   + </generated> + Admonitions + </title> + <attention classes="c51"> + <paragraph> + Directives at large. + </paragraph> + </attention> + <caution classes="c52"> + <paragraph> + Don't take any wooden nickels. + </paragraph> + </caution> + <danger classes="c53"> + <paragraph> + Mad scientist at work! + </paragraph> + </danger> + <error classes="c54"> + <paragraph> + Does not compute. + </paragraph> + </error> + <hint classes="c55"> + <paragraph> + It's bigger than a bread box. + </paragraph> + </hint> + <important classes="c56"> + <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 classes="c57"> + <paragraph> + This is a note. + </paragraph> + </note> + <tip classes="c58"> + <paragraph> + 15% if the service is good. + </paragraph> + </tip> + <warning classes="c59"> + <paragraph> + Strong prose may provoke extreme mental exertion. Reader discretion +is strongly advised. + </paragraph> + </warning> + <admonition classes="c60"> + <title> + And, by the way... + </title> + <paragraph> + You can make up your own admonition too. + </paragraph> + </admonition> + </section> + <section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"> + <title auto="1" refid="id30"> + <generated classes="sectnum"> + 1.14.3   + </generated> + Topics, Sidebars, and Rubrics + </title> + <sidebar classes="c61"> + <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 classes="c62"> + This is a rubric inside a sidebar + </rubric> + <paragraph> + Sidebars often appears beside the main text with a border and +background color. + </paragraph> + </sidebar> + <topic classes="c63"> + <title> + Topic Title + </title> + <paragraph> + This is a topic. + </paragraph> + </topic> + </section> + <section ids="compound-paragraph" names="compound\ paragraph"> + <title auto="1" refid="id31"> + <generated classes="sectnum"> + 1.14.4   + </generated> + Compound Paragraph + </title> + <compound classes="c64"> + <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> + </section> + </section> + </section> +</document> diff --git a/sandbox/xml2rst/tests/synthetic/readable/standard_0_3_7.xml b/sandbox/xml2rst/tests/synthetic/readable/standard_0_3_7.xml new file mode 100644 index 000000000..62fcebf59 --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/readable/standard_0_3_7.xml @@ -0,0 +1,2165 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="restructuredtext-test-document doctitle" names="restructuredtext\ test\ document doctitle" source="original/standard_0_3_7.rst" 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> + <docinfo> + <author> + David Goodger + </author> + <address xml:space="preserve"> + 123 Example Street +Example, EX Canada +A1B 2C3 + </address> + <contact> + <reference refuri="mailto:goodger@users.sourceforge.net"> + goodger@users.sourceforge.net + </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> + <field_name> + field name + </field_name> + <field_body> + <paragraph> + This is a "generic bibliographic field". + </paragraph> + </field_body> + </field> + <field> + <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"/> + <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"/> + <comment xml:space="preserve"> + bibliographic fields (which also require a transform): + </comment> + <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="id28" refid="structural-elements"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id29" refid="section-title"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id30" refid="empty-section"> + <generated classes="sectnum"> + 1.2   + </generated> + Empty Section + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id31" refid="transitions"> + <generated classes="sectnum"> + 1.3   + </generated> + Transitions + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id32" refid="body-elements"> + <generated classes="sectnum"> + 2   + </generated> + Body Elements + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id33" refid="paragraphs"> + <generated classes="sectnum"> + 2.1   + </generated> + Paragraphs + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id34" 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="id35" refid="bullet-lists"> + <generated classes="sectnum"> + 2.2   + </generated> + Bullet Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id36" refid="enumerated-lists"> + <generated classes="sectnum"> + 2.3   + </generated> + Enumerated Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id37" refid="definition-lists"> + <generated classes="sectnum"> + 2.4   + </generated> + Definition Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id38" refid="field-lists"> + <generated classes="sectnum"> + 2.5   + </generated> + Field Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id39" refid="option-lists"> + <generated classes="sectnum"> + 2.6   + </generated> + Option Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id40" refid="literal-blocks"> + <generated classes="sectnum"> + 2.7   + </generated> + Literal Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id41" refid="line-blocks"> + <generated classes="sectnum"> + 2.8   + </generated> + Line Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id42" refid="block-quotes"> + <generated classes="sectnum"> + 2.9   + </generated> + Block Quotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id43" refid="doctest-blocks"> + <generated classes="sectnum"> + 2.10   + </generated> + Doctest Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id44" refid="footnotes"> + <generated classes="sectnum"> + 2.11   + </generated> + Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id45" refid="citations"> + <generated classes="sectnum"> + 2.12   + </generated> + Citations + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id46" refid="targets"> + <generated classes="sectnum"> + 2.13   + </generated> + Targets + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id47" refid="duplicate-target-names"> + <generated classes="sectnum"> + 2.13.1   + </generated> + Duplicate Target Names + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id48" refid="id19"> + <generated classes="sectnum"> + 2.13.2   + </generated> + Duplicate Target Names + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id49" refid="directives"> + <generated classes="sectnum"> + 2.14   + </generated> + Directives + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id50" refid="document-parts"> + <generated classes="sectnum"> + 2.14.1   + </generated> + Document Parts + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id51" refid="images"> + <generated classes="sectnum"> + 2.14.2   + </generated> + Images + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id52" refid="admonitions"> + <generated classes="sectnum"> + 2.14.3   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id53" 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="id54" refid="target-footnotes"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id55" refid="replacement-text"> + <generated classes="sectnum"> + 2.14.6   + </generated> + Replacement Text + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id56" refid="compound-paragraph"> + <generated classes="sectnum"> + 2.14.7   + </generated> + Compound Paragraph + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id57" refid="substitution-definitions"> + <generated classes="sectnum"> + 2.15   + </generated> + Substitution Definitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id58" refid="comments"> + <generated classes="sectnum"> + 2.16   + </generated> + Comments + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id59" refid="raw-text"> + <generated classes="sectnum"> + 2.17   + </generated> + Raw text + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <section ids="structural-elements" names="structural\ elements"> + <title auto="1" refid="id28"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </title> + <section ids="section-title" names="section\ title"> + <title auto="1" refid="id29"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </title> + <paragraph> + That's it, the text just above this line. + </paragraph> + </section> + <section ids="empty-section" names="empty\ section"> + <title auto="1" refid="id30"> + <generated classes="sectnum"> + 1.2   + </generated> + Empty Section + </title> + </section> + <section ids="transitions" names="transitions"> + <title auto="1" refid="id31"> + <generated classes="sectnum"> + 1.3   + </generated> + Transitions + </title> + <paragraph> + Here's a transition: + </paragraph> + <transition/> + <paragraph> + It divides the section. Transitions may also occur between sections: + </paragraph> + </section> + </section> + <transition/> + <section ids="body-elements" names="body\ elements"> + <title auto="1" refid="id32"> + <generated classes="sectnum"> + 2   + </generated> + Body Elements + </title> + <section ids="paragraphs" names="paragraphs"> + <title auto="1" refid="id33"> + <generated classes="sectnum"> + 2.1   + </generated> + Paragraphs + </title> + <paragraph> + A paragraph. + </paragraph> + <section ids="inline-markup" names="inline\ markup"> + <title auto="1" refid="id34"> + <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="id23" refid="id22"> + 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> + ), footnote references +(manually numbered + <footnote_reference ids="id1" refid="id6"> + 1 + </footnote_reference> + , anonymous auto-numbered + <footnote_reference auto="1" ids="id2" refid="id9"> + 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="id10"> + * + </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"/> + ), 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="id21" refid="id20"> + |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> + <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://www.faqs.org/rfcs/rfc2822.html"> + RFC 2822 + </reference> + ); a + <subscript> + subscript + </subscript> + ; a + <superscript> + superscript + </superscript> + ; +and explicit roles for + <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="id35"> + <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"/> + <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="id36"> + <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> + <enumerated_list enumtype="upperalpha" prefix="" start="3" suffix="."> + <list_item> + <paragraph> + C + </paragraph> + </list_item> + <list_item> + <paragraph> + D + </paragraph> + </list_item> + </enumerated_list> + <enumerated_list enumtype="lowerroman" prefix="" start="3" suffix="."> + <list_item> + <paragraph> + iii + </paragraph> + </list_item> + <list_item> + <paragraph> + iv + </paragraph> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </section> + <section ids="definition-lists" names="definition\ lists"> + <title auto="1" refid="id37"> + <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="id38"> + <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="id39"> + <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="id40"> + <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="id41"> + <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> + 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> + 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_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_block> + </line_block> + </line_block> + <line> + Singing... + </line> + </line_block> + </block_quote> + </section> + <section ids="block-quotes" names="block\ quotes"> + <title auto="1" refid="id42"> + <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> + </section> + <section ids="doctest-blocks" names="doctest\ blocks"> + <title auto="1" refid="id43"> + <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="id44"> + <generated classes="sectnum"> + 2.11   + </generated> + Footnotes + </title> + <footnote backrefs="id1 id7" ids="id6" 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 id8" ids="label" names="label"> + <label> + 2 + </label> + <paragraph> + Footnotes may be numbered, either manually (as in + <footnote_reference ids="id7" refid="id6"> + 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="id8" refid="label"> + 2 + </footnote_reference> + ) and as a hyperlink reference +( + <reference name="label" refid="label"> + label + </reference> + ). + </paragraph> + </footnote> + <footnote auto="1" backrefs="id2" ids="id9" 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="id10"> + <label> + * + </label> + <paragraph> + Footnotes may also use symbols, specified with a "*" label. +Here's a reference to the next footnote: + <footnote_reference auto="*" ids="id11" refid="id12"> + †+ </footnote_reference> + . + </paragraph> + </footnote> + <footnote auto="*" backrefs="id11" ids="id12"> + <label> + †+ </label> + <paragraph> + This footnote shows the next symbol in the sequence. + </paragraph> + </footnote> + <footnote ids="id13" names="4"> + <label> + 4 + </label> + <paragraph> + Here's an unreferenced footnote, with a reference to a +nonexistent footnote: + <problematic ids="id68 id14" refid="id67"> + [5]_ + </problematic> + . + </paragraph> + </footnote> + </section> + <section ids="citations" names="citations"> + <title auto="1" refid="id45"> + <generated classes="sectnum"> + 2.12   + </generated> + Citations + </title> + <citation backrefs="id5 id15" 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="id15" refid="cit2002"> + CIT2002 + </citation_reference> + , and a + <problematic ids="id70 id16" refid="id69"> + [nonexistent]_ + </problematic> + +citation. + </paragraph> + </section> + <section ids="targets" names="targets"> + <title auto="1" refid="id46"> + <generated classes="sectnum"> + 2.13   + </generated> + Targets + </title> + <target refid="example"/> + <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="id24" refid="id22"> + 5 + </footnote_reference> + ". + </paragraph> + <target ids="python" names="python" refuri="http://www.python.org/"/> + <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="id17" refid="targets"/> + <paragraph> + Here's a + <problematic ids="id72" refid="id71"> + `hyperlink reference without a target`_ + </problematic> + , which generates an +error. + </paragraph> + <paragraph> + And another + <reference anonymous="1" name="phrase" refuri="http://www.example.com/"> + phrase + </reference> + + <footnote_reference auto="1" ids="id27" refid="id26"> + 6 + </footnote_reference> + pointing to an anonymous hyperlink. + </paragraph> + <target anonymous="1" ids="id18" refuri="http://www.example.com/"/> + <section dupnames="duplicate\ target\ names" ids="duplicate-target-names"> + <title auto="1" refid="id47"> + <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="id19"> + <title auto="1" refid="id48"> + <generated classes="sectnum"> + 2.13.2   + </generated> + Duplicate Target Names + </title> + <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="id74" refid="id73"> + `Duplicate Target Names`_ + </problematic> + ), an error is generated. + </paragraph> + </section> + </section> + <section ids="directives" names="directives"> + <title auto="1" refid="id49"> + <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="id60" refid="document-parts"> + <generated classes="sectnum"> + 2.14.1   + </generated> + Document Parts + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id61" refid="images"> + <generated classes="sectnum"> + 2.14.2   + </generated> + Images + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id62" refid="admonitions"> + <generated classes="sectnum"> + 2.14.3   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id63" 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="id64" refid="target-footnotes"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id65" refid="replacement-text"> + <generated classes="sectnum"> + 2.14.6   + </generated> + Replacement Text + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id66" refid="compound-paragraph"> + <generated classes="sectnum"> + 2.14.7   + </generated> + Compound Paragraph + </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="id60"> + <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" names="images"> + <title auto="1" refid="id61"> + <generated classes="sectnum"> + 2.14.2   + </generated> + Images + </title> + <paragraph> + An image directive (also clickable -- a hyperlink reference): + </paragraph> + <reference name="directives" refid="directives"> + <image uri="../../../docs/user/rst/images/title.png"/> + </reference> + <reference refuri="http://www.merten-home.de/"> + <image uri="../../../docs/user/rst/images/title.png"/> + </reference> + <paragraph> + A figure directive: + </paragraph> + <figure> + <image alt="reStructuredText, the markup syntax" uri="../../../docs/user/rst/images/title.png"/> + <caption> + A figure is an image with a caption and/or a legend: + </caption> + <legend> + <table> + <tgroup cols="2"> + <colspec colwidth="12"/> + <colspec colwidth="47"/> + <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> + </section> + <section ids="admonitions" names="admonitions"> + <title auto="1" refid="id62"> + <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> + </admonition> + </section> + <section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"> + <title auto="1" refid="id63"> + <generated classes="sectnum"> + 2.14.4   + </generated> + Topics, Sidebars, and Rubrics + </title> + <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 appears beside the main text with a border and +background color. + </paragraph> + </sidebar> + <topic> + <title> + Topic Title + </title> + <paragraph> + This is a topic. + </paragraph> + </topic> + <rubric> + This is a rubric + </rubric> + </section> + <section ids="target-footnotes" names="target\ footnotes"> + <title auto="1" refid="id64"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </title> + <footnote auto="1" backrefs="id23 id24 id25" ids="id22" names="TARGET_NOTE:\ id22"> + <label> + 5 + </label> + <paragraph> + <reference refuri="http://www.python.org/"> + http://www.python.org/ + </reference> + </paragraph> + </footnote> + <footnote auto="1" backrefs="id27" ids="id26" names="TARGET_NOTE:\ id26"> + <label> + 6 + </label> + <paragraph> + <reference refuri="http://www.example.com/"> + http://www.example.com/ + </reference> + </paragraph> + </footnote> + </section> + <section ids="replacement-text" names="replacement\ text"> + <title auto="1" refid="id65"> + <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="id25" refid="id22"> + 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="id66"> + <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. In +LaTeX, the following paragraphs should all be first-line indented: + </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 colwidth="20"/> + <colspec colwidth="20"/> + <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> + <section ids="substitution-definitions" names="substitution\ definitions"> + <title auto="1" refid="id57"> + <generated classes="sectnum"> + 2.15   + </generated> + Substitution Definitions + </title> + <paragraph> + An inline image ( + <image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/> + ) example: + </paragraph> + <substitution_definition names="EXAMPLE"> + <image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/> + </substitution_definition> + <paragraph> + (Substitution definitions are not visible in the HTML source.) + </paragraph> + </section> + <section ids="comments" names="comments"> + <title auto="1" refid="id58"> + <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. + </comment> + <paragraph> + (View the HTML source to see the comment.) + </paragraph> + </section> + <section ids="raw-text" names="raw\ text"> + <title auto="1" refid="id59"> + <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> + <section classes="system-messages"> + <title> + Docutils System Messages + </title> + <system_message backrefs="id21" ids="id20" level="3" line="96" source="original/standard_0_3_7.rst" type="ERROR"> + <paragraph> + Undefined substitution referenced: "problematic". + </paragraph> + </system_message> + <system_message backrefs="id68" ids="id67" level="3" line="350" source="original/standard_0_3_7.rst" type="ERROR"> + <paragraph> + Unknown target name: "5". + </paragraph> + </system_message> + <system_message backrefs="id70" ids="id69" level="3" line="359" source="original/standard_0_3_7.rst" type="ERROR"> + <paragraph> + Unknown target name: "nonexistent". + </paragraph> + </system_message> + <system_message backrefs="id72" ids="id71" level="3" line="384" source="original/standard_0_3_7.rst" type="ERROR"> + <paragraph> + Unknown target name: "hyperlink reference without a target". + </paragraph> + </system_message> + <system_message backrefs="id74" ids="id73" level="3" line="401" source="original/standard_0_3_7.rst" type="ERROR"> + <paragraph> + Duplicate target name, cannot be used as a unique reference: "duplicate target names". + </paragraph> + </system_message> + </section> +</document> diff --git a/sandbox/xml2rst/tests/synthetic/readable/standard_r6008.xml b/sandbox/xml2rst/tests/synthetic/readable/standard_r6008.xml new file mode 100644 index 000000000..6075d2cba --- /dev/null +++ b/sandbox/xml2rst/tests/synthetic/readable/standard_r6008.xml @@ -0,0 +1,2403 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generated by Docutils 0.8 --> +<document ids="restructuredtext-test-document doctitle" names="restructuredtext\ test\ document doctitle" source="original/standard_r6008.rst" 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> + <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> + <field_name> + field name + </field_name> + <field_body> + <paragraph> + This is a "generic bibliographic field". + </paragraph> + </field_body> + </field> + <field> + <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"/> + <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"/> + <comment xml:space="preserve"> + bibliographic fields (which also require a transform): + </comment> + <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="id32" refid="structural-elements"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id33" refid="section-title"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id34" refid="section-subtitle"> + <generated classes="sectnum"> + 1.1.1   + </generated> + Section Subtitle + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id35" refid="empty-section"> + <generated classes="sectnum"> + 1.2   + </generated> + Empty Section + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id36" refid="transitions"> + <generated classes="sectnum"> + 1.3   + </generated> + Transitions + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id37" refid="body-elements"> + <generated classes="sectnum"> + 2   + </generated> + Body Elements + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id38" refid="paragraphs"> + <generated classes="sectnum"> + 2.1   + </generated> + Paragraphs + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id39" 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="id40" refid="bullet-lists"> + <generated classes="sectnum"> + 2.2   + </generated> + Bullet Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id41" refid="enumerated-lists"> + <generated classes="sectnum"> + 2.3   + </generated> + Enumerated Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id42" refid="definition-lists"> + <generated classes="sectnum"> + 2.4   + </generated> + Definition Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id43" refid="field-lists"> + <generated classes="sectnum"> + 2.5   + </generated> + Field Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id44" refid="option-lists"> + <generated classes="sectnum"> + 2.6   + </generated> + Option Lists + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id45" refid="literal-blocks"> + <generated classes="sectnum"> + 2.7   + </generated> + Literal Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id46" refid="line-blocks"> + <generated classes="sectnum"> + 2.8   + </generated> + Line Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id47" refid="block-quotes"> + <generated classes="sectnum"> + 2.9   + </generated> + Block Quotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id48" refid="doctest-blocks"> + <generated classes="sectnum"> + 2.10   + </generated> + Doctest Blocks + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id49" refid="footnotes"> + <generated classes="sectnum"> + 2.11   + </generated> + Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id50" refid="citations"> + <generated classes="sectnum"> + 2.12   + </generated> + Citations + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id51" refid="targets"> + <generated classes="sectnum"> + 2.13   + </generated> + Targets + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id52" refid="duplicate-target-names"> + <generated classes="sectnum"> + 2.13.1   + </generated> + Duplicate Target Names + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id53" 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="id54" refid="directives"> + <generated classes="sectnum"> + 2.14   + </generated> + Directives + </reference> + </paragraph> + <bullet_list classes="auto-toc"> + <list_item> + <paragraph> + <reference ids="id55" refid="document-parts"> + <generated classes="sectnum"> + 2.14.1   + </generated> + Document Parts + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id56" refid="images-and-figures"> + <generated classes="sectnum"> + 2.14.2   + </generated> + Images and Figures + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id57" refid="admonitions"> + <generated classes="sectnum"> + 2.14.3   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id58" 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="id59" refid="target-footnotes"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id60" refid="replacement-text"> + <generated classes="sectnum"> + 2.14.6   + </generated> + Replacement Text + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id61" refid="compound-paragraph"> + <generated classes="sectnum"> + 2.14.7   + </generated> + Compound Paragraph + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id62" refid="parsed-literal-blocks"> + <generated classes="sectnum"> + 2.14.8   + </generated> + Parsed Literal Blocks + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + <list_item> + <paragraph> + <reference ids="id63" refid="substitution-definitions"> + <generated classes="sectnum"> + 2.15   + </generated> + Substitution Definitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id64" refid="comments"> + <generated classes="sectnum"> + 2.16   + </generated> + Comments + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id65" refid="raw-text"> + <generated classes="sectnum"> + 2.17   + </generated> + Raw text + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id66" refid="container"> + <generated classes="sectnum"> + 2.18   + </generated> + Container + </reference> + </paragraph> + </list_item> + </bullet_list> + </list_item> + </bullet_list> + </topic> + <section ids="structural-elements" names="structural\ elements"> + <title auto="1" refid="id32"> + <generated classes="sectnum"> + 1   + </generated> + Structural Elements + </title> + <section ids="section-title" names="section\ title"> + <title auto="1" refid="id33"> + <generated classes="sectnum"> + 1.1   + </generated> + Section Title + </title> + <section ids="section-subtitle" names="section\ subtitle"> + <title auto="1" refid="id34"> + <generated classes="sectnum"> + 1.1.1   + </generated> + Section Subtitle + </title> + <paragraph> + That's it, the text just above this line. + </paragraph> + </section> + </section> + <section ids="empty-section" names="empty\ section"> + <title auto="1" refid="id35"> + <generated classes="sectnum"> + 1.2   + </generated> + Empty Section + </title> + </section> + <section ids="transitions" names="transitions"> + <title auto="1" refid="id36"> + <generated classes="sectnum"> + 1.3   + </generated> + Transitions + </title> + <paragraph> + Here's a transition: + </paragraph> + <transition/> + <paragraph> + It divides the section. Transitions may also occur between sections: + </paragraph> + </section> + </section> + <transition/> + <section ids="body-elements" names="body\ elements"> + <title auto="1" refid="id37"> + <generated classes="sectnum"> + 2   + </generated> + Body Elements + </title> + <section ids="paragraphs" names="paragraphs"> + <title auto="1" refid="id38"> + <generated classes="sectnum"> + 2.1   + </generated> + Paragraphs + </title> + <paragraph> + A paragraph. + </paragraph> + <section ids="inline-markup" names="inline\ markup"> + <title auto="1" refid="id39"> + <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="id29" 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="id31" refid="id30"> + 6 + </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"/> + ), 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 anonymous="1" ids="id7" refuri="http://docutils.sourceforge.net/"/> + <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://www.faqs.org/rfcs/rfc2822.html"> + RFC 2822 + </reference> + ); a + <subscript> + subscript + </subscript> + ; a + <superscript> + superscript + </superscript> + ; +and explicit roles for + <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="id40"> + <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"/> + <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="id41"> + <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> + <enumerated_list enumtype="upperalpha" prefix="" start="3" suffix="."> + <list_item> + <paragraph> + C + </paragraph> + </list_item> + <list_item> + <paragraph> + D + </paragraph> + </list_item> + </enumerated_list> + <enumerated_list enumtype="lowerroman" prefix="" start="3" suffix="."> + <list_item> + <paragraph> + iii + </paragraph> + </list_item> + <list_item> + <paragraph> + iv + </paragraph> + </list_item> + </enumerated_list> + </list_item> + </enumerated_list> + </section> + <section ids="definition-lists" names="definition\ lists"> + <title auto="1" refid="id42"> + <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="id43"> + <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="id44"> + <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="id45"> + <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="id46"> + <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> + 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> + 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_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_block> + </line_block> + </line_block> + <line> + Singing... + </line> + </line_block> + </block_quote> + </section> + <section ids="block-quotes" names="block\ quotes"> + <title auto="1" refid="id47"> + <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> + </section> + <section ids="doctest-blocks" names="doctest\ blocks"> + <title auto="1" refid="id48"> + <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="id49"> + <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"/> + </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="id76 id17" refid="id75"> + [5]_ + </problematic> + . + </paragraph> + </footnote> + </section> + <section ids="citations" names="citations"> + <title auto="1" refid="id50"> + <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="id78 id19" refid="id77"> + [nonexistent]_ + </problematic> + +citation. + </paragraph> + <target refid="another-target"/> + </section> + <section ids="targets another-target" names="targets another\ target"> + <title auto="1" refid="id51"> + <generated classes="sectnum"> + 2.13   + </generated> + Targets + </title> + <target refid="example"/> + <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/"/> + <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"/> + <paragraph> + Here's a + <problematic ids="id80" refid="id79"> + `hyperlink reference without a target`_ + </problematic> + , which generates an +error. + </paragraph> + <section dupnames="duplicate\ target\ names" ids="duplicate-target-names"> + <title auto="1" refid="id52"> + <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="id53"> + <generated classes="sectnum"> + 2.13.2   + </generated> + Duplicate Target Names + </title> + <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="id82" refid="id81"> + `Duplicate Target Names`_ + </problematic> + ), an error is generated. + </paragraph> + </section> + </section> + <section ids="directives" names="directives"> + <title auto="1" refid="id54"> + <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="id67" refid="document-parts"> + <generated classes="sectnum"> + 2.14.1   + </generated> + Document Parts + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id68" refid="images-and-figures"> + <generated classes="sectnum"> + 2.14.2   + </generated> + Images and Figures + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id69" refid="admonitions"> + <generated classes="sectnum"> + 2.14.3   + </generated> + Admonitions + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id70" 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="id71" refid="target-footnotes"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id72" refid="replacement-text"> + <generated classes="sectnum"> + 2.14.6   + </generated> + Replacement Text + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id73" refid="compound-paragraph"> + <generated classes="sectnum"> + 2.14.7   + </generated> + Compound Paragraph + </reference> + </paragraph> + </list_item> + <list_item> + <paragraph> + <reference ids="id74" refid="parsed-literal-blocks"> + <generated classes="sectnum"> + 2.14.8   + </generated> + Parsed Literal Blocks + </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="id67"> + <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="id68"> + <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"/> + </reference> + <paragraph> + Image with multiple IDs: + </paragraph> + <target refid="image-target-1"/> + <target refid="image-target-2"/> + <target refid="image-target-3"/> + <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"/> + <paragraph> + A centered image: + </paragraph> + <image align="center" uri="../../../docs/user/rst/images/biohazard.png"/> + <paragraph> + A left-aligned image: + </paragraph> + <image align="left" uri="../../../docs/user/rst/images/biohazard.png"/> + <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"/> + <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"/> + <paragraph> + An image 2 em wide and 15 pixel high: + </paragraph> + <image height="15px" uri="../../../docs/user/rst/images/biohazard.png" width="2em"/> + <paragraph> + An image occupying 50% of the line width: + </paragraph> + <image uri="../../../docs/user/rst/images/title.png" width="50%"/> + <paragraph> + An image 2 cm high: + </paragraph> + <image height="2cm" uri="../../../docs/user/rst/images/biohazard.png"/> + <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"/> + <caption> + Plaintext markup syntax and parser system. + </caption> + <legend> + <table> + <tgroup cols="2"> + <colspec colwidth="12"/> + <colspec colwidth="47"/> + <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"> + <image alt="reStructuredText, the markup syntax" classes="class1 class2" uri="../../../docs/user/rst/images/biohazard.png" width="50"/> + <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> + A centered figure: + </paragraph> + <figure align="center"> + <image uri="../../../docs/user/rst/images/biohazard.png" width="50"/> + <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> + A right-aligned figure: + </paragraph> + <figure align="right"> + <image uri="../../../docs/user/rst/images/biohazard.png" width="50"/> + <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> + </section> + <section ids="admonitions" names="admonitions"> + <title auto="1" refid="id69"> + <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/"/> + </admonition> + </section> + <section ids="topics-sidebars-and-rubrics" names="topics,\ sidebars,\ and\ rubrics"> + <title auto="1" refid="id70"> + <generated classes="sectnum"> + 2.14.4   + </generated> + Topics, Sidebars, and Rubrics + </title> + <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 appears beside the main text with a border and +background color. + </paragraph> + </sidebar> + <topic> + <title> + Topic Title + </title> + <paragraph> + This is a topic. + </paragraph> + </topic> + <rubric> + This is a rubric + </rubric> + </section> + <section ids="target-footnotes" names="target\ footnotes"> + <title auto="1" refid="id71"> + <generated classes="sectnum"> + 2.14.5   + </generated> + Target Footnotes + </title> + <footnote auto="1" backrefs="id26 id27 id28 id29" 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="id31" ids="id30" names="TARGET_NOTE:\ id30"> + <label> + 6 + </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="id72"> + <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="id73"> + <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 colwidth="20"/> + <colspec colwidth="20"/> + <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="id74"> + <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> + , 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/"/> + . + </literal_block> + </section> + </section> + <section ids="substitution-definitions" names="substitution\ definitions"> + <title auto="1" refid="id63"> + <generated classes="sectnum"> + 2.15   + </generated> + Substitution Definitions + </title> + <paragraph> + An inline image ( + <image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/> + ) example: + </paragraph> + <substitution_definition names="EXAMPLE"> + <image alt="EXAMPLE" uri="../../../docs/user/rst/images/biohazard.png"/> + </substitution_definition> + <paragraph> + (Substitution definitions are not visible in the HTML source.) + </paragraph> + </section> + <section ids="comments" names="comments"> + <title auto="1" refid="id64"> + <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="id65"> + <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="id66"> + <generated classes="sectnum"> + 2.18   + </generated> + Container + </title> + <container classes="custom"> + <paragraph> + paragraph 1 + </paragraph> + <paragraph> + paragraph 2 + </paragraph> + </container> + </section> + </section> + <section classes="system-messages"> + <title> + Docutils System Messages + </title> + <system_message backrefs="id24" ids="id23" level="3" line="98" source="original/standard_r6008.rst" type="ERROR"> + <paragraph> + Undefined substitution referenced: "problematic". + </paragraph> + </system_message> + <system_message backrefs="id76" ids="id75" level="3" line="357" source="original/standard_r6008.rst" type="ERROR"> + <paragraph> + Unknown target name: "5". + </paragraph> + </system_message> + <system_message backrefs="id78" ids="id77" level="3" line="366" source="original/standard_r6008.rst" type="ERROR"> + <paragraph> + Unknown target name: "nonexistent". + </paragraph> + </system_message> + <system_message backrefs="id80" ids="id79" level="3" line="393" source="original/standard_r6008.rst" type="ERROR"> + <paragraph> + Unknown target name: "hyperlink reference without a target". + </paragraph> + </system_message> + <system_message backrefs="id82" ids="id81" level="3" line="406" source="original/standard_r6008.rst" type="ERROR"> + <paragraph> + Duplicate target name, cannot be used as a unique reference: "duplicate target names". + </paragraph> + </system_message> + </section> +</document> |