Starlightで作るAstroのドキュメントサイト 第1回 Starlightの特徴とインストール

サービスやソフトウェアで、使いやすさ、信頼性も担保できるようなわかりやすいドキュメントサイトを用意することは重要です。Astroの公式ドキュメントテンプレートは、表示が速く、検索性も高いサイトが作れます。まずは、特徴を知り、インストールしてみましょう。

発行

著者 中村 享介 モダンフロントエンド・エンジニア
Starlightで作るAstroのドキュメントサイト シリーズの記事一覧

はじめに

サービスやソフトウェアを提供する上で、わかりやすいドキュメントは不可欠です。

たとえば、ユーザー向けのチュートリアルから細かい使い方などを含んだ、わかりやすいドキュメントがあれば、ユーザーは自分で使い方を学べるため、問い合わせの削減につながります。オープンソースや業務での開発現場でも、開発メンバー向けのドキュメントがわかりやすく作られていれば、生産性の向上に直結します。

また、そうしたドキュメントがあることで、サービスやプロダクトの信頼性が向上し、ユーザーや開発者は安心して利用できます。

近年、そのようなドキュメントはWebサイトとして公開されることも一般的になりました。オープンソースのライブラリやデザインシステムのドキュメントなど、プロダクトそのものではなく、開発者向けの情報をまとめた公開ドキュメントも増えています。こうした流れから、ドキュメントサイトの必要性はますます高まっているといえるでしょう。

そこで注目したいのが、Astroの公式ドキュメントテンプレート「Starlight」です。Starlightを使えば、軽量かつ拡張性の高いドキュメントサイトを簡単に構築できます。サイト内検索などの実用的な機能も備わっています。

今回はStarlightの特徴、さらにインストールをして、初期状態のドキュメントサイトを確認するまでを紹介します。

Starlightの特徴

Starlightは、Astroが公式に提供するテンプレートです。軽量で柔軟性の高いドキュメントサイトを構築するための機能を備えています。筆者が注目する主な特徴は、次のようなものです。

1. シンプルなWebサイト構成とパフォーマンス最適化

Starlightで出力されるドキュメントサイトは、デフォルトでは静的なHTMLがページごとに構成される、いわゆるシンプルな「Webサイト」です。必要に応じてSSRも選択できます。

これにより、シングルページアプリケーション(SPA)と比べてOGPを設定しやすく、ページの初期読み込み速度が向上しやすくなります。複雑になりがちな大規模なドキュメントでも扱いやすいでしょう。

また、Astroの「ゼロJavaScript by Default」ポリシーに基づいて、不要なスクリプトの読み込みを抑えています。画像の最適化もできるので、高速に表示されるWebサイトを提供できます。

補足:Zero JavaScript by Defaultポリシー

Astroが掲げる主な特徴のひとつです。「JavaScriptへの依存を最小限に抑え、静的HTMLを重視することで、高速なレンダリングとパフォーマンスの向上を実現します。」としています。

2. Markdown/MDX対応による柔軟なコンテンツ作成

Starlightでは、Markdownや組み込みコンポーネントを活用して柔軟なコンテンツ作成が可能です。組み込みコンポーネントには、アラートボックス(Aside)、バッジ(Badge)、タブ(Tabs)などが豊富に用意されており、視覚的に整理されたドキュメントを構築しやすくなっています。

ドキュメント内にインタラクティブな要素が必要であれば、React、SvelteなどのAstroが対応するUIフレームワークを利用したコンポーネントを追加して組み込むこともできます。

3. 組み込みの検索機能と高いカスタマイズ性

Starlightには、ドキュメントサイトに不可欠な検索機能が最初から用意されています。軽量なJavaScriptライブラリである「Pagefind」を使用し、クライアントサイドですばやく検索を実行できます。これにより、ユーザーは必要な情報を見つけやすく、大規模なドキュメントでもストレスなく閲覧できます。

また、Starlightはデフォルトテーマがシンプルで使いやすいだけでなく、CSSやTailwind CSSを活用して自由にデザインをカスタマイズできます。

さらに、astro.config.mjsを通じて、機能の調整や、独自コンポーネントの追加も可能なため、用途に応じた柔軟なカスタマイズができるのも大きな魅力です。

実際にどんなことができるのかは次回以降紹介します。

Starlight公式サイトにあるブラウザ上で確認できるStarlightサンプルプロジェクトを立ち上げてみた様子です。astro.config.mjsなどの設定ファイルが確認できます。

採用する場合の注意点:バージョン管理と更新

Starlightを採用するにあたってはいくつか注意すべき点があります。

比較的新しいプロジェクト

Starlightはv1に向けて開発がされているとはいえ、現在バージョン0.32と、まだ比較的新しいプロジェクトです。そのため、頻繁なアップデートがあり、大きな変更が加えられる可能性も残っています。常に新しい機能が取り入れられる一方で、仕様が変化しやすいという意味での不安定さは、念頭においておいたほうがいいかもしれません。

しかし、基盤となるAstroはバージョン5.3にまで発展を遂げて、ある程度完成されてきています。また、Starlight自体もAstro公式ドキュメントやCloudflareの4000ページ以上に及ぶドキュメント採用されるなど、信頼性を高めつつあります。

定期的なアップデートが必要

前述のとおり活発な開発が続いているため、定期的なアップデートが必要になります。新機能の追加やパフォーマンスの改善が頻繁に行われているため、最新の機能を活用するには、Astroの提供するnpx @astrojs/upgradeなどのコマンドを使い、適切にバージョン管理を行うことが重要です。

アップデートによる互換性の影響

Starlightの仕様変更により、既存のカスタマイズが影響を受ける可能性があります。もし組み込みコンポーネントを差し替えたりなど、大規模なカスタマイズを施した場合、アップデート時に互換性のチェックや修正作業が必要になることが考えられます。

そのため、可能な限り公式の拡張機能や推奨されるカスタマイズ手法を活用し、将来的なアップデートに備えるのが賢明です。

次に、実際にStarlightを導入し、ドキュメントサイトを構築する手順を紹介します。

コラム:その他のドキュメントツール

Starlightのほかにもドキュメントサイトを構築するツールは数多く存在します。その中でも、Starlightと競合するツールと、特定の用途に特化したツールをいくつか紹介します。

Starlightと競合するツール

Starlightと同様に静的なドキュメントサイトの構築を目的としているツールです。

  • Docusaurus(Meta製):Reactベースの高機能ドキュメントツール。プラグインが豊富で拡張性が高いのが特徴ですが、Starlightと比べるとJavaScriptの依存が多く、初期表示が重めになる傾向があります。
  • VitePress(Vueエコシステム向け):Viteを活用した軽量なドキュメントツール。Vue.jsが必要ですが、機能はシンプルで使いやすいのが強みです。

特定の用途に特化したツール

一般的なドキュメントサイトというよりも、特定の目的に特化しているツールです。

  • Storybook:UIコンポーネントの管理・カタログ化に特化したツール。デザインシステムの構築やコンポーネント管理には適していますが、一般的なドキュメント用途には向いていません。
  • Swagger(OpenAPI):APIの仕様を可視化し、開発者向けに整理するのに便利ですが、マニュアル作成や一般的なドキュメントには適さないでしょう。

Starlightは、DocusaurusやVitePressのような静的ドキュメントツールと競合しますが、StorybookやSwaggerのような特化型ツールとは用途が異なるため、組み合わせて活用することもできます。

プロジェクトの目的に応じて、最適なツールを選びましょう。

インストール

Starlightのインストールはシンプルで、Astroのセットアップ時にオプションを指定するだけで完了します。

Starlightテンプレートを使ってAstroをセットアップ

以下のコマンドを実行すると、Starlightを含むAstroプロジェクトが作成されます。

Starlightのインストール

npm create astro@latest -- --template starlight

また、オプションを指定しなくても、Astroの標準ウィザードを使用してセットアップ時に「How would you like to start new project?」という質問において、Starlightのテンプレートを選択することも可能です。

このウィザードでは、プロジェクトディレクトリ名や依存するライブラリをインストールするか、Gitのリポジトリとして初期化するかも聞かれます。

この記事では、デフォルトのまま依存ライブラリのインストールと、Gitの初期化も併せて行っておきます。プロジェクトディレクトリ名はランダムに用意されたそのままでもいいですし、自分でわかりやすい名前をつけてもかまいません。

開発サーバーを起動

インストール後、以下のコマンドでローカルサーバーを立ち上げ、動作を確認できます。

ローカルサーバーの立ち上げ

npm run dev

ブラウザでhttp://localhost:4321にアクセスすると、初期状態のStarlightドキュメントサイトが表示されます。

ここまでのまとめ

Starlightの特徴から注意点、インストールまで紹介しました。見やすいドキュメントはプロダクトの機能のひとつです。良いドキュメントがないプロダクトはどんなに品質が良くても使われません。

Starlightのようなドキュメントサイト生成を助けてくれるツールをうまく使い、管理しやすく自由度の高いドキュメントサイトを作ってみてはいかがでしょうか。

次回は、Starlightのチームでの共有とデプロイについて紹介します。