test-minirst.py
145 lines
| 3.1 KiB
| text/x-python
|
PythonLexer
/ tests / test-minirst.py
Martin Geisler
|
r9156 | #!/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 | ||||
paragraphs = """ | ||||
This is some text in the first paragraph. | ||||
Martin Geisler
|
r9736 | A small indented paragraph. | ||
It is followed by some lines | ||||
containing random whitespace. | ||||
Matt Mackall
|
r10289 | \n \n \nThe third and final paragraph. | ||
Martin Geisler
|
r9156 | """ | ||
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.) | ||||
:: | ||||
Martin Geisler
|
r9291 | Literal block with no indentation (apart from | ||
the two spaces added to all literal blocks). | ||||
Martin Geisler
|
r9739 | |||
1. This is an enumerated list (first item). | ||||
2. Continuing with the second item. | ||||
(1) foo | ||||
(2) bar | ||||
1) Another | ||||
2) List | ||||
Martin Geisler
|
r9156 | """ | ||
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) | ||||
Martin Geisler
|
r9293 | |||
fields = """ | ||||
Martin Geisler
|
r10065 | :a: First item. | ||
:ab: Second item. Indentation and wrapping | ||||
is handled automatically. | ||||
Martin Geisler
|
r9293 | |||
Martin Geisler
|
r10065 | Next list: | ||
:small: The larger key below triggers full indentation here. | ||||
:much too large: This key is big enough to get its own line. | ||||
Martin Geisler
|
r9293 | """ | ||
debugformat('fields', fields, 60) | ||||
debugformat('fields', fields, 30) | ||||