Skip to content

Commit 5c84d40

Browse files
authored
Merge pull request #2024 from gmilde/rst-fixes
rST in: fix non-section titles
2 parents 8482935 + efaebd1 commit 5c84d40

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/moin/converters/rst_in.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,8 @@ def visit_admonition(self, node, typ="attention"):
127127
# use "attention" for generic admonitions, cf.
128128
# http://docutils.sourceforge.net/docs/ref/rst/directives.html#generic-admonition
129129
self.open_moin_page_node(moin_page.admonition({moin_page.type: typ}), node)
130-
self.header_size += 1
131130

132131
def depart_admonition(self, node=None):
133-
self.header_size -= 1
134132
self.close_moin_page_node()
135133

136134
# see http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions
@@ -643,6 +641,8 @@ def depart_section(self, node):
643641
self.header_size -= 1
644642

645643
def visit_sidebar(self, node):
644+
# TODO: render sidebar "set off from the rest of the document somehow, typically with a border."
645+
# Sidebars typically “float” to the side of the page.
646646
pass
647647

648648
def depart_sidebar(self, node):
@@ -661,6 +661,9 @@ def depart_subscript(self, node):
661661
self.close_moin_page_node()
662662

663663
def visit_subtitle(self, node):
664+
# TODO: Subtitles should not have section numbering and should not be in the ToC.
665+
# If the document title is centre aligned,
666+
# the document sub-title should be centre aligned, too.
664667
self.header_size += 1
665668
self.open_moin_page_node(moin_page.h(attrib={moin_page.outline_level: repr(self.header_size)}))
666669

@@ -676,10 +679,11 @@ def depart_superscript(self, node):
676679

677680
def visit_system_message(self, node):
678681
# we have encountered a parsing error, insert an error message
682+
# TODO: also show error level and line number.
679683
self.visit_admonition(node, "error")
680684

681685
def depart_system_message(self, node):
682-
self.close_moin_page_node()
686+
self.depart_admonition(node)
683687

684688
def visit_table(self, node):
685689
self.open_moin_page_node(moin_page.table(), node)
@@ -730,9 +734,9 @@ def visit_tgroup(self, node):
730734
The tgroup node is presented as the parent of thead and tbody. These should be siblings.
731735
Other children are colspec which have a colwidth attribute. Using these numbers to specify
732736
a width on the col element similar to Sphinx results in an HTML validation error.
733-
There is no markup to specify styling such as background color. Best result is to
734-
discard this node.
737+
There is no markup to specify styling such as background color.
735738
"""
739+
# TODO: convert collumn width values into a form understood by Moin.
736740
pass
737741

738742
def depart_tgroup(self, node):
@@ -745,13 +749,21 @@ def depart_thead(self, node):
745749
self.close_moin_page_node()
746750

747751
def visit_title(self, node):
748-
# TODO: handle titles in topic and generic admonition
749-
self.open_moin_page_node(moin_page.h(attrib={moin_page.outline_level: repr(self.header_size)}))
752+
# <title> is used in <admonition>, <document>, <section>, <sidebar>, <table>, and <topic>
753+
# TODO: table title is currently ignored!
754+
if isinstance(node.parent, (nodes.admonition, nodes.sidebar, nodes.topic)):
755+
# informal title: don't include in ToC, no section numbering
756+
self.open_moin_page_node(moin_page.strong(attrib={html.class_: "title"}))
757+
else:
758+
self.open_moin_page_node(moin_page.h(attrib={moin_page.outline_level: repr(self.header_size)}))
750759

751760
def depart_title(self, node):
752761
self.close_moin_page_node()
753762

754763
def visit_topic(self, node):
764+
# A <topic> element should be set off from the rest of the document somehow,
765+
# such as with indentation or a border.
766+
# TODO: represent as blockquote?
755767
pass
756768

757769
def depart_topic(self, node):

0 commit comments

Comments
 (0)