0

ブログを Middleman 4 から移行しようとしています。index.html.erb ファイルには、次のようなコードがあります。

<% page_articles.each_with_index do |article, i| %>
    <% if article.data.layout == 'post' %>
        <%= partial "post", :locals => { :article => article} %>
    <% elsif article.data.layout == 'micro' %>
        <%= partial "micro", :locals => { :article => article} %>
    <% end %>
<% end %>

これは Middleman 3 では問題なく機能し、各投稿の front matter で定義されたレイアウト プロパティに応じて、別のパーシャルを使用できました。

ただし、Middleman 4 では、このlayoutプロパティは article.data に表示されなくなりました。

他のすべての変数があります。これまでのところ、これを機能させる唯一の方法は、次のように frontmatter を宣言することです。

---
layout: post
l: post
title:  "Foo"
date:   2012-10-22 15:14:01
categories: Bar
tags:
---

article.data.lではなく使用しますarticle.data.layout。ただし、これにはすべての記事を書き直す必要があり、冗長に思えます。

レイアウト プロパティに応じて異なるパーシャルを使用してインデックス ページに記事を表示する正しい方法は何ですか?

4

1 に答える 1

1

Middleman 4 では、layoutプロパティはoptionではなくと見なされdataます。

または多分layoutを使用して、ページのプロパティの値にアクセスできるはずです。article.options.layoutarticle.options[:layout]

于 2016-12-12T13:57:46.413 に答える