summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshimizukawa <shimizukawa@gmail.com>2016-02-14 12:02:57 +0900
committershimizukawa <shimizukawa@gmail.com>2016-02-14 15:11:07 +0900
commitcca371de87616d413b3cd7e85139dfd2bdbbd574 (patch)
tree22197d70fa32a12de338a2ce7bc01d7c01847ab6
parent804e866404fcc1827f86f7aa937ecf6379b5ec6e (diff)
downloadsphinx-git-cca371de87616d413b3cd7e85139dfd2bdbbd574.tar.gz
Remove `termset` node. It is not used anywhere. Restore `termsep` node and set as Deprecation. refs #2251
-rw-r--r--CHANGES8
-rw-r--r--doc/extdev/nodes.rst2
-rw-r--r--sphinx/addnodes.py15
-rw-r--r--sphinx/domains/std.py15
-rw-r--r--sphinx/writers/html.py11
-rw-r--r--sphinx/writers/latex.py11
-rw-r--r--sphinx/writers/manpage.py12
-rw-r--r--sphinx/writers/texinfo.py9
-rw-r--r--sphinx/writers/text.py11
9 files changed, 53 insertions, 41 deletions
diff --git a/CHANGES b/CHANGES
index f65817ab0..06c6119ea 100644
--- a/CHANGES
+++ b/CHANGES
@@ -21,9 +21,11 @@ Incompatible changes
refers to :confval:`exclude_patterns` to exclude extra files and directories.
* #2300: enhance autoclass:: to use the docstring of __new__ if __init__ method's is missing
of empty
-* #2251: term nodes in a glossary directive are wrapped with ``termset`` node to handle
- multiple term correctly. ``termsep`` node is removed and ``termset`` is added.
- By this change, every writers must have visit_termset and depart_termset method.
+* #2251: Previously, under glossary directives, multiple terms for one definition are
+ converted into single ``term`` node and the each terms in the term node are separated
+ by ``termsep`` node. In new implementation, each terms are converted into individual
+ ``term`` nodes and ``termsep`` node is removed.
+ By this change, output layout of every builders are changed a bit.
Features added
--------------
diff --git a/doc/extdev/nodes.rst b/doc/extdev/nodes.rst
index e00a2ab8b..e67fa3da6 100644
--- a/doc/extdev/nodes.rst
+++ b/doc/extdev/nodes.rst
@@ -54,4 +54,4 @@ You should not need to generate the nodes below in extensions.
.. autoclass:: start_of_file
.. autoclass:: productionlist
.. autoclass:: production
-.. autoclass:: termset
+.. autoclass:: termsep
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py
index a834adc32..026770f32 100644
--- a/sphinx/addnodes.py
+++ b/sphinx/addnodes.py
@@ -9,6 +9,8 @@
:license: BSD, see LICENSE for details.
"""
+import warnings
+
from docutils import nodes
@@ -208,8 +210,17 @@ class abbreviation(nodes.Inline, nodes.TextElement):
"""Node for abbreviations with explanations."""
-class termset(nodes.Structural, nodes.Element):
- """A set of <term> node"""
+class termsep(nodes.Structural, nodes.Element):
+ """Separates two terms within a <term> node.
+
+ .. versionchanged:: 1.4
+ sphinx.addnodes.termsep is deprecated. It will be removed at Sphinx-1.5.
+ """
+
+ def __init__(self, *args, **kw):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning, stacklevel=2)
+ super(termsep, self).__init__(*args, **kw)
class manpage(nodes.Inline, nodes.TextElement):
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index 193f7bd69..974f428aa 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -235,14 +235,6 @@ def register_term_to_glossary(env, node, new_id=None):
node['names'].append(new_id)
-def make_termset_from_termnodes(termnodes):
- # make a single "termset" node with all the terms
- termset = addnodes.termset('', *termnodes)
- termset.source, termset.line = termnodes[0].source, termnodes[0].line
- termset.rawsource = termset.astext()
- return termset
-
-
class Glossary(Directive):
"""
Directive to create a glossary with cross-reference targets for :term:
@@ -337,16 +329,15 @@ class Glossary(Directive):
termtexts.append(term.astext())
termnodes.append(term)
- termset = make_termset_from_termnodes(termnodes)
- termset += system_messages
+ termnodes.extend(system_messages)
defnode = nodes.definition()
if definition:
self.state.nested_parse(definition, definition.items[0][1],
defnode)
-
+ termnodes.append(defnode)
items.append((termtexts,
- nodes.definition_list_item('', termset, defnode)))
+ nodes.definition_list_item('', *termnodes)))
if 'sorted' in self.options:
items.sort(key=lambda x:
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index fac40cdb4..ecac77eed 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -13,6 +13,7 @@ import sys
import posixpath
import os
import copy
+import warnings
from six import string_types
from docutils import nodes
@@ -629,11 +630,11 @@ class HTMLTranslator(BaseTranslator):
def depart_abbreviation(self, node):
self.body.append('</abbr>')
- def visit_termset(self, node):
- pass
-
- def depart_termset(self, node):
- pass
+ def visit_termsep(self, node):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning)
+ self.body.append('<br />')
+ raise nodes.SkipNode
def visit_manpage(self, node):
return self.visit_literal_emphasis(node)
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index 13430fbbe..6eb287ce9 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -15,6 +15,7 @@
import re
import sys
from os import path
+import warnings
from six import itervalues, text_type
from docutils import nodes, writers
@@ -1222,11 +1223,11 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.unrestrict_footnote(node)
self.in_term -= 1
- def visit_termset(self, node):
- pass
-
- def depart_termset(self, node):
- pass
+ def visit_termsep(self, node):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning)
+ self.body.append(', ')
+ raise nodes.SkipNode
def visit_classifier(self, node):
self.body.append('{[}')
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index 1950c1e48..f44dc4cbd 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -9,6 +9,8 @@
:license: BSD, see LICENSE for details.
"""
+import warnings
+
from docutils import nodes
from docutils.writers.manpage import (
MACRO_DEF,
@@ -200,11 +202,11 @@ class ManualPageTranslator(BaseTranslator):
def depart_versionmodified(self, node):
self.depart_paragraph(node)
- def visit_termset(self, node):
- pass
-
- def depart_termset(self, node):
- pass
+ def visit_termsep(self, node):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning)
+ self.body.append(', ')
+ raise nodes.SkipNode
# overwritten -- we don't want source comments to show up
def visit_comment(self, node):
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py
index 78ff02bd5..c29b9dda0 100644
--- a/sphinx/writers/texinfo.py
+++ b/sphinx/writers/texinfo.py
@@ -12,6 +12,7 @@
import re
import textwrap
from os import path
+import warnings
from six import itervalues
from six.moves import range
@@ -952,10 +953,12 @@ class TexinfoTranslator(nodes.NodeVisitor):
def depart_term(self, node):
pass
- def visit_termset(self, node):
- pass
+ def visit_termsep(self, node):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning)
+ self.body.append('\n%s ' % self.at_item_x)
- def depart_termset(self, node):
+ def depart_termsep(self, node):
pass
def visit_classifier(self, node):
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index d646064f0..2463920ef 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -12,6 +12,7 @@ import os
import re
import textwrap
from itertools import groupby
+import warnings
from six.moves import zip_longest
@@ -640,11 +641,11 @@ class TextTranslator(nodes.NodeVisitor):
if not self._classifier_count_in_li:
self.end_state(end=None)
- def visit_termset(self, node):
- pass
-
- def depart_termset(self, node):
- pass
+ def visit_termsep(self, node):
+ warnings.warn('sphinx.addnodes.termsep will be removed at Sphinx-1.5',
+ DeprecationWarning)
+ self.add_text(', ')
+ raise nodes.SkipNode
def visit_classifier(self, node):
self.add_text(' : ')