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

milde--- via Docutils-checkins <[email protected]>
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
Revision: 9682
          http://sourceforge.net/p/docutils/code/9682
Author:   milde
Date:     2024-05-04 08:58:27 +0000 (Sat, 04 May 2024)
Log Message:
-----------
Fix node categories.

`rubric` is a Simple Body Element: add `General` to base classes.

`field` is also used for non-registered docinfo items:
add `Bibliographic` to  base classes.

`decoration` is no category member of "Decorative Elements".
Change base class `Decoration` to `PreBibliographic`.

Adapt the `frontmatter.DocInfo` transform: skip `decoration`
(not `Decorative`) when looking for the insertion point of the
bibliographic fields.
This fixes a test failure with wrong position of header/footer.

Modified Paths:
--------------
    trunk/docutils/docutils/nodes.py
    trunk/docutils/docutils/transforms/frontmatter.py

Modified: trunk/docutils/docutils/nodes.py
===================================================================
--- trunk/docutils/docutils/nodes.py	2024-05-04 08:58:16 UTC (rev 9681)
+++ trunk/docutils/docutils/nodes.py	2024-05-04 08:58:27 UTC (rev 9682)
@@ -1108,7 +1108,7 @@
 
 
 class Bibliographic:
-    """Bibliographic Elements (visible document metadata)."""
+    """Bibliographic Elements (`docinfo` children)."""
 
 
 class Decorative(PreBibliographic):
@@ -1585,7 +1585,7 @@
 
 class title(Titular, PreBibliographic, TextElement): pass
 class subtitle(Titular, PreBibliographic, TextElement): pass
-class rubric(Titular, TextElement): pass
+class rubric(Titular, General, TextElement): pass
 
 
 # ==================
@@ -1620,7 +1620,7 @@
 #  Decorative Elements
 # =====================
 
-class decoration(Decorative, Element):
+class decoration(PreBibliographic, Element):
     """Container for header and footer."""
 
     def get_header(self):
@@ -1700,7 +1700,7 @@
 class classifier(Part, TextElement): pass
 class definition(Part, Element): pass
 class field_list(Sequential, Element): pass
-class field(Part, Element): pass
+class field(Part, Bibliographic, Element): pass
 class field_name(Part, TextElement): pass
 class field_body(Part, Element): pass
 

Modified: trunk/docutils/docutils/transforms/frontmatter.py
===================================================================
--- trunk/docutils/docutils/transforms/frontmatter.py	2024-05-04 08:58:16 UTC (rev 9681)
+++ trunk/docutils/docutils/transforms/frontmatter.py	2024-05-04 08:58:27 UTC (rev 9682)
@@ -366,7 +366,7 @@
         candidate = document[index]
         if isinstance(candidate, nodes.field_list):
             biblioindex = document.first_child_not_matching_class(
-                  (nodes.Titular, nodes.Decorative, nodes.meta))
+                  (nodes.Titular, nodes.decoration, nodes.meta))
             nodelist = self.extract_bibliographic(candidate)
             del document[index]         # untransformed field list (candidate)
             document[biblioindex:biblioindex] = nodelist

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.