Skip to content

Commit 8d4cb82

Browse files
committed
transform
1 parent e417e22 commit 8d4cb82

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

src/doc/common/static/custom-furo.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,9 @@ a.pdf:hover {
2121
text-decoration: none;
2222
}
2323

24+
25+
/* For INPUT:, OUTPUT:, EXAMPLES */
26+
27+
abbr {
28+
font-weight: 500;
29+
}

src/sage_docbuild/conf.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
857906
def 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

Comments
 (0)