Hexo博客如何添加本地搜索功能

我们今天主要来说一下,如何给Hexo博客添加本地搜索功能,主要是使用Hexo博客的插件来实现,插件安装之后,只要启动了博客搜索功能,就可以搜索博客的相关内容,对于提高网站的粘度还是非常有帮助的,我们主要借助Hexo博客的两个本地搜索插件来实现这个功能,对两个本地搜索插件的使用进行了描述,文章可能还有很多不足,请大家谅解,欢迎大家提意见。

使用hexo-generator-search插件

大家进入博客文件的CMD目录,然后复制下面的代码进行下载和安装

1
npm install hexo-generator-search --save

安装之后,如果在本地public文件夹下面发现生成了sitemap.xml,就表示安装本地搜索插件成功,然后就可以进入本地博客的配置文件_config.yml,在文件最后面,或者适当位置,添加如下代码

1
2
3
4
5
6
## search config
search:
path: search.xml
field: post
content: true
template: ./search.xml

path - 文件路径。缺省情况下为 .如果文件扩展名为 ,则输出格式将为 JSON。否则,将导出 XML 格式化文件。

字段 - 您要搜索的搜索范围,您可以选择:

  1. post(默认) - 仅涵盖您博客的所有帖子。
  2. 页面 - 将仅涵盖您博客的所有页面。
  3. All - Will 涵盖您博客的所有帖子和页面。

content - 是否包含每篇文章的全部内容。如果缺省 ,则生成的结果仅涵盖标题和其他元信息,而不包含主体信息。缺省情况下为 .falsetrue
template (可选) - 自定义 XML 模板的路径。

我在使用这个插件的时候,只是简单的将上面的代码复制粘贴,但是在生成的时候报错,主要是后面的template字段,找不到模板文件,后来看了看这个插件的安装目录,里面有个template文件夹,里面有这个search.xml文件,但是我个人水平有限,不能够将其设置出来,所以就将template字段删除了。而且这个插件的最近更新时间是去年,有强迫症的朋友估计会心里忐忑,其实只要能用就可以了。

使用hexo-generator-searchdb插件

大家进入博客文件的CMD目录,然后复制下面的代码进行下载和安装

1
npm install hexo-generator-searchdb

安装之后,如果在本地public文件夹下面发现生成了sitemap.xml,就表示安装本地搜索插件成功,然后就可以进入根目录_config.yml中配置此插件,当然了所有参数都是可选的。

1
2
3
4
5
6
## search config
search:
path: search.xml
field: post
content: true
format: html

path - 文件路径。缺省情况下为 .如果文件扩展名为 ,则输出格式将为 JSON。否则,将导出 XML 格式化文件。search.xml.json,涉及字段 - 您要搜索的搜索范围,您可以选择:
post(默认) - 仅涵盖您博客的所有帖子。

  • 页面 - 仅涵盖您博客的所有页面。
  • 全部 - 将涵盖您博客的所有帖子和页面。

content - 是否包含每篇文章的全部内容。如果 ,则生成的结果仅涵盖标题和其他元信息,而不包含主体信息。缺省情况下为 .falsetrue
格式 - 页面内容的形式,选项有:

  • html (默认) - 正在缩小的原始 html 字符串。
  • striptags - 正在缩小的原始 HTML 字符串,并删除所有标签。
  • raw - 每个帖子或页面的 Markdown 文本。

有一个非常有意思的问题,我安装博客本地插件的时候,选择的hexo-generator-search,但是找到hexo-generator-searchdb的插件之后,选择了后者的配置,本地搜索竟然也能够实现,看来这两个插件有共性的内容,而且第二个插件更新时间较近,方便一些吧。当然了,两个插件无论是那个,安装之后都需要进入主题的配置文件进行相关的配置,我的主题是Solitude,配置文件内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
# Search
search:
enable: false
type: local # local / algolia
tags:
# - Solitude
# - Hexo
algolia:
# hits:
# per_page: 6
local:
preload: false
CDN:

然后修改为

1
2
3
4
5
6
7
8
9
10
11
12
13
# Search
search:
enable: true
type: local # local / algolia
tags:
# - Solitude
# - Hexo
algolia:
# hits:
# per_page: 6
local:
preload: false
CDN:

主题配置,需要自己结合自己的主题文件,好了,最后说一下这个两个本地插件的公益地址

1
https://github.com/next-theme/hexo-generator-searchdb
1
https://github.com/wzpan/hexo-generator-search

如果您看完教程安装不成功,可以自己看一下这两个本地搜索插件的文档说明,适当的调整自己的相关设置。