中间人博客:自定义布局未加载

Middleman Blog: Custom layout not loading

在 Middleman 中,我正在尝试建立一个博客站点,使用博客的自定义布局。我的问题是主布局正在加载,但我的文章的博客布局没有。文章文件与它们的纯正文一起提供。

source/layouts/ 中我有两个文件:layout.erbarticle_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".

到目前为止 none 这些方法显示出差异。由于未呈现默认布局,如果找不到布局的路径,我会期待某种错误消息,但什么也没有显示。

我设法用我自己的 Middleman 博客设置重现了您的问题。 文档对此不清楚,因为博客的布局部分中有一个损坏的 link。

您需要使用 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 的文档供您参考。

希望对您有所帮助。