Jekyll搜索与Jekyll -lunr-js-search不加载全文在search.json



我正试图通过jekyll-lunr-js-search在jekyll生成的静态网站中实现搜索功能(见这里)。
如果搜索的字符串出现在html或高亮标记之外,或者出现在标题、纯正文文本中,那么搜索功能就可以工作。
但是,如果我寻找一个词或一个词的一部分,出现在标签内的帖子()。Md文件),没有找到。
检查搜索。json条目为特定的帖子,我看到确实,身体不包含此内容…这是已知的问题吗?或者这是一个配置问题?

文章将包含<ul><li>Labyrinth</li></ul> Bicycle races are fun yes yes!

和搜索中的正文内容。那么json将是:body: "Bicycle races are fun yes yes!"搜索'Lab'将不会返回任何结果。

我认为这是插件的问题。查看源代码,我们可以看到它通过扫描呈现页面中的文本来构建搜索索引。

def render(item)
  item.render({}, @site.site_payload)
  doc = Nokogiri::HTML(item.output)
  paragraphs = doc.search('//text()').map {|t| t.content }
  paragraphs = paragraphs.join(" ").gsub("r", " ").gsub("n", " ").gsub("t", " ").gsub(/s+/, " ")
end

您可以修改插件并将//text() XPath更改为您需要的CSS选择器,因为Nokogiri的搜索允许XPath和CSS搜索。

最新更新