搜索功能
ShokaX 支持两种搜索引擎,分别是 Pagefind(本地)和Algolia(远程)。我们建议使用 Pagefind 引擎,因为其配置更少,更简单易用,也对隐私更友好
Pagefind 引擎仅在 ShokaX 0.5.3 以上可用
Pagefind 搜索
Section titled “Pagefind 搜索”由于 Hexo 对于 ESM 的支持存在严重缺陷,而 Pagefind 仅支持 ESM 格式,ShokaX 无法在主题中内置其自动索引流程,你必须在每次构建后使用 CLI 进行索引,所以使用流程如下:
你需要先在config.shokax.yml
中加入如下内容:
pagefind: enable: true
然后,在每次hexo g
完成后使用pnpm dlx pagefind --site public
进行手动索引,如果你使用hexo d -g
,则必须把生成和部署分开,在生成后部署前索引
现在主题的 Pagefind 功能已经可用了
我们建议将你 hexo 根目录下的package.json
中scripts
的build
的值修改为:
hexo generate && pnpm dlx pagefind --site public
然后用pnpm build
代替hexo g
这样索引就会在构建后自动运行,不需要手动执行,如果你需要部署,可将部署指令也拼接在上述指令之后:
hexo generate && pnpm dlx pagefind --site public && hexo deploy
现在pnpm build
等于hexo d -g
加上搜索索引
Algolia 搜索
Section titled “Algolia 搜索”在 hexo 根目录 _config.yml
中加入如下内容:
algolia: appId: #Your appId apiKey: #Your apiKey adminApiKey: #Your adminApiKey chunkSize: 5000 indexName: #"shokaX" fields: - title #必须配置 - path #必须配置 - categories #推荐配置 - content:strip:truncate,0,2000 - gallery - photos - tags
流程如下:
- 登录 Algolia 官网,建议使用 Github/Google 账号注册/登录。
- 进入
Dashboard
-Search
-Index
页面,选择上方+ Create Index
创建索引,索引名称建议为shokaX
。 - 进入
Dashboard
-Settings
-API Keys
页面,复制如下数据到上方配置中。
页面数据 | 对应配置 |
---|---|
Application ID | appId |
Search-Only API Key | apiKey |
Admin API Key | adminApiKey |
创建的索引名 | indexName |
- 在博客部署前运行
hexo algolia
上传索引,可在Dashboard
-Search
-Index
页面中查看。
津公网安备 12011402001353 号