SF.net SVN: docutils:[10137] trunk/docutils

milde--- via Docutils-checkins <[email protected]> Tue, 20 May 2025 15:48:42 +0000
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
Revision: 10137
          http://sourceforge.net/p/docutils/code/10137
Author:   milde
Date:     2025-05-20 15:48:42 +0000 (Tue, 20 May 2025)
Log Message:
-----------
More detailled error message for inconsistent title levels.

Modified Paths:
--------------
    trunk/docutils/docutils/parsers/rst/states.py
    trunk/docutils/test/test_parsers/test_rst/test_section_headers.py

Modified: trunk/docutils/docutils/parsers/rst/states.py
===================================================================
--- trunk/docutils/docutils/parsers/rst/states.py	2025-05-20 15:48:27 UTC (rev 10136)
+++ trunk/docutils/docutils/parsers/rst/states.py	2025-05-20 15:48:42 UTC (rev 10137)
@@ -341,10 +341,14 @@
         # The new level must not be deeper than an immediate child
         # of the current level:
         if level > mylevel + 1:
+            styles = " ".join("/".join(s for s in style)
+                              for style in title_styles)
             self.parent += self.reporter.severe(
-                               'Title level inconsistent:',
-                               nodes.literal_block('', source),
-                               line=lineno)
+                'Inconsistent title style:'
+                f' skip from level {mylevel} to {level}.',
+                nodes.literal_block('', source),
+                nodes.paragraph('', f'Established title styles: {styles}'),
+                line=lineno)
             return False
         # Update parent state:
         self.memo.section_level = level

Modified: trunk/docutils/test/test_parsers/test_rst/test_section_headers.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_section_headers.py	2025-05-20 15:48:27 UTC (rev 10136)
+++ trunk/docutils/test/test_parsers/test_rst/test_section_headers.py	2025-05-20 15:48:42 UTC (rev 10137)
@@ -22,6 +22,9 @@
 
 
 class ParserTestCase(unittest.TestCase):
+
+    maxDiff = None
+
     def test_parser(self):
         parser = Parser()
         settings = get_default_settings(Parser)
@@ -494,10 +497,12 @@
             Paragraph 3.
         <system_message level="4" line="15" source="test data" type="SEVERE">
             <paragraph>
-                Title level inconsistent:
+                Inconsistent title style: skip from level 1 to 3.
             <literal_block xml:space="preserve">
                 Title 4
                 ```````
+            <paragraph>
+                Established title styles: = - `
         <paragraph>
             Paragraph 4.
 """],
@@ -545,11 +550,13 @@
             Paragraph 3.
         <system_message level="4" line="19" source="test data" type="SEVERE">
             <paragraph>
-                Title level inconsistent:
+                Inconsistent title style: skip from level 1 to 3.
             <literal_block xml:space="preserve">
                 ```````
                 Title 4
                 ```````
+            <paragraph>
+                Established title styles: =/= -/- `/`
         <paragraph>
             Paragraph 4.
 """],

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.