1 回答
TA贡献1834条经验 获得超8个赞
如果您希望搜索结果仅出现在单独的页面上,则您将希望搜索表单具有指向它的操作。该术语将被传递到该页面,然后该页面可以对其进行处理并显示搜索结果。
该模板演示了这个确切的流程:
现场演示: https: //long-pig.cloudvent.net/
这是一个非常好的解决方案,因为您的网站查看者只需在执行搜索时加载并运行该代码,这对于合理大小的索引来说可以节省大量成本。
用上面的代码粗略地复制它:
从{% include search-lunr.html %}您的index.html.
把这个放在index.html:
<form action="{{ site.baseurl }}/search/" method="get">
<input type="text" name="q">
<input type="submit" value="Search">
</form>
然后在你的search.html:
...
{% include search-lunr.html %}
<script>
function getQueryVariable(variable) {
var query = window.location.search.substring(1),
vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] === variable) {
return decodeURIComponent(pair[1].replace(/\+/g, '%20')).trim();
}
}
}
var query = decodeURIComponent((getQueryVariable("q") || "").replace(/\+/g, "%20"));
lunr_search(query);
</script>
...
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报