Issue #360: 🎯 feat: 目次表示設定のカスタマイズ機能実装

Opened 2025/7/16 by @nyasuto Open
priority: low type: feature

Description

## 🎯 feat: ユーザー中心の目次表示制御システム

### **Priority: LOW**

**Impact:** ユーザーカスタマイゼーション・個人設定

**Component:** ユーザー設定・ローカルストレージ

**Files:** 
- `src/components/docs/DocsLayout.astro`
- `src/lib/settings.ts`

### Problem Description

現在は開発者が設定した目次表示設定に全ユーザーが従う必要があり、個人の読書スタイルや好みに応じたカスタマイズができません。ユーザーによっては目次を常に非表示にしたい、特定の表示形式を好む、などの個別ニーズがあります。

### 現在の問題
- 目次表示のオン・オフがユーザー制御できない
- 表示形式の選択肢がない
- 個人設定の永続化なし
- 読書スタイルに合わせた調整不可

### Recommended Solution

**柔軟な目次表示カスタマイゼーション:**

1. **表示モード選択**: サイドバー・インライン・非表示の切り替え
2. **ローカルストレージ保存**: ユーザー設定の永続化
3. **クイック切り替え**: ツールバーでの即座変更
4. **デフォルト設定継承**: プロジェクト設定との統合

### 設定オプション設計

```typescript
interface TOCUserSettings {
  enabled: boolean;           // 目次表示の有効・無効
  position: 'sidebar' | 'inline' | 'floating' | 'hidden';
  autoCollapse: boolean;      // 自動折りたたみ
  showProgress: boolean;      // 進捗表示
  compactMode: boolean;       // コンパクト表示
  maxDepth: number;          // 表示する見出しレベル上限
}

// 設定管理クラス
class TOCSettings {
  private readonly STORAGE_KEY = 'beaver_toc_settings';
  
  save(settings: Partial) {
    localStorage.setItem(this.STORAGE_KEY, JSON.stringify(settings));
  }
  
  load(): TOCUserSettings {
    const stored = localStorage.getItem(this.STORAGE_KEY);
    return stored ? { ...this.getDefaults(), ...JSON.parse(stored) } : this.getDefaults();
  }
}
```

### UI/UX設計

```astro
<\!-- 目次設定パネル -->
``` ### 設定統合システム ```astro <\!-- DocsLayout.astroでの設定適用 --> ``` ### Acceptance Criteria - [ ] 目次表示のオン・オフをユーザーが制御可能 - [ ] 表示位置(サイドバー・インライン・フローティング)の選択 - [ ] 見出しレベル(H1-H6)の表示範囲設定 - [ ] 設定のローカルストレージ永続化 - [ ] デフォルト設定からの個人カスタマイズ - [ ] 設定パネルのアクセシブルなUI - [ ] 設定変更の即座反映(リロード不要) **ユーザー個人の読書習慣や好みに合わせた柔軟な目次カスタマイゼーションにより、パーソナライズされたドキュメント閲覧体験を提供**

Comments

コメント機能は現在実装されていません。
GitHub API の comments エンドポイントを統合する予定です。

🤖 AI分析

分類結果

✨ 新機能
🟢 低
58 スコア
カテゴリ 40
優先度 18
0

適用されたルール

Enhanced Feature Request Detection
• Has matching label: "feature"• Has matching label: "type: feature"

Details

Assignees:

None

Milestone:

None

Created:

2025/7/16

Updated:

2025/7/16