0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Astro Starlight】サイドバー設定の「自動」と「手動」どちらを使うべき?

0
Posted at

Astro Starlightの astro.config.mjssidebar オプションでサイドバーの並び順をカスタマイズする場合、
autogenerate 機能とフロントマターの order を組み合わせる方法items プロパティを用いた手動指定の方法 には、それぞれメリット・デメリットがあります。:sparkles:

結論

「まず、どちらを選ぶべきか?」はプロジェクトの規模や求める柔軟性に応じて使い分けるのが、推奨されるベストプラクティスです。

ドキュメント数が少なめ or 厳密なコントロールがしたい場合
itemsで手動で設定する方法がベストです。
ドキュメント数が多く、自動生成で十分な場合
autogenerate 機能とフロントマターの order を組み合わせる方法が便利です。

それぞれのメリット・デメリット

1. autogenerate + フロントマターの order

この方法は、ファイル名やフロントマターの order に基づいてサイドバーを自動生成します。

astro.config.mjs
sidebar: [
  {
    label: "Docs",
    autogenerate: { /* ... */ }
  }
]

各ドキュメントファイルのフロントマターに order: 1 などを記載し、並び順を指定します。

:white_check_mark: メリット

  • ファイル単位で順序管理でき、ドキュメント数が多い場合に便利
  • サイドバー項目の追加・削除時に astro.config.mjs を毎回編集しなくて済む
  • ファイル自体の構造や階層を反映しやすい

:negative_squared_cross_mark: デメリット

  • 並び順を一括して俯瞰しづらい(全体像を sidebar 設定で把握できない)
  • 複雑なグルーピングや、外部リンク・カスタム項目の挿入には不向き

2. items で手動並び替え

この方法は、設定ファイル(astro.config.mjs)でサイドバーの項目を完全に手動で定義します。

astro.config.mjs
sidebar: [
  {
    label: "Docs",
    items: [
      { label: "はじめに", link: "/start" },
      { label: "使い方", link: "/usage" },
      // 他にも任意の順で並べる
    ]
  }
]

:white_check_mark: メリット

  • 並び順・グループ化・外部リンク・カスタム項目などを完全にコントロール可
  • サイドバーの全体像が astro.config.mjs で一目でわかる
  • 特定ページだけ非表示にしたり、柔軟な制御が可能

:negative_squared_cross_mark: デメリット

  • ドキュメントを追加・削除するたびに astro.config.mjs を編集する必要がある
  • ドキュメント数が多いと、メンテナンスがやや煩雑になりやすい

まとめ

どちらを使うか迷ったときは、以下のシンプルな基準で選びましょう。

  • 厳密な順序・外部リンクなど、柔軟にカスタマイズしたい場合 → items
  • 大量のドキュメントを、最小限の手間で自動生成・管理したい場合 → autogenerate + order
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?