ghost 博客中文搜索插件

发布于 2025-01-05 15:52:14 字数 1635 浏览 12 评论 0

在用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

雨轻弹

暂无简介

文章
评论
25 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文