@@ -852,6 +852,55 @@ def apply(self):
852852
853853 node .parent .insert (node .parent .index (node ) + 1 , cell_node )
854854
855+ class AuthorsTransform (SphinxTransform ):
856+ default_priority = 800
857+
858+ def apply (self ):
859+ for node in self .document .traverse (nodes .paragraph ):
860+ if isinstance (node .children [0 ], nodes .Text ) and node .children [0 ].astext ().strip () == 'AUTHORS:' :
861+ list_node = node .next_node (siblings = True , descend = False )
862+ if isinstance (list_node , nodes .bullet_list ):
863+ new_node = nodes .admonition (classes = ['authors' ], admonitionclass = 'authors' )
864+ node .replace_self (new_node )
865+ node = new_node
866+ admonition_title = nodes .title ()
867+ admonition_title .append (nodes .Text ('Authors' ))
868+ node .insert (0 , admonition_title )
869+ node .append (list_node )
870+ node .parent .remove (list_node )
871+ if isinstance (node .children [0 ], nodes .Text ) and node .children [0 ].astext ().startswith ('INPUT:' ):
872+ parent = node .parent
873+ index = parent .index (node )
874+ parent .remove (node )
875+ parent .insert (index , nodes .Text (node .children [0 ].astext ()[len ('INPUT:' ):]))
876+ acronym_node = nodes .acronym ()
877+ acronym_node += nodes .Text ("INPUT" )
878+ parent .insert (index , acronym_node )
879+ if isinstance (node .children [0 ], nodes .Text ) and node .children [0 ].astext ().startswith ('OUTPUT:' ):
880+ parent = node .parent
881+ index = parent .index (node )
882+ parent .remove (node )
883+ parent .insert (index , nodes .Text (node .children [0 ].astext ()[len ('OUTPUT:' ):]))
884+ acronym_node = nodes .acronym ()
885+ acronym_node += nodes .Text ("OUTPUT" )
886+ parent .insert (index , acronym_node )
887+ if isinstance (node .children [0 ], nodes .Text ) and node .children [0 ].astext ().startswith ('EXAMPLES:' ):
888+ parent = node .parent
889+ index = parent .index (node )
890+ parent .remove (node )
891+ parent .insert (index , nodes .Text (node .children [0 ].astext ()[len ('EXAMPLES:' ):]))
892+ acronym_node = nodes .acronym ()
893+ acronym_node += nodes .Text ("EXAMPLES" )
894+ parent .insert (index , acronym_node )
895+ if isinstance (node .children [0 ], nodes .Text ) and node .children [0 ].astext ().startswith ('EXAMPLE:' ):
896+ parent = node .parent
897+ index = parent .index (node )
898+ parent .remove (node )
899+ parent .insert (index , nodes .Text (node .children [0 ].astext ()[len ('EXAMPLE:' ):]))
900+ acronym_node = nodes .acronym ()
901+ acronym_node += nodes .Text ("EXAMPLE" )
902+ parent .insert (index , acronym_node )
903+
855904
856905# This replaces the setup() in sage.misc.sagedoc_conf
857906def setup (app ):
@@ -864,6 +913,7 @@ def setup(app):
864913 app .connect ('autodoc-process-docstring' , skip_TESTS_block )
865914 app .connect ('autodoc-skip-member' , skip_member )
866915 app .add_transform (SagemathTransform )
916+ app .add_transform (AuthorsTransform )
867917 if os .environ .get ('SAGE_LIVE_DOC' , 'no' ) == 'yes' :
868918 app .add_transform (SagecodeTransform )
869919
0 commit comments