在Middleman,我正在尝试建立一个博客网站,使用博客的自定义布局。我的问题是主要布局是加载,但我的文章的博客布局不是。文章文件正在与他们的简单机构一起提供。
在source/layouts/
我有两个文件:layout.erb
和article_layout.erb
。
我的意图是将article_layout.erb
用于我的博客文章。
在config.rb中,我有以下内容:
activate :blog do |blog|
blog.sources = "articles/{category}/{year}-{month}-{day}-{title}.html"
blog.layout = "article_layout"
end
我也尝试将article_layout.erb
移至source/articles/
,并在此前面添加config.rb文件:blog.layout = "layouts/article_layout"
另一种失败的方法是注释掉上述选项并通过添加此行来配置布局:page "/articles/*", layout: "article_layout"
。
到目前为止,这些方法都没有显示出差异。由于没有呈现默认布局,如果找不到布局的路径,我会发现某种错误消息,但没有显示任何内容。
答案 0 :(得分:1)
我设法用我自己的Middleman博客设置复制你的问题。 文档对此不清楚,因为Blogging的布局部分中存在链接断开。
您需要使用Middleman的嵌套布局功能并将自定义布局包装在:
中<% wrap_layout :layout do %>
<% end %>
所以你的article_layout.erb
看起来像这样:
<% wrap_layout :layout do %>
<div class="article-container">
<article>
<h2 class="article-title"><%= current_page.title %></h2>
<%= yield %>
</article>
</div>
<% end %>
并将自定义布局保留在source/layouts
文件夹中。
以下是Nested Layouts的文档供您参考。
我希望这会有所帮助。