跳转到内容

搜索功能

ShokaX 支持两种搜索引擎,分别是 Pagefind(本地)和Algolia(远程)。我们建议使用 Pagefind 引擎,因为其配置更少,更简单易用,也对隐私更友好

Pagefind 引擎仅在 ShokaX 0.5.3 以上可用

由于 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.jsonscriptsbuild的值修改为:

Terminal window
hexo generate && pnpm dlx pagefind --site public

然后用pnpm build代替hexo g这样索引就会在构建后自动运行,不需要手动执行,如果你需要部署,可将部署指令也拼接在上述指令之后:

Terminal window
hexo generate && pnpm dlx pagefind --site public && hexo deploy

现在pnpm build等于hexo d -g加上搜索索引

在 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 IDappId
Search-Only API KeyapiKey
Admin API KeyadminApiKey
创建的索引名indexName
  • 在博客部署前运行 hexo algolia 上传索引,可在 Dashboard - Search - Index 页面中查看。
津 ICP 备2022001375 号
津公网安备 12011402001353 号