サイドバーのナビゲーション
サイドバーはユーザーがサイト内を移動するための主要な方法の1つであるため、サイドバーを整理することは良いドキュメントの鍵となります。Starlightでは、サイドバーのレイアウトとコンテンツをカスタマイズするためのオプション一式を提供しています。
デフォルトのサイドバー
Starlightはデフォルトで、ドキュメントのファイルシステム構造に基づいてサイドバーを自動的に生成します。その際、各ファイルのtitle
プロパティをサイドバーのエントリとして使用します。
たとえば以下のファイル構造があるとします。
ディレクトリsrc/
ディレクトリcontent/
ディレクトリdocs/
ディレクトリguides/
- components.md
- i18n.md
ディレクトリreference/
- configuration.md
すると以下のサイドバーが自動的に生成されます。
自動生成されるサイドバーについては、自動生成されるグループのセクションで詳しく説明します。
リンクとリンクグループを追加する
サイドバーのリンクと(折りたたみ可能なヘッダー内の)リンクグループを設定するには、astro.config.mjs
でstarlight.sidebar
プロパティを使用します。
リンクとグループを組み合わせることで、さまざまなサイドバーレイアウトを作成できます。
リンク
label
とlink
プロパティをもつオブジェクトを使用して、内部または外部ページへのリンクを追加します。
上の設定により、以下のサイドバーが生成されます。
グループ
折りたたみ可能な見出しの下に関連するリンクをグループ化することで、サイドバーに構造を追加できます。グループには、リンクと他のサブグループを含められます。
label
とitems
プロパティをもつオブジェクトを使用して、グループを追加します。label
はグループの見出しとして使用されます。items
配列にリンクまたはサブグループを追加します。
上の設定により、以下のサイドバーが生成されます。
自動生成されるグループ
Starlightはドキュメントのディレクトリに基づいて、サイドバーのグループを自動的に生成できます。これはグループ内のサイドバー項目を手動で入力したくない場合に便利です。
デフォルトでは、ページはファイルのslug
に従ってアルファベット順に並べ替えられます。
label
とautogenerate
プロパティをもつオブジェクトを使用して、自動生成されるグループを追加します。autogenerate
の設定には、サイドバーのエントリに使用するdirectory
を指定する必要があります。たとえば、以下のように設定したとします。
そして以下のファイル構造があるとします。
ディレクトリsrc/
ディレクトリcontent/
ディレクトリdocs/
ディレクトリguides/
- components.md
- i18n.md
ディレクトリadvanced/
- project-structure.md
すると以下のサイドバーが生成されます。
自動生成されるリンクをフロントマターでカスタマイズする
個々のページでsidebar
フロントマターフィールドを使用して、自動生成されるリンクをカスタマイズします。
フロントマターのサイドバーオプションにより、カスタムラベルを設定したり、リンクにバッジを追加したり、サイドバーからリンクを非表示にしたり、カスタムのソート順を定義したりできます。
上記のフロントマターを設定したページと一緒に自動生成されるグループは、以下のサイドバーを生成します。
バッジ
リンク、グループ、自動生成されるグループには、ラベルの横にバッジを表示するためのbadge
プロパティも含められます。
上の設定により、以下のサイドバーが生成されます。
バッジのバリアント
text
とvariant
プロパティをもつオブジェクトを使用して、バッジのスタイルをカスタマイズできます。
text
は表示するコンテンツ、たとえば「新規」などを表わします。variant
プロパティをnote
、tip
、danger
、caution
、success
のいずれかに設定することで、サイトのアクセントカラーを使用するdefault
スタイルを上書きできます。
上の設定により、以下のサイドバーが生成されます。
カスタムHTML属性
リンク要素にカスタムのHTML属性を追加するには、attrs
プロパティを使用します。
以下の例では、リンクが新しいタブで開かれるよう、attrs
を使用してtarget="_blank"
属性を追加しています。また、リンクのラベルにカスタムのstyle
属性を適用して斜体にします。
上の設定により、以下のサイドバーが生成されます。
国際化
リンクやグループのラベルをサポート対象の言語向けに翻訳するには、リンクやグループのエントリにtranslations
プロパティを使用します。BCP-47の言語タグ、たとえば"en"
、"ar"
、"zh-CN"
をキーとして、翻訳されたラベルを値として指定します。label
プロパティは、デフォルトのロケールと、翻訳がない言語に対して使用されます。
ブラジルポルトガル語でドキュメントを閲覧すると、以下のサイドバーが生成されます。
グループを折りたたむ
collapsed
プロパティをtrue
に設定することで、リンクのグループをデフォルトで折りたためます。
上の設定により、以下のサイドバーが生成されます。
自動生成されるグループは、親グループのcollapsed
値に従います。
上の設定により、以下のサイドバーが生成されます。
この動作は、autogenerate.collapsed
プロパティを定義することで上書きできます。
上の設定により、以下のサイドバーが生成されます。