Jekyll用jekyll-lunr-js-search搜索没有在search.json中加载全身

时间:2014-05-15 07:54:03

标签: ruby json full-text-search jekyll

我试图通过jekyll-lunr-js-search在Jekyll生成的静态网站中实现搜索功能(参见here)。
如果搜索到的字符串出现在html或高亮显示标记之外,或者标题,纯文本文本中,则搜索功能有效...
但如果我查找标记内出现的单词或单词的一部分帖子(.md文件),找不到它。
检查该特定帖子的search.json条目,我确实看到该主体不包含此内容...... 这是一个已知的问题?或者这是一个配置问题?

帖子会例如包含     <ul><li>Labyrinth</li></ul> Bicycle races are fun yes yes!

然后search.json中的正文内容为:body: "Bicycle races are fun yes yes!" 正在搜索实验室&#39;那时候没有结果。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为这是插件的问题。 Looking at the source,我们可以看到它通过扫描渲染页面中的文本来构建搜索索引。

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's search允许XPath和CSS搜索。