🔦

What is Pagefind?

2024/01/22に公開

Pagefind[1] について。
Alt text

Pagefind は SSG 用の全文検索エンジン。

https://www.youtube.com/watch?v=v79VRrfVau8

Pagefind は Rust で実装されている。Turbopack[2] や Biome[3] など Frontend 系のツールが Rust で書き換えられているケースが多い。Rust は性能が良い。

個人的には Rust が幅広く使われるようになることを期待している。low layer だけでなく。
一方で stack の選定は組織的な問題だと思うので、実例が多く出てくるのは、後数年は待つ必要があると思う。

tl;dr

  • 前提は SSG で生成された HTML ファイルがあること。
  • html tag が無い場合 scan されない。
  • Build command の後で pagefind を実行する。

About Pagefind

https://pagefind.app/

Pagefind is a fully static search library that aims to perform well on large sites, while using as little of your users’ bandwidth as possible, and without hosting any infrastructure.

Pagefind は完全に静的な検索ライブラリで、ユーザーの帯域幅をできるだけ使用せず、インフラをホスティングすることなく、大規模なサイトで優れたパフォーマンスを発揮することを目的としています。

Usage

log
[Building search indexes]
Total: 
  Indexed 1 language
  Indexed 6 pages
  Indexed 448 words
  Indexed 0 filters
  Indexed 0 sorts

Finished in 0.069 seconds
  • html tag が無い場合 scan されない。
error message
1 page found without an <html> element. 
Pages without an outer <html> element will not be processed by default. 
If adding this element is not possible, use the root selector config to target a different root element.
  • UI を変更するには custom properties[4] を設定する。以下の変数。

https://github.com/danny-yamamoto/rough/blob/1828f38a8b09c169c3e396bc633217d91cf3cddf/src/components/Search.astro#L15-L29

以上。

code と Cloudflare Pages の URI はこれ。

https://rough-ey6.pages.dev/hoge/

https://github.com/danny-yamamoto/rough

脚注
  1. https://pagefind.app/ ↩︎

  2. https://turbo.build/pack ↩︎

  3. https://biomejs.dev/ja/ ↩︎

  4. https://pagefind.app/docs/ui-usage/#customising-the-styles ↩︎

GitHubで編集を提案

Discussion