diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2022-01-02 00:27:07 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2022-01-02 12:11:08 +0900 |
| commit | 6a6a4b580014ddc4e1b27b6cf656755decc6fa8c (patch) | |
| tree | 8ba3c90c549d936a77c61517c325afa1523941f5 /sphinx/search | |
| parent | f38bd8e9529d50e5cceffe3ca55be4b758529ff7 (diff) | |
| download | sphinx-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__.py | 9 |
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) |
