Hexo+Next添加Algolia搜索


Hexo+Next 添加Algolia搜索

网上有不少教程,但在说的不是很清楚,有的因为版本不同造成配置文件的修改不一样,这里对Next 5.0.1版本的配置做一些整理,或是说对教程中不详细的地方做一些补充。

用到资料:

  • http://blog.niices.com/Hexo-Next-Algolia-Search/

  • https://www.zhihu.com/question/46822587/answer/109403261

  • 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行。

    mark

    这是我原本的第61行代码:

            fn = function () { throw arg; };

    修改成:

            fn = function () { throw new arg; };

    到这里就可以正常的执行以下命令了。

    npm install hexo-algoliasearch --save
    hexo algolia

    mark

    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行的位置):

    mark

    然后就配置完成了。

    在配置文件可以更改对应的描述性语句。;)

    mark


文章作者: LANVNAL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LANVNAL !
  目录