付録A: 設定リファレンス

Book Publishing Template v3.0の詳細な設定オプションと機能リファレンスです。

A.1 book-config.json

基本設定

{
  "book": {
    "title": "書籍タイトル",
    "subtitle": "サブタイトル(オプション)",
    "description": "書籍の説明文",
    "author": {
      "name": "著者名",
      "email": "author@example.com",
      "url": "https://author-website.com"
    },
    "version": "1.0.0",
    "language": "ja",
    "isbn": "978-4-XXXX-XXXX-X"
  }
}

コンテンツセクション

{
  "contentSections": [
    {
      "name": "preface",
      "directory": "preface",
      "enabled": true,
      "order": 0,
      "title": "まえがき"
    },
    {
      "name": "introduction", 
      "directory": "introduction",
      "enabled": true,
      "order": 1,
      "title": "はじめに"
    },
    {
      "name": "chapters",
      "directory": "chapters", 
      "enabled": true,
      "order": 2,
      "title": "章"
    },
    {
      "name": "appendices",
      "directory": "appendices",
      "enabled": true, 
      "order": 3,
      "title": "付録"
    },
    {
      "name": "afterword",
      "directory": "afterword",
      "enabled": false,
      "order": 4,
      "title": "あとがき"
    }
  ]
}

ビルド設定

{
  "build": {
    "outputDirectory": "docs",
    "enableV3DesignSystem": true,
    "enableNavigation": true,
    "enableSyntaxHighlighting": true,
    "enableSearchIndex": false,
    "enablePWA": false,
    "minifyCSS": false,
    "minifyJS": false
  }
}

A.2 CSS変数リファレンス

カラーシステム

:root {
  /* 背景色 */
  --color-bg-primary: #ffffff;
  --color-bg-secondary: #f8f9fa;
  --color-bg-tertiary: #e9ecef;
  
  /* テキスト色 */
  --color-text-primary: #212529;
  --color-text-secondary: #6c757d;
  --color-text-muted: #adb5bd;
  
  /* ボーダー */
  --color-border: #dee2e6;
  --color-border-light: #f1f3f4;
  
  /* ブランドカラー */
  --color-primary: #0366d6;
  --color-primary-hover: #0256cc;
  
  /* セマンティックカラー */
  --color-success: #28a745;
  --color-warning: #ffc107;
  --color-danger: #dc3545;
  --color-info: #17a2b8;
  
  /* コードカラー */
  --color-code-bg: #f6f8fa;
  --color-code-border: #e1e4e8;
  --color-code-text: #24292e;
}

タイポグラフィ

:root {
  /* フォントファミリー */
  --font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-family-mono: 'SFMono-Regular', Consolas, monospace;
  --font-family-heading: var(--font-family-base);
  
  /* フォントサイズ */
  --font-size-xs: 0.75rem;    /* 12px */
  --font-size-sm: 0.875rem;   /* 14px */
  --font-size-base: 1rem;     /* 16px */
  --font-size-lg: 1.125rem;   /* 18px */
  --font-size-xl: 1.25rem;    /* 20px */
  --font-size-2xl: 1.5rem;    /* 24px */
  --font-size-3xl: 1.875rem;  /* 30px */
  --font-size-4xl: 2.25rem;   /* 36px */
  
  /* 行間 */
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
}

スペーシング

:root {
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */
}

レイアウト

:root {
  --sidebar-width: 280px;
  --sidebar-width-collapsed: 60px;
  --content-max-width: 800px;
  --header-height: 60px;
}

A.3 JavaScript API

ThemeManager

// テーマの取得
const currentTheme = window.themeManager.getCurrentTheme();

// テーマの設定
window.themeManager.setTheme('dark');

// テーマ変更イベントの監視
window.addEventListener('themechange', (event) => {
  console.log('Theme changed to:', event.detail.theme);
});

SidebarManager

// サイドバー状態の取得
const { isOpen, isMobile } = window.sidebarManager.getSidebarState();

// サイドバーの開閉
window.sidebarManager.open();
window.sidebarManager.close();
window.sidebarManager.toggle();

CodeCopyManager

// 手動でコピー機能を初期化
new CodeCopyManager();

// カスタムコピーハンドラ
document.addEventListener('codecopy', (event) => {
  console.log('Code copied:', event.detail.code);
});

A.4 Liquid テンプレート変数

サイトレベル変数

Supabaseアーキテクチャパターン実践技術書                    <!-- サイトタイトル -->
スケーラブルな3層構成の設計と実装 - 初心者から上級者まで段階的に学べる、Supabase完全マスターガイド              <!-- サイト説明 -->
株式会社アイティードゥ                   <!-- 著者情報 -->
/supabase-architecture-patterns-book                  <!-- ベースURL -->
       <!-- GitHubリポジトリURL -->

ページレベル変数

付録A: 追加リソース                    <!-- ページタイトル -->
              <!-- ページ説明 -->
/appendices/appendix-a/                      <!-- ページURL -->
appendices/appendix-a/index.md                     <!-- ソースファイルパス -->
                     <!-- ページ言語 -->

ナビゲーションデータ


  <a href="/supabase-architecture-patterns-book/chapters/chapter01/">
    Chapter 1: Supabaseアーキテクチャ理解 🏥
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter02/">
    Chapter 2: 認証・認可設計 🔐
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter03/">
    Chapter 3: パターン1 - クライアントサイド実装 🏠
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter04/">
    Chapter 4: パターン2 - Edge Functions活用 ⚡
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter05-1/">
    Chapter 5: パターン3 - 独立APIサーバー 🏗️
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter05-2/">
    Chapter 5-2: マルチテナンシーと複雑ビジネスロジック 🏢
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter05-3/">
    Chapter 5-3: 拡張性設計とパフォーマンス最適化 📈
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter06/">
    Chapter 6: パフォーマンス最適化(システムの高速化マスター) 🚀
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter07/">
    Chapter 7: セキュリティ強化 🔐
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter08/">
    Chapter 8: 運用監視と自動化 🏥
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter09/">
    Chapter 9: アーキテクチャ選択演習 🏗️
  </a>

  <a href="/supabase-architecture-patterns-book/chapters/chapter10/">
    Chapter 10: 統合実践プロジェクト 🏗️
  </a>



  <a href="/supabase-architecture-patterns-book/appendices/appendix-a/">
    付録A: 設定リファレンス
  </a>

  <a href="/supabase-architecture-patterns-book/appendices/appendix01/">
    付録: 実践的リファレンス集 📚
  </a>

A.5 コマンドラインオプション

ビルドコマンド

# 標準ビルド
npm run build

# 開発モード(ファイル監視)
npm run dev

# プレビューサーバー起動
npm run preview

# 本番用ビルド(最適化あり)
npm run build:production

# クリーンビルド(キャッシュクリア)
npm run build:clean

カスタムオプション

# 出力ディレクトリ指定
node scripts/build-simple.js --output=public

# デバッグモード
node scripts/build-simple.js --debug

# ナビゲーション無効
node scripts/build-simple.js --no-navigation

# v2互換モード
node scripts/build-simple.js --legacy

A.6 ファイル構造

テンプレートファイル

templates/
├── styles/
│   ├── main.css                    # メインCSS
│   └── syntax-highlighting.css    # シンタックスハイライト
├── layouts/
│   └── book.html                   # 書籍レイアウト
├── includes/
│   ├── sidebar-nav.html            # サイドバーナビゲーション
│   ├── breadcrumb.html             # パンくずリスト
│   └── page-navigation.html        # ページナビゲーション
├── js/
│   ├── theme.js                    # テーマ管理
│   ├── sidebar.js                  # サイドバー制御
│   └── code-copy.js                # コードコピー機能
└── data/
    └── navigation.yml              # ナビゲーションデータ

ビルド出力

docs/
├── assets/
│   ├── css/
│   │   ├── main.css
│   │   └── syntax-highlighting.css
│   └── js/
│       ├── theme.js
│       ├── sidebar.js
│       └── code-copy.js
├── _layouts/
│   └── book.html
├── _includes/
│   ├── sidebar-nav.html
│   ├── breadcrumb.html
│   └── page-navigation.html
├── _data/
│   └── navigation.yml
├── _config.yml
└── index.md

A.7 トラブルシューティング

一般的な問題

ビルドエラー

# Node.jsバージョン確認
node --version  # v14.0.0以上推奨

# 依存関係の再インストール
rm -rf node_modules package-lock.json
npm install

# キャッシュクリア
npm run build:clean

CSS/JSが読み込まれない

  1. _config.ymlbaseurl 設定を確認
  2. ファイルパスの大文字小文字を確認
  3. ブラウザキャッシュをクリア

ナビゲーションが表示されない

  1. src/ ディレクトリ構造を確認
  2. Markdownファイルに # タイトル があることを確認
  3. _data/navigation.yml が生成されているかチェック

デバッグ方法

// デバッグログの有効化
localStorage.setItem('debug', 'true');

// テーママネージャーの状態確認
console.log(window.themeManager);

// サイドバーマネージャーの状態確認  
console.log(window.sidebarManager.getSidebarState());

この付録では、v3.0テンプレートの全機能と設定オプションを網羅しました。詳細な実装例や高度な用途については、公式ドキュメントも併せてご確認ください。