ghost 博客中文搜索插件
在用 ghost 博客的时候,发现一直没有合适的搜索插件,主要是官方没提供相应的 search api, ghostHunter 采用 api 获取所有文章的方式,然后用 lunir 做全文搜索。但是 lunir 本身不支持中文分词,虽然有小伙伴提供了中文分词的方案,但是为了一个简单的搜索加了好大一堆库,感觉还是不怎么经济。
所以鉴于此,根据 ghsotHunter 改了个简单的插件,为了效率,api 获取的时候只取 title, 所以只支持简单的 title 匹配搜索,代码如下:
var searchResult = [];
for(var i=0; i < this.blogData.length; i++) {
if(value && this.blogData[i].title.toLowerCase().search(value.toLowerCase()) != -1){
searchResult.push(this.blogData[i]);
}
}
如果你想要自定义 info_template, result_template, 由于和 ghost 默认的模板冲突,所以可以改下模板定义
$("#search-field").ghostHunter({
results : "#results",
info_template : "<p>Number of posts found: {{amount}}</p>",
result_template : "<a href='{{link}}'><p><h2>{{title}}</h2>{{description}}</p><p><h4>{{pubDate}}</h4><h4>Tags: {{category}}</h4></p></a>"
});
format: function (t, d) {
return t.replace(/{#([^{}]*)#}/g, function (a, b) {
var r = d[b];
return typeof r === 'string' || typeof r === 'number' ? r : a;
});
}
<a href='{#link#}'><p><h2>{#title#}</h2>{#description#}</p><p><h4>{#pubDate#}</h4><h4>Tags: {#category#}</h4></p></a>
github 地址 https://github.com/facert/ghostHunter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: django 安全之防御 csrf
下一篇: VSCode C++ 环境配置
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论