diff mercurial/minirst.py @ 26237:1c6f7cc52da9

minirst: establish leveling for nested definitions
author timeless@mozdev.org
date Thu, 10 Sep 2015 10:48:20 -0400
parents 61124bf8485f
children 4b0fc75f9403
line wrap: on
line diff
--- a/mercurial/minirst.py	Sun Sep 13 16:30:21 2015 -0400
+++ b/mercurial/minirst.py	Thu Sep 10 10:48:20 2015 -0400
@@ -722,6 +722,20 @@
                 nest += i
             level = nest.index(i) + 1
             nest = nest[:level]
+            for i in range(1, len(secs) + 1):
+                sec = secs[-i]
+                if sec[1] < level:
+                    break
+                siblings = [a for a in sec[2] if a['type'] == 'definition']
+                if siblings:
+                    siblingindent = siblings[-1]['indent']
+                    indent = b['indent']
+                    if siblingindent < indent:
+                        level += 1
+                        break
+                    elif siblingindent == indent:
+                        level = sec[1]
+                        break
             secs.append((getname(b), level, [b]))
         else:
             if not secs: