Astro-Pagefind の Pre-filled Search Query をSSGで行う
2024/09/21当ブログでは 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 にてホストしました。
Publish on 2024/09/21
寄付について
当サイトは広告収入によって運営されております。
しかし、広告ブロッカーはプライバシーやセキュリティを保護するために必要です。
そこで、閲覧者に任意で寄付をお願いしております。
受け付けている暗号通貨とアドレスは以下になります。
BTC | bc1q2866agzc4ghavfrc4lh4m5r7n793wdnmvd5kkq |
ETH | 0x742803AF29A31A35D79eb2c522aB7eC76020B7BC |
XMR | 864ArzKhrBx8RvZ5w4RXtDJPKEv58MWk35Bo3q8squFe82LWH8A8Ces5Z4eXTFRPXz4yje7eaVT9LWZRt82DYsBuRa84De7 |
※ETHは他チェーン、その他ERC-20トークンも受け付けております。
よろしくお願いします。