summaryrefslogtreecommitdiff
path: root/sphinx/search
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/search
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/search')
-rw-r--r--sphinx/search/__init__.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index 16b9fb0ed..28f3ea036 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -15,7 +15,7 @@ from os import path
from typing import IO, Any, Dict, Iterable, List, Optional, Set, Tuple, Type
from docutils import nodes
-from docutils.nodes import Node
+from docutils.nodes import Element, Node
from sphinx import addnodes, package_dir
from sphinx.environment import BuildEnvironment
@@ -193,8 +193,9 @@ class WordCollector(nodes.NodeVisitor):
self.found_title_words: List[str] = []
self.lang = lang
- def is_meta_keywords(self, node: addnodes.meta) -> bool:
- if isinstance(node, addnodes.meta) and node.get('name') == 'keywords':
+ def is_meta_keywords(self, node: Element) -> bool:
+ if (isinstance(node, (addnodes.meta, addnodes.docutils_meta)) and
+ node.get('name') == 'keywords'):
meta_lang = node.get('lang')
if meta_lang is None: # lang not specified
return True
@@ -220,7 +221,7 @@ class WordCollector(nodes.NodeVisitor):
self.found_words.extend(self.lang.split(node.astext()))
elif isinstance(node, nodes.title):
self.found_title_words.extend(self.lang.split(node.astext()))
- elif isinstance(node, addnodes.meta) and self.is_meta_keywords(node):
+ elif isinstance(node, Element) and self.is_meta_keywords(node):
keywords = node['content']
keywords = [keyword.strip() for keyword in keywords.split(',')]
self.found_words.extend(keywords)