Skip to content

搜索功能

This content is not available in your language yet.

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 号