[Hexo 插件] hexo-generator-searchdb 插件和 NexT 主题启用 Hexo 本地搜索

hexo-generator-searchdb 插件和 NexT 主题启用 Hexo 本地搜索

本文章介绍如何使用 Hexo 插件 hexo-generator-searchdb 和 NexT 主题,为 Hexo 生成的网站启用本地搜索功能。

效果图

本地搜索效果图

hexo-generator-searchdb-Next

前提条件

安装

通过在 Hexo 生成的站点根目录中执行以下命令来安装 hexo-generator-searchdb

1
$ npm install hexo-generator-searchdb

配置

Hexo 配置

您可以在根 _config.yml 中配置此插件。 所有参数都是可选的。

1
2
3
4
5
6
7
# _config.yml

search:
path: search.xml
field: post
content: true
format: html
  • path - 文件路径。 默认情况下是 search.xml。 如果文件扩展名为 .json,则输出格式为 JSON。 否则将导出 XML 格式文件。

  • field - 你要搜索的搜索范围,你可以选择:

    • post(默认)- 将仅涵盖您博客的所有帖子。

    • page - 只会覆盖您博客的所有页面。

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

  • content - 是否包含每篇文章的全部内容。 如果为 false,则生成的结果仅包含标题和其他元信息,不包括内容。 默认为 true

  • format - 页面内容的形式,选项有:

    • html (默认) - 被缩小的原始 html 字符串。

    • striptags - 原始 html 字符串被删减,并删除所有标签。

    • raw - 每个帖子或页面的 Markdown 文本。

NexT 配置

编辑 NexT 配置文件以启用本地搜索。

其中 enable 选项为必须,其他选项均为可选。可根据您的需要自定义调整。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# Local search
# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
local_search:
enable: true
# 如果是 auto,则输入触发搜索。
# 如果是 manual,按回车键或搜索按钮触发搜索。
trigger: auto
# 显示每篇文章的前 n 个结果,通过设置为 -1 显示所有结果
top_n_per_article: 1
# 将 html 字符串转义为可读字符串。
unescape: false
# 在页面加载时预加载搜索数据。
preload: false

部署

重新生成或运行您的 Hexo 网站。

1
2
3
4
5
6
$ hexo clean

$ hexo generate

# Or Start the server.
# $ hexo server

最后用浏览器访问您的网站,查看本地搜索效果。

参考链接

[1] GitHub - next-theme/hexo-generator-searchdb: 🔍 Seach data generator plugin for Hexo. - https://github.com/next-theme/hexo-generator-searchdb

[2] NexT - Theme for Hexo - https://theme-next.js.org/

[3] Local Search | Search Services | NexT - https://theme-next.js.org/docs/third-party-services/search-services.html#Local-Search

[4] Hexo - https://hexo.io/zh-cn/