mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-07-21 20:51:09 +02:00
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
# Author: Samuel Dunn
|
|
# Intent: Provide an admonishment for wx deprecations
|
|
# Date: 2 / 19 / 18
|
|
|
|
from docutils import nodes
|
|
from docutils.parsers.rst import Directive
|
|
|
|
from sphinx.locale import _ as convertLocale
|
|
|
|
class wxdeprecated_node(nodes.Admonition, nodes.Element): pass
|
|
|
|
def visit_wxdeprecated_node(self, node):
|
|
for c in ('admonition', 'wxdeprecated'):
|
|
if not c in node.get('classes'):
|
|
node.get('classes').append(c)
|
|
|
|
self.visit_admonition(node)
|
|
|
|
def depart_wxdeprecated_node(self, node):
|
|
self.depart_admonition(node)
|
|
|
|
|
|
# Barely more than a copy-paste from sphinx-doc.org/en/1.6/extdev/tutorial.html
|
|
class wxDeprecated(Directive):
|
|
has_content = True
|
|
|
|
def run(self):
|
|
# docutils will assign magic-members to the instance
|
|
# before invoking run.
|
|
|
|
# convenience reference to the build environment:
|
|
env = self.state.document.settings.env
|
|
|
|
targetid = "deprecated-{}".format(env.new_serialno('deprecated'))
|
|
targetnode = nodes.target("", "", ids=[targetid]) # ?
|
|
|
|
# create a node and pass content and such in.
|
|
dn = wxdeprecated_node("\n".join(self.content))
|
|
dn += nodes.title(convertLocale("Deprecated"), convertLocale("Deprecated"))
|
|
|
|
# Parse all sub-elements into deprecation_node instance
|
|
self.state.nested_parse(self.content, self.content_offset, dn)
|
|
|
|
if not hasattr(env, 'all_deprecations'):
|
|
env.all_deprecations = []
|
|
|
|
env.all_deprecations.append(
|
|
{
|
|
'docname' : env.docname,
|
|
'lineno' : self.lineno,
|
|
'deprecated' : dn.deepcopy(),
|
|
'target' : targetnode
|
|
})
|
|
|
|
return [targetnode, dn]
|
|
|
|
|
|
def setup(app):
|
|
app.add_node(wxdeprecated_node, html=(visit_wxdeprecated_node, depart_wxdeprecated_node))
|
|
app.add_directive('wxdeprecated', wxDeprecated)
|