中间人博客:自定义布局未加载
Middleman Blog: Custom layout not loading
在 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"
.
到目前为止 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 的文档供您参考。
希望对您有所帮助。
在 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"
.
到目前为止 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 的文档供您参考。
希望对您有所帮助。