Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sphinx-doc/sphinx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Lykke Andersen <Jakob@caput.dk>2021-03-25 21:42:50 +0300
committerJakob Lykke Andersen <Jakob@caput.dk>2021-04-12 20:07:51 +0300
commit7126503eeb2b13bba35dc18c87631c6e728bf6f0 (patch)
tree56799a87d37a3166f29c692e484c566e5f2c79db /sphinx/writers
parentc0ef6a92656cbada6702d0102b19d58c881763ed (diff)
Decl styling, update writers
Add test objects so all builders gets exposed to the new nodes. Make the fallback node post-transform change desc_inline as well. Make the html4, latex, and text writers handle desc_inline.
Diffstat (limited to 'sphinx/writers')
-rw-r--r--sphinx/writers/html.py6
-rw-r--r--sphinx/writers/latex.py48
-rw-r--r--sphinx/writers/manpage.py34
-rw-r--r--sphinx/writers/text.py30
4 files changed, 86 insertions, 32 deletions
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index 54d7311ea..d633f07e8 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -146,6 +146,12 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator):
def depart_desc_content(self, node: Element) -> None:
self.body.append('</dd>')
+ def visit_desc_inline(self, node: Element) -> None:
+ self.body.append(self.starttag(node, 'span', ''))
+
+ def depart_desc_inline(self, node: Element) -> None:
+ self.body.append('</span>')
+
# Nodes for high-level structure in signatures
##############################################
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index edef5417f..546db9e31 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -698,6 +698,13 @@ class LaTeXTranslator(SphinxTranslator):
def depart_subtitle(self, node: Element) -> None:
self.body.append(self.context.pop())
+ #############################################################
+ # Domain-specific object descriptions
+ #############################################################
+
+ # Top-level nodes for descriptions
+ ##################################
+
def visit_desc(self, node: Element) -> None:
if self.config.latex_show_urls == 'footnote':
self.body.append(BLANKLINE)
@@ -750,6 +757,31 @@ class LaTeXTranslator(SphinxTranslator):
def depart_desc_signature_line(self, node: Element) -> None:
self._depart_signature_line(node)
+ def visit_desc_content(self, node: Element) -> None:
+ if node.children and not isinstance(node.children[0], nodes.paragraph):
+ # avoid empty desc environment which causes a formatting bug
+ self.body.append('~')
+
+ def depart_desc_content(self, node: Element) -> None:
+ pass
+
+ def visit_desc_inline(self, node: Element) -> None:
+ self.body.append(r'\sphinxcode{\sphinxupquote{')
+
+ def depart_desc_inline(self, node: Element) -> None:
+ self.body.append('}}')
+
+ # Nodes for high-level structure in signatures
+ ##############################################
+
+ def visit_desc_name(self, node: Element) -> None:
+ self.body.append(r'\sphinxbfcode{\sphinxupquote{')
+ self.literal_whitespace += 1
+
+ def depart_desc_name(self, node: Element) -> None:
+ self.body.append('}}')
+ self.literal_whitespace -= 1
+
def visit_desc_addname(self, node: Element) -> None:
self.body.append(r'\sphinxcode{\sphinxupquote{')
self.literal_whitespace += 1
@@ -770,14 +802,6 @@ class LaTeXTranslator(SphinxTranslator):
def depart_desc_returns(self, node: Element) -> None:
self.body.append(r'}')
- def visit_desc_name(self, node: Element) -> None:
- self.body.append(r'\sphinxbfcode{\sphinxupquote{')
- self.literal_whitespace += 1
-
- def depart_desc_name(self, node: Element) -> None:
- self.body.append('}}')
- self.literal_whitespace -= 1
-
def visit_desc_parameterlist(self, node: Element) -> None:
# close name, open parameterlist
self.body.append('}{')
@@ -811,13 +835,7 @@ class LaTeXTranslator(SphinxTranslator):
def depart_desc_annotation(self, node: Element) -> None:
self.body.append('}}')
- def visit_desc_content(self, node: Element) -> None:
- if node.children and not isinstance(node.children[0], nodes.paragraph):
- # avoid empty desc environment which causes a formatting bug
- self.body.append('~')
-
- def depart_desc_content(self, node: Element) -> None:
- pass
+ ##############################################
def visit_seealso(self, node: Element) -> None:
self.body.append(BLANKLINE)
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index c11c49892..a43f117ae 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -120,6 +120,13 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
def depart_start_of_file(self, node: Element) -> None:
pass
+ #############################################################
+ # Domain-specific object descriptions
+ #############################################################
+
+ # Top-level nodes for descriptions
+ ##################################
+
def visit_desc(self, node: Element) -> None:
self.visit_definition_list(node)
@@ -139,6 +146,21 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
def depart_desc_signature_line(self, node: Element) -> None:
self.body.append(' ')
+ def visit_desc_content(self, node: Element) -> None:
+ self.visit_definition(node)
+
+ def depart_desc_content(self, node: Element) -> None:
+ self.depart_definition(node)
+
+ # Nodes for high-level structure in signatures
+ ##############################################
+
+ def visit_desc_name(self, node: Element) -> None:
+ pass
+
+ def depart_desc_name(self, node: Element) -> None:
+ pass
+
def visit_desc_addname(self, node: Element) -> None:
pass
@@ -157,12 +179,6 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
def depart_desc_returns(self, node: Element) -> None:
pass
- def visit_desc_name(self, node: Element) -> None:
- pass
-
- def depart_desc_name(self, node: Element) -> None:
- pass
-
def visit_desc_parameterlist(self, node: Element) -> None:
self.body.append('(')
self.first_param = 1
@@ -191,11 +207,7 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
def depart_desc_annotation(self, node: Element) -> None:
pass
- def visit_desc_content(self, node: Element) -> None:
- self.visit_definition(node)
-
- def depart_desc_content(self, node: Element) -> None:
- self.depart_definition(node)
+ ##############################################
def visit_versionmodified(self, node: Element) -> None:
self.visit_paragraph(node)
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index 5bd96de76..d8dab9181 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -536,6 +536,13 @@ class TextTranslator(SphinxTranslator):
def depart_attribution(self, node: Element) -> None:
pass
+ #############################################################
+ # Domain-specific object descriptions
+ #############################################################
+
+ # Top-level nodes
+ #################
+
def visit_desc(self, node: Element) -> None:
pass
@@ -555,6 +562,22 @@ class TextTranslator(SphinxTranslator):
def depart_desc_signature_line(self, node: Element) -> None:
self.add_text('\n')
+ def visit_desc_content(self, node: Element) -> None:
+ self.new_state()
+ self.add_text(self.nl)
+
+ def depart_desc_content(self, node: Element) -> None:
+ self.end_state()
+
+ def visit_desc_inline(self, node: Element) -> None:
+ pass
+
+ def depart_desc_inline(self, node: Element) -> None:
+ pass
+
+ # Nodes for high-level structure in signatures
+ ##############################################
+
def visit_desc_name(self, node: Element) -> None:
pass
@@ -606,12 +629,7 @@ class TextTranslator(SphinxTranslator):
def depart_desc_annotation(self, node: Element) -> None:
pass
- def visit_desc_content(self, node: Element) -> None:
- self.new_state()
- self.add_text(self.nl)
-
- def depart_desc_content(self, node: Element) -> None:
- self.end_state()
+ ##############################################
def visit_figure(self, node: Element) -> None:
self.new_state()