AstroにPagefindの導入してサイト内検索を実装する

このサイト(motomura-it.com)のページ内検索に、Pagefind(https://pagefind.app/)を実装する。

※ホームのみに設置をしている。→ ホームへ(https://motomura-it.com/

Pagefindは、ビルド後のHTMLファイルからデータを収集し、検索用のインデックスを生成する。

参考:Pagefindでお手軽!静的HTML検索導入(Astro編)

まずはライブラリのインストールを行う。

npm install pagefind @pagefind/default-ui

package.jsonファイルの記述を見つけて

"build": "astro build",

下に、"postbuild": 〜を追加する。

"build": "astro build", 
"postbuild": "pagefind --site dist",

componentsにSearchForm.astroを作成する。

---
import '@pagefind/default-ui/css/ui.css'
---

<div id="search"></div>

<script>
  import { PagefindUI } from '@pagefind/default-ui'
  new PagefindUI({
  element: '#search',
})
</script>

検索ボックスを表示したいページに、importする。

---
import SearchForm from "@/components/Search/SearchForm.astro";
---

(中略)

<SearchForm />

buildする。

npm run build