跳过正文

Search

首次發表:

Built-in search is powered by Pagefind, a static search library that serves results entirely in the browser with no external service needed.

Enabling search requires two steps: setting a config flag so Yore renders the search UI, and running Pagefind after every build to generate the search index. Both are required — the UI will not work without the index.

Step 1: Enable the search UI

hugo.yaml
params:
  searchEnabled: true

Step 2: Generate the search index

Pagefind reads the HTML files Hugo produces and builds a search index from them. Install Node.js, then add Pagefind to your development dependencies:

npm install -D pagefind

Add the following scripts to package.json. The build script runs Hugo then immediately indexes the output. The pagefind script lets you re-index without rebuilding.

package.json
{
  "scripts": {
    "pagefind": "pagefind --site public",
    "build": "hugo --gc --minify && npm run pagefind",
    "dev": "hugo server"
  }
}
重要

Include the indexing step in your deployment script (GitHub workflow, Cloudflare build script, etc.), otherwise search will not appear on the deployed site.

Set pageNoList: true in a page's front matter to exclude it from search results and list pages. See Archive for the full list of effects.

content/posts/my-post/index.md
---
title: My Post
params:
  pageNoList: true
---

相关源码

文章关联