図式・図版スタイル
表現方式(現状の方針)
- アーキテクチャ/フロー: Mermaid を第一候補とする
- 圏論の可換図式: まずは テキスト+最小の図版(SVG)で表現し、必要に応じて表現方式を拡張する
補足は次のとおりです。
- Mermaid は progressive enhancement と位置づける。GitHub Pages ではクライアント側で Mermaid をレンダリングする(
assets/js/mermaid-init.js)。現状は Mermaid10.9.1を CDN から読み込み、HTML 内の.mermaid要素を図として表示する。 - dark/light 切替では図のテーマが焼き付くため、テーマ切替時に再レンダリングする(
assets/js/mermaid-init.js)。 - Mermaid で表現力が不足する可換図式/ストリング図式は、SVG(
assets/images/)を利用する。 - 重要図(章の中核図、トップページの概念図)は fallback 必須とする。非JS環境や CDN 障害でも最低限読めることを公開品質の要件に含める。
Mermaid fallback の標準
- 重要図は
<figure class="diagram-with-fallback">を標準とする - 通常表示:
.mermaid-live内の Mermaid を描画する - fallback 表示:
.mermaid-fallback内の静的 SVG を使う - fallback は次の条件で読める状態にする
- JavaScript 無効時
- Mermaid CDN の読み込み失敗時
- テキスト抽出や単純 HTML 検査時
figcaptionで図の要点を 1〜2 文で説明するaltには、図だけでも意味が取れる最小限の説明を入れる
画像配置
- 公開サイトで利用する画像:
assets/images/ - 執筆運用・設計資料(開発者向け)の画像:
docs/assets/images/
命名規約
- 章に紐づく図:
assets/images/chapterNN/<slug>.svg- 例:
assets/images/chapter01/context-pack-overview.svg
- 例:
- 共通図(複数章で参照):
assets/images/shared/<slug>.svg - fallback SVG も同じ命名規約に従う
- 例:
assets/images/chapter01/context-pack-loop.svg - 例:
assets/images/shared/context-pack-concept-map.svg
- 例:
参照方法(HTML / Mermaid fallback)
<figure class="diagram-with-fallback">
<div class="mermaid-live">
<div class="mermaid-wrapper">
<div class="mermaid">
graph TD
A --> B
</div>
</div>
</div>
<div class="mermaid-fallback">
<img src="/categorical-software-design-book/assets/images/chapter01/context-pack-loop.svg" alt="図の要約">
</div>
<figcaption>図: Mermaid と SVG fallback を併置する。</figcaption>
</figure>
作図の最小要件
- 1図1メッセージ(図の目的が1文で説明できる)
- 図中ラベルは
docs/style/terminology.mdに従う - 図の更新時は差分が追える形式(SVG/テキスト)を優先する
- fallback SVG は Mermaid と同じ意味構造を保つ(ノード名/主要な矢印/方向)