# 画面設計書 31-ユーザーガイド一覧

## 概要

libuvユーザーガイドの目次ページ（guide.rst）に関する画面設計書。全9章のユーザーガイドへのナビゲーション機能を提供するページの構造と仕様を定義する。

### 本画面の処理概要

本ページはlibuvユーザーガイドセクションのトップレベル目次として機能し、各ガイド章へのリンクを集約して提供する。

**業務上の目的・背景**：libuvを初めて使用する開発者、またはNode.jsモジュール開発者が、体系的にlibuvの使い方を学習するための入り口となるページである。APIリファレンス（技術的な詳細）とは異なり、チュートリアル形式の実践的な情報へ案内する役割を担う。Sphinxのtoctreeディレクティブにより、子ページの目次を自動生成する構造となっている。

**画面へのアクセス方法**：トップページ（index.rst）のDocumentationセクションにある「guide」リンクからアクセスする。URLパスは `/guide.html` となる。

**主要な操作・処理内容**：
1. ユーザーガイドセクションの警告メッセージ表示（内容がレビュー中であることの通知）
2. 9つのサブページへのリンク一覧表示（toctree, maxdepth:2による階層表示）
3. 各サブページのタイトルとサブセクション見出しの目次表示

**画面遷移**：
- 遷移元：トップページ（No.1 index.rst）のDocumentationセクション
- 遷移先：イントロダクション（No.32）、基本事項（No.33）、ファイルシステム（No.34）、ネットワーク（No.35）、スレッド（No.36）、プロセス（No.37）、イベントループ応用（No.38）、ユーティリティ（No.39）、このプロジェクトについて（No.40）

**権限による表示制御**：なし。全ての閲覧者に同一の内容が表示される。

## 関連機能

| 機能No | 機能名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| 1 | イベントループ初期化 | 遷移先機能 | 各ユーザーガイドページへのナビゲーション目次 |
| 90 | プロセス生成 | 遷移先機能 | プロセスガイド等の各章へのリンク |

## 画面種別

目次（ナビゲーション一覧）

## URL/ルーティング

- ソースファイル：`docs/src/guide.rst`
- 生成先URL：`/guide.html`
- Sphinxルーティング：toctreeディレクティブによる自動目次生成

## 入出力項目

本ページはドキュメント目次のため、ユーザー入力項目は存在しない。

| 項目名 | 入出力 | 型 | 説明 |
|--------|--------|-----|------|
| 警告メッセージ | 出力 | テキスト | 「内容がレビュー中」である旨の注意書き |
| toctree目次 | 出力 | リンクリスト | 9つのサブページへのリンク一覧（maxdepth:2） |

## 表示項目

| 項目名 | 表示内容 | 備考 |
|--------|----------|------|
| セクションタイトル | "User guide" | ページ見出し（h1） |
| 警告ボックス | コンテンツがレビュー中である旨のwarning | Sphinx warningディレクティブ |
| サブページ一覧 | guide/introduction〜guide/aboutへのリンク | toctreeにより自動生成、maxdepth:2 |

## イベント仕様

### 1-サブページリンククリック

ユーザーが目次内のリンクをクリックすると、対応するガイドページ（No.32〜No.40）へ遷移する。Sphinxが生成するHTMLのアンカーリンクにより実現される。

## データベース更新仕様

### 操作別データベース影響一覧

本ページは静的ドキュメントのため、データベース操作は発生しない。

| 操作（イベント） | 対象テーブル | 操作種別 | 概要 |
|----------------|-------------|---------|------|
| - | - | - | 静的HTMLページのため該当なし |

## メッセージ仕様

| メッセージID | 種別 | メッセージ内容 | 表示条件 |
|-------------|------|--------------|---------|
| W-31-01 | 警告 | "The contents of this guide have been recently incorporated into the libuv documentation and it hasn't gone through thorough review yet. If you spot a mistake please file an issue, or better yet, open a pull request!" | 常時表示 |

## 例外処理

静的HTMLページのため、アプリケーションレベルの例外処理は発生しない。404エラーはWebサーバー側で処理される。

## 備考

- 本ページはSphinxのtoctreeディレクティブを使用しており、子ページが追加・削除された場合、自動的に目次が更新される。
- `maxdepth: 2` の設定により、各サブページの第2レベル見出しまでが目次に表示される。
- 2017年にNikhil Maratheの作品がlibuv公式ドキュメントに統合された経緯がある。

---

## コードリーディングガイド

本画面を理解するために参照すべきファイルと、推奨する読み解き順序を以下に示す。

### 推奨読解順序

#### Step 1: データ構造を理解する

本ページはSphinx reStructuredTextファイルであり、toctreeディレクティブが主要な構造要素となる。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | guide.rst | `docs/src/guide.rst` | toctreeディレクティブの構造とmaxdepth設定を理解する |
| 1-2 | index.rst | `docs/src/index.rst` | トップページからguideセクションへの参照方法を確認する |

**読解のコツ**: Sphinxのtoctreeディレクティブは、指定されたファイルを子ページとして階層的に配置する。`maxdepth: 2`は目次に表示するセクションの深さを制御する。

#### Step 2: エントリーポイントを理解する

toctreeの構成が目次ページの構造そのものとなる。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | guide.rst | `docs/src/guide.rst` | 行1-2: ラベル定義とセクションタイトル |
| 2-2 | guide.rst | `docs/src/guide.rst` | 行6-9: warningディレクティブによる注意書き |
| 2-3 | guide.rst | `docs/src/guide.rst` | 行11-22: toctreeディレクティブによるサブページ参照 |

**主要処理フロー**:
1. **行1**: `.. _guide:` -- Sphinxクロスリファレンス用ラベル定義
2. **行3-4**: `User guide` セクション見出し（h1レベル）
3. **行6-9**: `.. warning::` ディレクティブでレビュー中の旨を表示
4. **行11-22**: `.. toctree::` により9つのサブページを順番に配置

#### Step 3: 子ページの参照構造を理解する

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 3-1 | introduction.rst | `docs/src/guide/introduction.rst` | 第1章：イントロダクションの構造 |
| 3-2 | basics.rst | `docs/src/guide/basics.rst` | 第2章：基本事項の構造 |
| 3-3 | filesystem.rst | `docs/src/guide/filesystem.rst` | 第3章：ファイルシステムの構造 |
| 3-4 | networking.rst | `docs/src/guide/networking.rst` | 第4章：ネットワークの構造 |
| 3-5 | threads.rst | `docs/src/guide/threads.rst` | 第5章：スレッドの構造 |
| 3-6 | processes.rst | `docs/src/guide/processes.rst` | 第6章：プロセスの構造 |
| 3-7 | eventloops.rst | `docs/src/guide/eventloops.rst` | 第7章：イベントループ応用の構造 |
| 3-8 | utilities.rst | `docs/src/guide/utilities.rst` | 第8章：ユーティリティの構造 |
| 3-9 | about.rst | `docs/src/guide/about.rst` | 第9章：このプロジェクトについての構造 |

### プログラム呼び出し階層図

```
index.rst (トップページ)
    |
    +-- guide.rst (ユーザーガイド一覧) [本画面]
           |
           +-- guide/introduction.rst (イントロダクション)
           +-- guide/basics.rst (基本事項)
           +-- guide/filesystem.rst (ファイルシステム)
           +-- guide/networking.rst (ネットワーク)
           +-- guide/threads.rst (スレッド)
           +-- guide/processes.rst (プロセス)
           +-- guide/eventloops.rst (イベントループ応用)
           +-- guide/utilities.rst (ユーティリティ)
           +-- guide/about.rst (このプロジェクトについて)
```

### データフロー図

```
[入力]                   [処理]                    [出力]

guide.rst          --> Sphinxビルド             --> guide.html
  toctreeディレクティブ     toctree解析               目次リンク一覧
  warningディレクティブ     HTML生成                  警告ボックス
guide/*.rst        --> セクション見出し抽出      --> ネスト目次項目
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| guide.rst | `docs/src/guide.rst` | テンプレート | ユーザーガイド目次ページ本体 |
| index.rst | `docs/src/index.rst` | テンプレート | トップページ（本画面への参照元） |
| introduction.rst | `docs/src/guide/introduction.rst` | テンプレート | 子ページ：イントロダクション |
| basics.rst | `docs/src/guide/basics.rst` | テンプレート | 子ページ：基本事項 |
| filesystem.rst | `docs/src/guide/filesystem.rst` | テンプレート | 子ページ：ファイルシステム |
| networking.rst | `docs/src/guide/networking.rst` | テンプレート | 子ページ：ネットワーク |
| threads.rst | `docs/src/guide/threads.rst` | テンプレート | 子ページ：スレッド |
| processes.rst | `docs/src/guide/processes.rst` | テンプレート | 子ページ：プロセス |
| eventloops.rst | `docs/src/guide/eventloops.rst` | テンプレート | 子ページ：イベントループ応用 |
| utilities.rst | `docs/src/guide/utilities.rst` | テンプレート | 子ページ：ユーティリティ |
| about.rst | `docs/src/guide/about.rst` | テンプレート | 子ページ：このプロジェクトについて |
| conf.py | `docs/src/conf.py` | 設定 | Sphinxビルド設定 |
