diff options
-rw-r--r-- | sphinx/addnodes.py | 4 | ||||
-rw-r--r-- | sphinx/roles.py | 2 | ||||
-rw-r--r-- | sphinx/writers/html.py | 6 | ||||
-rw-r--r-- | sphinx/writers/latex.py | 6 | ||||
-rw-r--r-- | sphinx/writers/manpage.py | 6 | ||||
-rw-r--r-- | sphinx/writers/texinfo.py | 6 | ||||
-rw-r--r-- | sphinx/writers/text.py | 6 | ||||
-rw-r--r-- | tests/test_build_manpage.py | 1 |
8 files changed, 36 insertions, 1 deletions
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py index f5ad7adad..3ff5772ca 100644 --- a/sphinx/addnodes.py +++ b/sphinx/addnodes.py @@ -212,6 +212,10 @@ class termsep(nodes.Structural, nodes.Element): """Separates two terms within a <term> node.""" +class manpage(nodes.Inline, nodes.TextElement): + """Node for references to manpages.""" + + # make the new nodes known to docutils; needed because the HTML writer will # choke at some point if these are not added nodes._add_node_class_names(k for k in globals().keys() diff --git a/sphinx/roles.py b/sphinx/roles.py index afded2961..59d69a1f1 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -29,7 +29,7 @@ generic_docroles = { 'kbd': nodes.literal, 'mailheader': addnodes.literal_emphasis, 'makevar': addnodes.literal_strong, - 'manpage': addnodes.literal_emphasis, + 'manpage': addnodes.manpage, 'mimetype': addnodes.literal_emphasis, 'newsgroup': addnodes.literal_emphasis, 'program': addnodes.literal_strong, # XXX should be an x-ref diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index d647898f1..bd65fc52e 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -640,6 +640,12 @@ class HTMLTranslator(BaseTranslator): self.body.append('<br />') raise nodes.SkipNode + def visit_manpage(self, node): + return self.visit_literal_emphasis(node) + + def depart_manpage(self, node): + return self.depart_literal_emphasis(node) + def depart_title(self, node): close_tag = self.context[-1] if (self.permalink_text and self.builder.add_permalinks and diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 96d9e03a6..6286688a5 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -1666,6 +1666,12 @@ class LaTeXTranslator(nodes.NodeVisitor): def depart_abbreviation(self, node): self.body.append(self.context.pop()) + def visit_manpage(self, node): + return self.visit_literal_emphasis(node) + + def depart_manpage(self, node): + return self.depart_literal_emphasis(node) + def visit_title_reference(self, node): self.body.append(r'\emph{') diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py index 0da784a27..d1c65bfb7 100644 --- a/sphinx/writers/manpage.py +++ b/sphinx/writers/manpage.py @@ -375,6 +375,12 @@ class ManualPageTranslator(BaseTranslator): def depart_abbreviation(self, node): pass + def visit_manpage(self, node): + return self.visit_strong(node) + + def depart_manpage(self, node): + return self.depart_strong(node) + # overwritten: handle section titles better than in 0.6 release def visit_title(self, node): if isinstance(node.parent, addnodes.seealso): diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index 61e8a5eaf..14345e664 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -1476,6 +1476,12 @@ class TexinfoTranslator(nodes.NodeVisitor): def depart_abbreviation(self, node): self.body.append(self.context.pop()) + def visit_manpage(self, node): + return self.visit_literal_emphasis(node) + + def depart_manpage(self, node): + return self.depart_literal_emphasis(node) + def visit_download_reference(self, node): pass diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py index 2fea7c6d8..1e8bbf023 100644 --- a/sphinx/writers/text.py +++ b/sphinx/writers/text.py @@ -861,6 +861,12 @@ class TextTranslator(nodes.NodeVisitor): if node.hasattr('explanation'): self.add_text(' (%s)' % node['explanation']) + def visit_manpage(self, node): + return self.visit_literal_emphasis(node) + + def depart_manpage(self, node): + return self.depart_literal_emphasis(node) + def visit_title_reference(self, node): self.add_text('*') diff --git a/tests/test_build_manpage.py b/tests/test_build_manpage.py index f42fee9cf..26fa8c494 100644 --- a/tests/test_build_manpage.py +++ b/tests/test_build_manpage.py @@ -20,3 +20,4 @@ def test_all(app, status, warning): content = (app.outdir / 'SphinxTests.1').text() assert r'\fBprint \fP\fIi\fP\fB\en\fP' in content + assert r'\fBmanpage\en\fP' in content |