# 画面設計書 8-About - Option Philosophy

## 概要

本ドキュメントはPrettierドキュメントの「Option Philosophy」ページの画面設計書です。Prettierのオプション設計に関する思想を説明するドキュメントページとして機能します。

### 本画面の処理概要

本画面はPrettierが意図的にオプションを少なく保っている理由、既存オプションの経緯、今後オプションを追加しない方針について説明するドキュメントページです。

**業務上の目的・背景**：Prettierに対する新しいオプション追加リクエストは頻繁に寄せられますが、Prettierプロジェクトはオプションを増やさない方針を取っています。この方針の理由と背景を説明し、ユーザーの理解を促すことを目的としています。また、「スタイル議論を終わらせる」というPrettierの核心的な価値提案が、オプションが増えることで損なわれることを説明しています。

**画面へのアクセス方法**：
- ホームページの「Has few options」リンクをクリック
- サイドバーの「Option Philosophy」をクリック
- ブラウザで直接 `https://prettier.io/docs/option-philosophy` にアクセス

**主要な操作・処理内容**：
1. オプション設計思想の理解
2. 既存オプションの経緯の確認
3. オプション追加しない方針の理解
4. サイドバーを通じた他のドキュメントページへの遷移

**画面遷移**：
- 遷移元：ホームページ、サイドバー
- 遷移先：Why Prettier?、GitHub Issue #40、サイドバー経由で他のドキュメントページ

**権限による表示制御**：本画面は公開ページのため、権限による表示制御はありません。全ての訪問者が同一のコンテンツを閲覧できます。

## 関連機能

| 機能No | 機能名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| - | - | - | 本画面には直接関連する機能はありません（説明ドキュメント） |

## 画面種別

ドキュメント / 情報提示

## URL/ルーティング

- URL: `/docs/option-philosophy`
- ファイルパス: `docs/option-philosophy.md`
- Docusaurus docs機能で生成

## 入出力項目

本画面はユーザー入力を受け付けない表示専用ページです。

| 項目名 | 入出力 | 型 | 必須 | 説明 |
|--------|--------|-----|------|------|
| - | - | - | - | 入力項目なし |

## 表示項目

| セクション | 項目名 | 表示形式 | データソース |
|------------|--------|----------|--------------|
| ヘッダー | ページタイトル | H1テキスト | Front Matter（title: Option Philosophy） |
| 情報ボックス | 重要なお知らせ | Admonition (info) | Markdownコンテンツ |
| 本文 | opinionatedの説明 | テキスト | Markdownコンテンツ |
| 本文 | オプションのデメリット | テキスト | Markdownコンテンツ |
| 本文 | 既存オプションの理由リスト | 箇条書き | Markdownコンテンツ |
| 本文 | 追加しやすいオプション例 | 箇条書き | Markdownコンテンツ |
| 本文 | 追加を後悔しているオプション例 | テキスト | Markdownコンテンツ |
| 本文 | 方針の結論 | 太字テキスト | Markdownコンテンツ |
| 本文 | オプションリクエストへの対応方針 | テキスト | Markdownコンテンツ |
| サイドバー | ドキュメントナビゲーション | リンクリスト | sidebars.js |

## イベント仕様

### 1-Why Prettier?リンククリック

「Why Prettier?」へのリンクをクリックすると、該当ページへ遷移します。

**処理フロー**：
1. リンククリックイベント発火
2. `/docs/why-prettier`へ遷移

### 2-GitHub Issue #40リンククリック

オプション追加に関するGitHub Issueへのリンクをクリックすると、外部GitHubページへ遷移します。

**処理フロー**：
1. リンククリックイベント発火
2. GitHub Issue #40ページへ遷移

### 3-サイドバーナビゲーション

サイドバーのリンクをクリックすると、他のドキュメントページへ遷移します。

**処理フロー**：
1. サイドバーリンククリックイベント発火
2. 選択したドキュメントページへ遷移

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

本画面はデータベースを使用しません。

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

| 操作（イベント） | 対象テーブル | 操作種別 | 概要 |
|----------------|-------------|---------|------|
| - | - | - | データベース操作なし |

## メッセージ仕様

| メッセージID | 種別 | メッセージ内容 | 表示条件 |
|-------------|------|----------------|----------|
| MSG-01 | 情報 | Prettier has a few options because of history. But we won't add more of them. | Admonitionとして常時表示 |

## 例外処理

| 例外ケース | 処理内容 | ユーザーへの表示 |
|-----------|----------|-----------------|
| - | - | 例外ケースなし（静的ドキュメント） |

## 備考

- 本画面はDocusaurus docs機能でMarkdownから生成されます
- Docusaurusの:::info構文でAdmonitionを表示
- bike-sheddingへのWikipediaリンクを含む
- オプション追加リクエストに対するプロジェクトの公式見解を記載
- オプション「凍結」の宣言を含む重要なポリシードキュメント

---

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

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

### 推奨読解順序

#### Step 1: ドキュメント構造を理解する

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | option-philosophy.md | `docs/option-philosophy.md` | ドキュメントのMarkdownソース |

**読解のコツ**: Docusaurusの:::info構文によるAdmonition表示と、プロジェクトの重要なポリシー声明を含むことを理解します。

#### Step 2: コンテンツ構造を理解する

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | option-philosophy.md | `docs/option-philosophy.md` | ポリシー声明の構造 |

**主要コンテンツ**:
1. **1-4行目**: Front Matter（id, title）
2. **6-12行目**: :::info Admonition（重要なお知らせ）
3. **14-20行目**: opinionatedの意味とオプションのデメリット
4. **22-27行目**: 既存オプションの理由（3カテゴリ）
5. **28-35行目**: 追加しやすいオプションの例
6. **36行目**: 追加を後悔しているオプション
7. **38-40行目**: オプション「凍結」の宣言
8. **42-43行目**: オプションリクエストへの対応方針

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

```
option-philosophy.md (Markdownソース)
    │
    ├─ Docusaurus docs plugin
    │      └─ Markdownパース
    │
    ├─ :::info構文処理
    │      └─ Admonitionコンポーネント生成
    │
    ├─ Front Matter処理
    │      └─ id, title抽出
    │
    ├─ sidebars.js
    │      └─ サイドバー生成
    │
    └─ Docusaurusテーマ
           └─ ページレンダリング
```

### データフロー図

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

docs/option-philosophy.md  ───▶ Docusaurusビルド           ───▶ HTMLページ
         │
         ▼
:::info構文               ───▶ Admonition変換             ───▶ 情報ボックス表示
         │
         ▼
Front Matter              ───▶ メタデータ抽出             ───▶ ページタイトル
         │
         ▼
Markdownコンテンツ        ───▶ MDX変換                   ───▶ Reactコンポーネント
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| option-philosophy.md | `docs/option-philosophy.md` | ドキュメント | メインMarkdownソース |
| sidebars.js | `website/sidebars.js` | 設定 | サイドバーナビゲーション構成 |
| docusaurus.config.js | `website/docusaurus.config.js` | 設定 | Docusaurus全体設定 |
