Docusaurusカスタマイズ方法あれこれ
Docusaurusとは
Docusaurusは、Facebookが開発したオープンソースの静的サイトジェネレーターです。ReactベースのDocusaurusは、ドキュメントサイトの構築に特化しており、開発者にとって使いやすく、機能的なドキュメンテーションを簡単に作成できるように設計されています。
Docusaurusの概要と特徴
Docusaurusは、以下のような特徴を持っています:
- Reactベース: DocusaurusはReactを使用しているため、Reactの知識があれば、カスタマイズや拡張が容易です。
- Markdownサポート: ドキュメントはMarkdownで書くことができ、Docusaurusが自動的にHTMLに変換します。
- バージョン管理: ドキュメントのバージョン管理が簡単で、古いバージョンのドキュメントも保持できます。
- 検索機能: 組み込みの検索機能により、ユーザーはドキュメント内を簡単に検索できます。
- レスポンシブデザイン: Docusaurusは、デスクトップ、タブレット、モバイルなど、様々なデバイスに対応しています。
Reactベースの静的サイトジェネレーター
Docusaurusは、Reactを使用した静的サイトジェネレーターです。これにより、開発者はReactのコンポーネントを使ってサイトをカスタマイズでき、必要に応じてインタラクティブな要素を追加することができます。また、Reactの仮想DOMにより、高いパフォーマンスを実現しています。
ドキュメントサイトの構築に最適化
Docusaurusは、ドキュメントサイトの構築に特化してい ます。ドキュメントのバージョン管理、検索機能、サイドバーナビゲーションなど、ドキュメントサイトに必要な機能が標準で備わっています。これにより、開発者はドキュメントの内容に集中でき、サイトの構築に時間をかける必要がありません。
以上のように、Docusaurusは、Reactベースの静的サイトジェネレーターであり、ドキュメントサイトの構築に最適化されています。次の章では、Docusaurusのインストールと初期設定について説明します。
Docusaurusのインストールと初期設定
Docusaurusを使い始めるには、まずNode.jsとnpmのインストールが必要です。その後、Docusaurusの新規プロジェクトを作成し、開発サーバーを起動して確認します。
Node.jsとnpmのインストール
-
Node.js公式サイトにアクセスします。
-
LTS(Long Term Support)バージョンをダウンロードしてインストールします。
-
ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行してインストールを確認します:
node -v
npm -vこれにより、Node.jsとnpmのバージョンが表示されます。
Docusaurusの新規プロジェクト作成
-
プロジェクトを作成するディレクトリに移動します。
-
以下のコマンドを実行して、Docusaurusの新規プロジェクトを作成します:
- npm
- Yarn
- pnpm
npx create-docusaurus@latest my-website classic
npx create-docusaurus@latest my-website classic
npx create-docusaurus@latest my-website classic
my-website
は、プロジェクトの名前です。必要に応じて変更してください。 -
以下のコマンドを実行して、プロジェクトのディレクトリに移動します:
cd my-website
開発サーバーの起動と確認
-
以下のコマンドを実行して、開発サーバーを起動します:
- npm
- Yarn
- pnpm
npm start
yarn start
pnpm start
-
ブラウザで
http://localhost:3000
にアクセスします。 -
Docusaurusのデフォルトのホームページが表示されれば、インストールと初期設定は完了です。
以下は、実行結果の例です:
[INFO] Starting the development server...
[SUCCESS] Docusaurus website is running at: http://localhost:3000/
これで、Docusaurusのインストールと初期設定が完了しました。次の章では、サイドバーのカスタマイズについて説明します。
サイドバーのカスタマイズ
Docusaurusのサイドバーは、ドキュメントの構造を表示し、ユーザーがコンテンツを探しやすくするために重要な役割を果たします。ここでは、サイドバーの構造と設定ファイル、ドキュメントの階層構造の変更、カテゴリの追加と並び替えについて説明します。
サイドバーの構造と設定ファイル
Docusaurusのサイドバーは、sidebars.js
ファイルで設定します。このファイルは、プロジェクトのルートディレクトリに位置しています。サイドバーの構造は、以下のようなオブジェクトで定義します:
module.exports = {
docs: [
{
type: 'category',
label: 'Getting Started',
items: ['doc1', 'doc2', 'doc3'],
},
// ... その他のカテゴリやドキュメント
],
};
docs
:サイドバーの構造を定義するオブジェクトtype
:'category'
または'doc'
を指定label
:カテゴリの名前items
:カテゴリに属するドキュメントのID(ファイル名から拡張子を除いたもの)の配列
ドキュメントの階層構造の変更
ドキュメントの階層構造を変更するには、sidebars.js
ファイルを編集します。たとえば、以下のようにitems
配列の順序を変更することで、ドキュメントの表示順を変更できます:
module.exports = {
docs: [
{
type: 'category',
label: 'Getting Started',
items: ['doc2', 'doc1', 'doc3'], // 順序を変更
},
// ... その他のカテゴリやドキュメント
],
};
カテゴリの追加と並び替え
新しいカテゴリを追加するには、sidebars.js
ファイルに新しいカテゴリオブジェクトを追加します:
module.exports = {
docs: [
{
type: 'category',
label: 'Getting Started',
items: ['doc1', 'doc2', 'doc3'],
},
{
type: 'category',
label: 'Advanced Topics', // 新しいカテゴリを追加
items: ['doc4', 'doc5'],
},
],
};
カテゴリの並び替えは、カテゴリオブジェクトの順序を変更することで実現できます。
以上のように、Docusaurusのサイドバーはsidebars.js
ファイルで設定し、ドキュメントの階層構造の変更やカテゴリの追加・並び替えが可能です。次の章では、ナビゲーションバーのカスタマイズについて説明します。
ナビゲーションバーのカスタマイズ
Docusaurusのナビゲーションバーは、サイトの主要なセクションへのリンクを提供し、ユーザーがサイト内を移動しやすくします。ここでは、ナビゲーションバーの設定ファイル、リンクの追加と並び替え、ドロップダウンメニューの作成について説明します。
ナビゲーションバーの設定ファイル
ナビゲーションバーは、docusaurus.config.js
ファイルのthemeConfig
オブジェクト内のnavbar
プロパティで設定します。以下は、基本的な構造の例です:
module.exports = {
// ...
themeConfig: {
navbar: {
title: 'My Website',
logo: {
alt: 'My Website Logo',
src: 'img/logo.svg',
},
items: [
{
to: 'docs/doc1',
activeBasePath: 'docs',
label: 'Docs',
position: 'left',
},
// ... その他のリンク
],
},
// ...
},
};
title
:ナビゲーションバーに表示されるサイトのタイトルlogo
:サイトのロゴ画像の設定items
:ナビゲーションバーに表示するリンクの配列
リンクの追加と並び替え
新しいリンクを追加するには、items
配列に新しいオブジェクトを追加します:
module.exports = {
// ...
themeConfig: {
navbar: {
// ...
items: [
// ...
{
to: 'blog',
label: 'Blog',
position: 'left',
},
],
},
// ...
},
};
リンクの並び替えは、items
配列内のオブジェクトの順序を変更することで実現できます。
ドロップダウンメニューの作成
ドロップダウンメニューを作成するには、items
配列内にtype: 'dropdown'
のオブジェクトを追加します:
module.exports = {
// ...
themeConfig: {
navbar: {
// ...
items: [
// ...
{
type: 'dropdown',
label: 'Community',
position: 'right',
items: [
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
],
},
],
},
// ...
},
};
type: 'dropdown'
:ドロップダウンメニューであることを指定label
:ドロップダウンメニューのラベルitems
:ドロップダウンメニュー内のリンクの配列
以上のように、Docusaurusのナビゲーションバーはdocusaurus.config.js
ファイルで設定し、リンクの追加・並び替えやドロップダウンメニューの作成が可能です。
カラーモードの切り替えを無効にする
デフォルトではカラーモードの切り替えが有効になっています。ヘッダー右にある太陽アイコンで切り替えができます。私は必要なかったので、無効にする設定をしました。
module.exports = {
themeConfig:
({
colorMode: {
defaultMode: 'light',
disableSwitch: true,
},
},
};
フッターのカスタマイズ
Docusaurusのフッターは、サイトの追加情報やリンクを提供する重要な要素です。ここでは、フッターの設 定ファイル、リンクの追加と並び替え、スタイルのカスタマイズについて説明します。
フッターの設定ファイル
フッターは、docusaurus.config.js
ファイルのthemeConfig
オブジェクト内のfooter
プロパティで設定します。以下は、基本的な構造の例です:
module.exports = {
// ...
themeConfig: {
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Getting Started',
to: 'docs/doc1',
},
],
},
// ... その他のリンク
],
copyright: `Copyright © ${new Date().getFullYear()} My Website, Inc. Built with Docusaurus.`,
},
// ...
},
};
style
:フッターのスタイル('dark'
または'light'
)links
:フッターに表示するリンクのカテゴリの配列copyright
:フッターに表示する著作権情報
リンクの追加と並び替え
新しいリンクを追加するには、links
配列内の適切なカテゴリに新しいオブジェクトを追加します:
module.exports = {
// ...
themeConfig: {
footer: {
// ...
links: [
{
title: 'Community',
items: [
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
],
},
],
// ...
},
// ...
},
};
リンクの並び替えは、items
配列内のオブジェクトの順序を変更することで実現できます。
スタイルのカスタマイズ
フッターのスタイルをカスタマイズするには、src/css/custom.css
ファイルにCSSを追加します。例えば、フッターのテキストの色を変更するには、以下のようなCSSを追加します:
.footer {
color: #ffffff;
}
また、docusaurus.config.js
ファイルのthemeConfig.footer.style
プロパティを変更することで、フッターの背景色を'dark'
または'light'
に設定できます。
以上のように、Docusaurusのフッターはdocusaurus.config.js
ファイルで設定し、リンクの追加・並び替えやスタイルのカスタマイズが可能です。次の章では、検索機能の設定について説明します。
6. 検索機能の設定
Docusaurusには、強力な検索機能が組み込まれており、ユーザーがサイト内のコンテンツを素早く見つけられるようにします。ここでは、検索機能の有効化、検索対象の設定、検索結果のスタイルのカスタマイズについて説明します。
検索機能の有効化
デフォルトでは、Docusaurusの検索機能は無効になっています。検索機能を有効にするには、docusaurus.config.js
ファイルのthemeConfig
オブジェクト内にalgolia
プロパティを追加します:
module.exports = {
// ...
themeConfig: {
// ...
algolia: {
apiKey: 'YOUR_API_KEY',
indexName: 'YOUR_INDEX_NAME',
contextualSearch: true,
appId: 'YOUR_APP_ID',
},
// ...
},
};
apiKey
:AlgoliaのAPIキーindexName
:Algoliaのインデックス名contextualSearch
:コンテキスト検索の有効化(true
またはfalse
)appId
:Algoliaの アプリケーションID
検索対象の設定
デフォルトでは、Docusaurusはdocs
ディレクトリ内のすべてのMarkdownファイルを検索対象としています。検索対象を変更するには、docusaurus.config.js
ファイルのpresets
セクションを編集します:
module.exports = {
// ...
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
// ...
sidebarPath: require.resolve('./sidebars.js'),
// 検索対象のパスを設定
include: ['docs/**/*.md', 'docs/**/*.mdx'],
// 検索対象から除外するパスを設定
exclude: ['docs/api/**'],
},
// ...
},
],
],
// ...
};
include
:検索対象に含めるパスの配列exclude
:検索対象から除外するパスの配列
検索結果のスタイルのカスタマイズ
検索結果のスタイルをカスタマイズするには、src/css/custom.css
ファイルにCSSを追加します。例えば、検索結果のタイトルの色を変更するには、以下のようなCSSを追加します:
.algolia-docsearch-suggestion--title {
color: #1877f2;
}
また、Algoliaのダッシュボードから検索結果のスタイルを設定することもできます。
以上のように、Docusaurusの検索機能はdocusaurus.config.js
ファイルで設定し、検索対象の設定や検索結果のスタイルのカスタマイズが可能です。次の章では、カスタムCSSの適用について説明します。
7. カスタムCSSの適用
Docusaurusでは、デフォルトのスタイルに加えて、カスタムCSSを適用することでサイトの見た目をカスタマイズできます。ここでは、カスタムCSSファイルの作成、CSSの読み込み、サイト全体のスタイル変更について説明します。