An extension for Python-Markdown that makes lists truly sane. Features custom indents for nested lists and fix for messy linebreaks and paragraphs between lists.
-
nested_indent
option: Custom indent for nested lists. Defaults to2
. Doesn't mess with code indents, which is still 4. -
truly_sane
option: Makes linebreaks and paragraphs in lists behave as usually expected by user. No longer adds weirdp
, no extra linebreaks, no longer fuses lists together when they shouldn't be fused (see screenshots and examples below). Defaults toTrue
. -
Inherits sane lists behavior, which doesn't allow the mixing of ordered and unordered lists.
Pypi:
pip3 install mdx_truly_sane_lists
pip3 install git+git://github.com/radude/mdx_truly_sane_lists
Basic:
from markdown import markdown
# Default config is truly_sane: True, nested_indent: 2
markdown(text='some text', extensions=['mdx_truly_sane_lists'])
With explicit config:
from markdown import markdown
markdown(text='some text',
extensions=[
'mdx_truly_sane_lists',
],
extension_configs={
'mdx_truly_sane_lists': {
'nested_indent': 2,
'truly_sane': True,
}},
)
You can preview the new behaviour live at rentry.co (uses nested_indent: 2, truly_sane: True
)
Some ugly screenshots because I'm lazy and cannot into gimp:
Data:
- attributes
- customer
- first_name
- family_name
- email
- person
- first_name
- family_name
- birth_date
- subscription_id
- request
No extension:
<ul>
<li>
<p>attributes</p>
</li>
<li>
<p>customer </p>
<ul>
<li>first_name</li>
<li>family_name</li>
<li>email</li>
</ul>
</li>
<li>person<ul>
<li>first_name</li>
<li>family_name</li>
<li>birth_date</li>
</ul>
</li>
<li>
<p>subscription_id</p>
</li>
<li>
<p>request</p>
</li>
</ul>
Truly sane + 4 spaces:
<ul>
<li>attributes</li>
</ul>
<ul>
<li>customer <ul>
<li>first_name</li>
<li>family_name</li>
<li>email</li>
</ul>
</li>
<li>person<ul>
<li>first_name</li>
<li>family_name</li>
<li>birth_date</li>
</ul>
</li>
<li>subscription_id</li>
</ul>
<ul>
<li>request</li>
</ul>