Astro-Pagefind の Pre-filled Search Query をSSGで行う

Published on 2024/09/20
Updated on 2024/09/20

当ブログでは Astro-Pagefind を用いてサイト内検索を実装しています。

Google Search Console にはサイトリンク検索ボックスという項目があり、そのためにクエリパラメータを用いて検索可能にしたのですが、公式の例に則ると SSR が必須になります。

そのため、静的サイトとしてホストすることができず、ホスティング業者が限られてしまいます。

そこで、Stack Overflow の回答を参考に SSG によるサイト内検索を実装しました。

<script is:inline>
  const urlSearchParams = new URLSearchParams(window.location.search);
  const query = urlSearchParams.get("q");
  if (!!query) {
    document.querySelector("#search")?.setAttribute("data-query", query);
  }
</script>

意外とシンプルに実装できましたね。

query 属性ではなく data-query 属性をセットしている理由は、Astro-Pagefind の実装が以下であるからです。

query プロパティを data-query 属性に代入して、それを元に処理しています。

これで全体をSSGにすることができたので、Bunny CDN にてホストしました。

Docker ComposeでDBを待機してから接続する(healthcheck)

Published on 2025/03/23
Updated on 2025/03/23
開発 Docker

ブログを作り直した

Published on 2025/03/22
Updated on 2025/03/22
ブログ 開発

Cline + DeepSeek R1 + Cody で格安AIコーディング

Published on 2025/01/22
Updated on 2025/01/22
開発 AI Cline Cody

Astro 5でVitestが動かなかった話

Published on 2025/01/16
Updated on 2025/01/16
開発 Astro

Kamalで既存イメージをデプロイする(現状)最適解

Published on 2024/10/27
Updated on 2024/10/27
開発 Kamal

Goのvalidatorとozzo-validationの比較

Published on 2024/09/28
Updated on 2024/09/28
開発

Astro-Pagefind の Pre-filled Search Query をSSGで行う

Published on 2024/09/20
Updated on 2024/09/20
開発 Astro
免責事項 プライバシーポリシー