なぜ必要なのか

家族がMarkdownでレシピを加えるサイトを作るとします。制作側はすでにRubyのテンプレートを管理しています。ページを丸ごと複製せず、共通レイアウトの変更を全記事に反映したいと考えます。

どう解決するのか

家族のレシピ集をMarkdown記事3件とレイアウト1つから始めます。次へでRubyのビルドから一覧と記事HTML3件を生成し、ホスティング経由でブラウザーへ届けます。この例ではレイアウト欠落で出力前に停止します。閲覧時にRubyの処理は不要です。個人の保存記録には別のAPIが必要です。前へは前段階、リセット・再読み込みは初期状態に戻ります。

家族のレシピ集をビルド

概念シミュレーション

Jekyll

次へでソース → ビルド → 出力 → ホスト → ブラウザーをたどります。

ホスティング前にビルド環境は終了

  1. 01 Markdown記事3件 + レイアウト
    • family-recipes.md
    • pantry-tips.md
    • kitchen-notes.md
    • 共通レイアウト
  2. 02 Rubyビルド · レイアウト

    待機

  3. 03 生成HTMLファイル 0

    index.html · family-recipes.html · pantry-tips.html · kitchen-notes.html

  1. 04 静的ホスト · ファイル公開
  2. 05 ブラウザー · 記事3件を読む

Markdown記事3件 + レイアウト

実行境界
ビルド:Ruby+Markdown+Liquid→HTML。閲覧ごとにRubyは実行しません。
状態と責任
公開担当はビルド依存を管理し、個人記録には別の保存経路が必要です。

本文内の架空のデモです。リセット・再読み込みで初期状態に戻ります。

どんな考え方なのか

JekyllはRubyのビルド工程でMarkdownとレイアウトを静的サイトに変換します。生成とホスティングは別の選択です。

ビルド依存関係とホスティングを分けて管理します。

出典