mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Drop deprecated function: make_admonition()
This commit is contained in:
1
CHANGES
1
CHANGES
@@ -30,6 +30,7 @@ Features removed
|
||||
* LDML format support in `today`, `today_fmt` and `html_last_updated_fmt`
|
||||
* ``:inline:`` option for the directives of sphinx.ext.graphviz extension
|
||||
* sphinx.ext.pngmath extension
|
||||
* ``sphinx.util.compat.make_admonition()``
|
||||
|
||||
Features added
|
||||
--------------
|
||||
|
||||
@@ -246,7 +246,6 @@ todolist directive has neither content nor arguments that need to be handled.
|
||||
|
||||
The ``todo`` directive function looks like this::
|
||||
|
||||
from sphinx.util.compat import make_admonition
|
||||
from sphinx.locale import _
|
||||
|
||||
class TodoDirective(Directive):
|
||||
@@ -260,20 +259,20 @@ The ``todo`` directive function looks like this::
|
||||
targetid = "todo-%d" % env.new_serialno('todo')
|
||||
targetnode = nodes.target('', '', ids=[targetid])
|
||||
|
||||
ad = make_admonition(todo, self.name, [_('Todo')], self.options,
|
||||
self.content, self.lineno, self.content_offset,
|
||||
self.block_text, self.state, self.state_machine)
|
||||
todo_node = todo('\n'.join(self.content))
|
||||
todo_node += nodes.title(_('Todo'), _('Todo'))
|
||||
self.state.nested_parse(self.content, self.content_offset, todo_node)
|
||||
|
||||
if not hasattr(env, 'todo_all_todos'):
|
||||
env.todo_all_todos = []
|
||||
env.todo_all_todos.append({
|
||||
'docname': env.docname,
|
||||
'lineno': self.lineno,
|
||||
'todo': ad[0].deepcopy(),
|
||||
'todo': todo_node.deepcopy(),
|
||||
'target': targetnode,
|
||||
})
|
||||
|
||||
return [targetnode] + ad
|
||||
return [targetnode, todo_node]
|
||||
|
||||
Several important things are covered here. First, as you can see, you can refer
|
||||
to the build environment instance using ``self.state.document.settings.env``.
|
||||
@@ -285,11 +284,10 @@ returns a new unique integer on each call and therefore leads to unique target
|
||||
names. The target node is instantiated without any text (the first two
|
||||
arguments).
|
||||
|
||||
An admonition is created using a standard docutils function (wrapped in Sphinx
|
||||
for docutils cross-version compatibility). The first argument gives the node
|
||||
class, in our case ``todo``. The third argument gives the admonition title (use
|
||||
``arguments`` here to let the user specify the title). A list of nodes is
|
||||
returned from ``make_admonition``.
|
||||
On creating admonition node, the content body of the directive are parsed using
|
||||
``self.state.nested_parse``. The first argument gives the content body, and
|
||||
the second one gives content offset. The third argument gives the parent node
|
||||
of parsed result, in our case the ``todo`` node.
|
||||
|
||||
Then, the todo node is added to the environment. This is needed to be able to
|
||||
create a list of all todo entries throughout the documentation, in the place
|
||||
|
||||
@@ -13,9 +13,6 @@ from __future__ import absolute_import
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.parsers.rst import Directive # noqa
|
||||
|
||||
from docutils.parsers.rst import Directive # noqa
|
||||
from docutils import __version__ as _du_version
|
||||
|
||||
@@ -24,27 +21,6 @@ from sphinx.deprecation import RemovedInSphinx17Warning
|
||||
docutils_version = tuple(int(x) for x in _du_version.split('.')[:2])
|
||||
|
||||
|
||||
def make_admonition(node_class, name, arguments, options, content, lineno,
|
||||
content_offset, block_text, state, state_machine):
|
||||
warnings.warn('make_admonition is deprecated, use '
|
||||
'docutils.parsers.rst.directives.admonitions.BaseAdmonition '
|
||||
'instead', DeprecationWarning, stacklevel=2)
|
||||
text = '\n'.join(content)
|
||||
admonition_node = node_class(text)
|
||||
if arguments:
|
||||
title_text = arguments[0]
|
||||
textnodes, messages = state.inline_text(title_text, lineno)
|
||||
admonition_node += nodes.title(title_text, '', *textnodes)
|
||||
admonition_node += messages
|
||||
if 'class' in options:
|
||||
classes = options['class']
|
||||
else:
|
||||
classes = ['admonition-' + nodes.make_id(title_text)]
|
||||
admonition_node['classes'] += classes
|
||||
state.nested_parse(content, content_offset, admonition_node)
|
||||
return [admonition_node]
|
||||
|
||||
|
||||
class _DeprecationWrapper(object):
|
||||
def __init__(self, mod, deprecated):
|
||||
self._mod = mod
|
||||
|
||||
Reference in New Issue
Block a user