メインコンテンツにスキップ
  • Middleman ホームページ
  • サポート
  • コミュニティ
  • ドキュメント

基礎

  • インストール
  • v4 へのアップグレード
  • 新しいサイトの作成
  • ディレクトリ構造
  • 開発サイクル
  • ビルド & デプロイ
  • Frontmatter
  • テンプレート言語
  • ヘルパーメソッド
  • レイアウト
  • パーシャル
  • リダイレクト
  • ブログ機能

高度な機能

  • 設定
  • プロジェクトテンプレート
  • 動的ページ
  • データファイル
  • 多言語化 (i18n)
  • アセットパイプライン
  • 外部パイプライン
  • Rack ミドルウェア
  • サイトマップ
  • きれいな URL (ディレクトリインデックス)
  • キャッシュ機能の改善
  • ファイルサイズ最適化
  • カスタム拡張
  • テンプレートエンジンオプション

データファイル

ページのコンテンツデータをレンダリングから抜き出すと便利な場合があります。 この方法では, あるチームメンバーがコンテンツのデータベースの作成に集中でき, その作業の間に他のチームメンバーはサイト構造を組むことができます。 データファイルは data フォルダの中に .yml や .json として作ることができ, テンプレートの中でこの情報を使うことができます。 data フォルダは, source フォルダと同じように, プロジェクトのルートに置かれます。


データが用意された data/people.yml を例として示します:

friends:
  - Tom
  - Dick
  - Harry

テンプレートファイルの中ならどこからでも, このデータにアクセスできます:

<h1>友だち一覧</h1>
<ol>
  <% data.people.friends.each do |f| %>
  <li><%= f %></li>
  <% end %>
</ol>

次のようにレンダリングされます:

<h1>友だち一覧</h1>
<ol>
  <li>Tom</li>
  <li>Dick</li>
  <li>Harry</li>
</ol>

.yml (people) のファイル名はテンプレートの中では, data.people のように, データが保存されたオブジェクトの名前になるので注意してください。 サブディレクトリでも同じように機能します。ファイルが data/people/tom.yml にある場合, data.people.tom でアクセスできます。

データを保存のために YAML の代わりに JSON を使うこともできます。 上記の例では data/people.json を使うことができます:

{
  "friends": [
    "Tom",
    "Dick",
    "Harry"
  ]
}

© 2011–2022 Thomas Reynolds

コントリビュータ の助けを借りて コアチーム によって メンテナンスされています。

  • Twitter
  • GitHub