Mercurial > public > mercurial-scm > hg-stable
diff tests/test-minirst.py @ 9156:c9c7e8cdac9c
minimal reStructuredText parser
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Thu, 16 Jul 2009 23:25:25 +0200 |
parents | |
children | cd5b6a11b607 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-minirst.py Thu Jul 16 23:25:25 2009 +0200 @@ -0,0 +1,138 @@ +#!/usr/bin/env python + +from mercurial import minirst + +def debugformat(title, text, width): + print "%s formatted to fit within %d characters:" % (title, width) + print "-" * 70 + print minirst.format(text, width) + print "-" * 70 + print + +paragraphs = """ +This is some text in the first paragraph. + + An indented paragraph + with just two lines. + + +The third paragraph. It is followed by some +random lines with spurious spaces. + + + + + +No indention + here, despite +the uneven left + margin. + + Only the + left-most line + (this line!) + is significant + for the indentation + +""" + +debugformat('paragraphs', paragraphs, 60) +debugformat('paragraphs', paragraphs, 30) + + +definitions = """ +A Term + Definition. The indented + lines make up the definition. +Another Term + Another definition. The final line in the + definition determines the indentation, so + this will be indented with four spaces. + + A Nested/Indented Term + Definition. +""" + +debugformat('definitions', definitions, 60) +debugformat('definitions', definitions, 30) + + +literals = r""" +The fully minimized form is the most +convenient form:: + + Hello + literal + world + +In the partially minimized form a paragraph +simply ends with space-double-colon. :: + + //////////////////////////////////////// + long un-wrapped line in a literal block + \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + +:: + + This literal block is started with '::', + the so-called expanded form. The paragraph + with '::' disappears in the final output. +""" + +debugformat('literals', literals, 60) +debugformat('literals', literals, 30) + + +lists = """ +- This is the first list item. + + Second paragraph in the first list item. + +- List items need not be separated + by a blank line. +- And will be rendered without + one in any case. + +We can have indented lists: + + - This is an indented list item + + - Another indented list item:: + + - A literal block in the middle + of an indented list. + + (The above is not a list item since we are in the literal block.) + +:: + + Literal block with no indentation. +""" + +debugformat('lists', lists, 60) +debugformat('lists', lists, 30) + + +options = """ +There is support for simple option lists, +but only with long options: + +--all Output all. +--both Output both (this description is + quite long). +--long Output all day long. + +--par This option has two paragraphs in its description. + This is the first. + + This is the second. Blank lines may be omitted between + options (as above) or left in (as here). + +The next paragraph looks like an option list, but lacks the two-space +marker after the option. It is treated as a normal paragraph: + +--foo bar baz +""" + +debugformat('options', options, 60) +debugformat('options', options, 30)