mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
add keywords of meta tag to search index #2463
This commit is contained in:
parent
e3def45ffe
commit
b01a7be5c6
@ -180,6 +180,17 @@ class WordCollector(NodeVisitor):
|
|||||||
self.found_title_words = []
|
self.found_title_words = []
|
||||||
self.lang = lang
|
self.lang = lang
|
||||||
|
|
||||||
|
def is_meta_keywords(self, node, nodetype):
|
||||||
|
is_meta = str(nodetype) == '<class \'sphinx.addnodes.meta\'>'
|
||||||
|
if is_meta:
|
||||||
|
language_match = re.search(r'lang\=\"(.*?)\"', str(node))
|
||||||
|
is_correct_language =\
|
||||||
|
language_match == None \
|
||||||
|
or self.lang.lang == language_match.group(1)
|
||||||
|
return is_meta and is_correct_language
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
def dispatch_visit(self, node):
|
def dispatch_visit(self, node):
|
||||||
nodetype = type(node)
|
nodetype = type(node)
|
||||||
if issubclass(nodetype, comment):
|
if issubclass(nodetype, comment):
|
||||||
@ -197,6 +208,9 @@ class WordCollector(NodeVisitor):
|
|||||||
self.found_words.extend(self.lang.split(node.astext()))
|
self.found_words.extend(self.lang.split(node.astext()))
|
||||||
elif issubclass(nodetype, title):
|
elif issubclass(nodetype, title):
|
||||||
self.found_title_words.extend(self.lang.split(node.astext()))
|
self.found_title_words.extend(self.lang.split(node.astext()))
|
||||||
|
elif self.is_meta_keywords(node, nodetype):
|
||||||
|
keywords = re.search(r'content\=\"(.*?)\"', str(node)).group(1)
|
||||||
|
self.found_words.extend(self.lang.split(keywords))
|
||||||
|
|
||||||
|
|
||||||
class IndexBuilder(object):
|
class IndexBuilder(object):
|
||||||
@ -353,7 +367,6 @@ class IndexBuilder(object):
|
|||||||
def feed(self, filename, title, doctree):
|
def feed(self, filename, title, doctree):
|
||||||
"""Feed a doctree to the index."""
|
"""Feed a doctree to the index."""
|
||||||
self._titles[filename] = title
|
self._titles[filename] = title
|
||||||
|
|
||||||
visitor = WordCollector(doctree, self.lang)
|
visitor = WordCollector(doctree, self.lang)
|
||||||
doctree.walk(visitor)
|
doctree.walk(visitor)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user