In docstrings render ReST "rubric" nodes as <h1> headers
authorMikhail Golubev <mikhail.golubev@jetbrains.com>
Thu, 24 Sep 2015 13:33:00 +0000 (16:33 +0300)
committerMikhail Golubev <mikhail.golubev@jetbrains.com>
Fri, 25 Sep 2015 12:38:33 +0000 (15:38 +0300)
python/helpers/rest_formatter.py

index 34f97931cf1b35246323628eceb52bc9abc6dae1..0004967b6b64f2602488b0c7b876028540e0be16 100644 (file)
@@ -1,8 +1,9 @@
-import sys
 import re
-from docutils.core import publish_string
+import sys
+
 from docutils import nodes
-from docutils.nodes import Text, field_body, field_name
+from docutils.core import publish_string
+from docutils.nodes import Text, field_body, field_name, rubric
 from docutils.writers.html4css1 import HTMLTranslator
 from epydoc.markup import DocstringLinker
 from epydoc.markup.restructuredtext import ParsedRstDocstring, _EpydocHTMLTranslator, \
@@ -104,10 +105,13 @@ class RestHTMLTranslator(_EpydocHTMLTranslator):
         if tagname == 'th' and isinstance(node, field_name):
             attributes['valign'] = 'top'
 
+        # Render rubric start as HTML header
+        if tagname == 'p' and isinstance(node, rubric):
+            tagname = 'h1'
+
         # For headings, use class="heading"
         if re.match(r'^h\d+$', tagname):
             attributes['class'] = ' '.join([attributes.get('class', ''), 'heading']).strip()
-
         return HTMLTranslator.starttag(self, node, tagname, suffix, **attributes)
 
     def visit_field_list(self, node):