summaryrefslogtreecommitdiff
path: root/sphinx/directives/patches.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2022-01-02 00:27:07 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2022-01-02 12:11:08 +0900
commit6a6a4b580014ddc4e1b27b6cf656755decc6fa8c (patch)
tree8ba3c90c549d936a77c61517c325afa1523941f5 /sphinx/directives/patches.py
parentf38bd8e9529d50e5cceffe3ca55be4b758529ff7 (diff)
downloadsphinx-git-6a6a4b580014ddc4e1b27b6cf656755decc6fa8c.tar.gz
i18n: meta strings are not translated with docutils-0.18
i18n feature for meta strings does not work if docutils-0.18 used. Note: Since docutils-0.18, patch for meta directive is no longer needed because it uses a picklable meta nodes; ``docutils.nodes.meta``.
Diffstat (limited to 'sphinx/directives/patches.py')
-rw-r--r--sphinx/directives/patches.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/sphinx/directives/patches.py b/sphinx/directives/patches.py
index f01423a88..5308b2838 100644
--- a/sphinx/directives/patches.py
+++ b/sphinx/directives/patches.py
@@ -29,13 +29,10 @@ from sphinx.util.osutil import SEP, os_path, relpath
from sphinx.util.typing import OptionSpec
try:
- from docutils.nodes import meta as meta_node # type: ignore
from docutils.parsers.rst.directives.misc import Meta as MetaBase # type: ignore
except ImportError:
# docutils-0.17 or older
from docutils.parsers.rst.directives.html import Meta as MetaBase
- from docutils.parsers.rst.directives.html import MetaBody
- meta_node = MetaBody.meta
if TYPE_CHECKING:
from sphinx.application import Sphinx
@@ -74,8 +71,10 @@ class Meta(MetaBase, SphinxDirective):
def run(self) -> List[Node]:
result = super().run()
for node in result:
+ # for docutils-0.17 or older. Since docutils-0.18, patching is no longer needed
+ # because it uses picklable node; ``docutils.nodes.meta``.
if (isinstance(node, nodes.pending) and
- isinstance(node.details['nodes'][0], meta_node)):
+ isinstance(node.details['nodes'][0], addnodes.docutils_meta)):
meta = node.details['nodes'][0]
meta.source = self.env.doc2path(self.env.docname)
meta.line = self.lineno