Docusaurus ドキュメントページを作成する方法を解説!

Docusaurusはドキュメントサイトを作るために使われるケースが多いです。今回は、Docusaurusでドキュメントページを作成する方法を解説します。

ドキュメントのページは最もよく作られる、基本的なページのため今回の内容は非常に重要です。

ドキュメントページを作成

docs/ ディレクトリに greeting.md というマークダウンファイルを作成します。

website  # サイトのルートディレクトリ
├── docs
│   └── greeting.md
├── src
│   └── pages
├── docusaurus.config.js
├── ...

greeting.md

---
description: ドキュメントページ作成
tags:
  - Releases
  - docusaurus
---

# Docusaurus

オープンソース プロジェクトのドキュメント サイトを作成する準備はできていますか?

## ヘッダー

ヘッダーが右上の目次に表示され、このページの構成を把握できます。

## デフォルトでは、h2 と h3 のみが TOC(目次)に含まれます

TOCの見出しレベルは、ドキュメントごとに、またはテーマ設定で設定できます。

階層が明確になるように、ヘッダーの間隔が広く取られています。

- マークダウンでリストを記述できます
- リストはネストして
    - 複数回
        - 使用できます。

npm run start でローカルのサーバーを起動し、http://localhost:3000/docs/greeting にアクセスすると以下のようなページが表示されます。

アンダースコア (_) から始まるファイル名は「部分」ページとして扱われ、デフォルトでは無視されます(ページのURLは作成されません)

ドキュメントの front matter

front matter はドキュメント ページに追加のメタデータを提供するために使用されます。front matter はオプションです。

例えば、以下で紹介するタグ付け機能では、front matter を使用する必要があります。

タグ付け

タグは front matter で宣言され、docs サイドバー に加えて別の分類が導入されます。

タグをインラインで定義したり、tags file で宣言された事前定義タグを参照したりすることができます。このタグ付け機能はオプションで、通常は docs/tags.yml で定義します。

以下の例では:

  • docusaurusは、docs/tags.yml で宣言された事前定義タグキーを参照します 
  • Releases タグは、docs/tags.yml には存在しないため、インラインタグになります。

docs/my-doc.md

---
tags:
  - Releases
  - docusaurus
---

# タイトル

内容

docs/tags.yml

docusaurus:
  label: 'Docusaurus'
  permalink: '/docusaurus'
  description: 'Docusaurus フレームワークに関連するドキュメント'

赤線の部分はtags.ymlで定義した内容です。

tags: [Demo, Getting started] のように宣言することもできます。

ドキュメント ID

すべての文書には一意のIDがあります。デフォルトでは、ドキュメントIDはdocsディレクトリに対するドキュメントの名前(拡張子を除く)です。

例えば、greeting.mdのIDは、greeting になります。guide/hello.md のIDは、 guide/hello になります。

website # サイトのルートディレクトリ
└── docs
   ├── greeting.md
   └── guide
      └── hello.md

IDの最後の部分は、front matter で定義することもできます。

例えば、guide/hello.md に以下ように定義されている場合、IDは、guide/part1 になります。

---
id: part1
---

IDは、サイドバーを自作する場合や、ドキュメント関連のレイアウト コンポーネントやフックを使用する場合に、ドキュメントを参照するために使用されます。

ドキュメントの URL

デフォルトでは、ドキュメントのURL位置は、docsフォルダーを基準としたファイルパスです。ただし、ファイルに次の名前が付けられている場合、そのファイル名は URL に含まれません

  • index(大文字と小文字を区別しません): docs/Guides/index.md
  • README(大文字と小文字を区別しません): docs/Guides/README.mdx
  • 親フォルダと同じ名前: docs/Guides/Guides.md

すべての場合において、デフォルトのスラッグは、/Guides になります。(/Guides/index、/Guides/README、/Guides/Guides ではありません)

slug という front matter を使って URL を変更することができます。

たとえば、サイト構造は次のようになるとします。

website # サイトのルートディレクトリ
└── docs
    └── guide
        └── hello.md

デフォルトでは hello.md のURLは、 /docs/guide/hello ですが、以下のように hello.md にslugを定義すると、URLを /docs/bonjour に変更できます。

---
slug: /bonjour
---

slug は、ドキュメントのプラグインの routeBasePath (デフォルトは /docs)に追加されます。

メモ

slug は、2通りの書き方ができます。
絶対パスで書く方法  slug: /mySlug、 slug: /…
相対パスで書く方法  slug: mySlug、 slug: ./../mySlug…

ドキュメントをルートで利用できるようにし、https://docusaurus.io/docs/ のようなパスを持たせたい場合、slug の front matter を使用することができます。

---
id: my-home-doc
slug: /
---

サイドバー

サイドバーの自動生成を使用すると、ファイル構造によりサイドバーが自動的に決定します。

よって、ディレクトリ構成をサイドバーの構造と同じにすることをお勧めします。

スポンサーリンク
スポンサーリンク