开始学习
Hexo 添加搜索
在使用 Hexo 博客时,如果文章较多,就会发现分类和标签已经很难快速找到所需要的文章内容了。这时候就需要为 Hexo 博客系统添加本站的搜索功能。
安装插件
Hexo 的搜索功能依赖于 hexo-generator-search 插件,在博客根目录执行下面命令进行安装。
npm install hexo-generator-searchdb --save
修改配置
修改站点配置文件
修改根目录下的 _config.yml
配置文件,添加如下内容。
# hexo-generator-searchdb
search:
path: search.xml
field: post
format: html
limit: 10000
content: true
参数说明:
- path —— 文件路径。默认为
search.xml
,如果将扩展名改为.json
,则输出格式为 JSON,否则使用 XML 格式。 - field —— 指定搜索范围。可选:
- post(默认):只覆盖博客中已发布的所有文章;
- page:只覆盖博客中所有页面;
- all:覆盖博客中所有页面和已发布的文章。
- content —— 是否包含每一篇文章的内容。若为
false
则只会根据文章标题和 meta 元数据进行搜索,默认为true
。 - format —— 页面内容的形式。可选:
- html(默认):原始 html 字符串被缩小。
- striptags:原始 html 字符串被缩小,并删除所有标签。
- raw:每个帖子或页面的 Markdown 文本。
修改主题配置文件
另外,还需要修改对应主题的 _config.yml
配置文件。
以 Next 主题为例,打开 ./themes/next/_config.yml 文件,开启 local_search
配置。
local_search:
enable: true
问题
上传 GitHub Pages 后无法使用搜索功能
表现:Local Search 一直在转圈圈
这种情况有可能是 XML 解析不正确,比如字符有问题。一种简单的解决方法是使用 json 替代 xml 格式。修改 _config.yaml
文件 search 部分,重新编译即可。
# hexo-generator-searchdb
search:
path: search.json
field: post
format: html
limit: 10000
content: true