Hexo+Next 添加Algolia搜索
网上有不少教程,但在说的不是很清楚,有的因为版本不同造成配置文件的修改不一样,这里对Next 5.0.1版本的配置做一些整理,或是说对教程中不详细的地方做一些补充。
用到资料:
https://github.com/iissnan/hexo-theme-next/issues/1084
对于注册Algolia和获取信息参照第一条参考链接,注意向_config.yml文件中添加配置信息时,第一行algolia前面不要有空格,不然会报错,我这里后面还有一个报错是
algolia async.js 61 fn=.....
,如果出现这个报错的话,去\node_modules\bluebird\js\release
路径下去修改asygn.js文件的第61行。这是我原本的第61行代码:
fn = function () { throw arg; };
修改成:
fn = function () { throw new arg; };
到这里就可以正常的执行以下命令了。
npm install hexo-algoliasearch --save hexo algolia
apikey,appid什么的按照第一个教程来就行,填到配置文件的‘ ’内就好。
接下来在主题里面的 _config.yml 中修改
algolia_search: enable: true
到这之后我的博客中已经有搜索图标了,也可以搜索到文章了,但点击搜素到的文章不会转到该文章。去algolia网站查看一下,发现上传到数据库的文件有个
permalink:yoursite/./..
,很明显跳转不到我的文章啊。这里做如下修改:去
node_modules/hexo-algolia/lib
, 找到command.js
,加path
,再修改最后的permalink字段。修改前:
var storedPost = _.pick(data, ['title', 'date', 'slug', 'content', 'excerpt', 'permalink']);
修改后:
var storedPost = _.pick(data, ['title', 'date', 'slug', 'path' , 'content', 'excerpt', 'objectID']);
然后修改站点的配置文件(大约在17行的位置):
然后就配置完成了。
在配置文件可以更改对应的描述性语句。;)