サイト内検索
Starlightサイトには、デフォルトでPagefindによる全文検索機能が組み込まれています。Pagefindは、静的サイト向けの高速で通信量が少ない検索ツールです。
検索機能を有効にするための設定は必要ありません。サイトをビルドしてデプロイすれば、サイトヘッダーの検索バーを使ってコンテンツを検索できます。
検索結果からコンテンツを隠す
ページを除外する
検索インデックスからページを除外するには、ページのフロントマターにpagefind: false
を追加します。
ページの一部を除外する
Pagefindは、data-pagefind-ignore
属性をもつ要素内のコンテンツを無視します。
以下の例では、最初の段落は検索結果に表示されますが、<div>
の中身は表示されません。
その他の検索プロバイダ
Algolia DocSearch
AlgoliaのDocSearchプログラムにアクセスでき、Pagefindの代わりにそれを使いたい場合は、公式のStarlight DocSearchプラグインを使うことができます。
-
@astrojs/starlight-docsearch
をインストールします。 -
astro.config.mjs
でStarlightのplugins
設定にDocSearchを追加し、AlgoliaのappId
、apiKey
、indexName
を渡します。
このように設定を更新すると、サイトの検索バーはデフォルトの検索モーダルではなく、Algoliaのモーダルを開きます。
DocSearch UIを翻訳する
DocSearchはデフォルトで英語のUI文字列のみを提供しています。Starlightの組み込みの国際化の仕組みを使って、モーダルのUIを翻訳できます。
-
src/content/config.ts
で、Starlightのi18n
コンテンツコレクション定義をDocSearchスキーマにより拡張します。 -
src/content/i18n/
のJSONファイルに翻訳を追加します。以下はDocSearchで使われる英語のデフォルトです。