在Middleman中使用嵌套布局

时间:2012-03-29 17:45:26

标签: ruby haml middleman

我基本上和Middleman 2一起工作但是如果这只能在Middleman 3中完成我可以切换到它

layout.haml拥有所有样板,同时是索引的布局。

现在我希望inner.haml布局适用于其他页面,继承来自layout.haml(我将不再重复使用样板部件) ),将包含一些额外的常见样式/脚本,一些常见的标记,然后重新放置yield块。

目前我根本没有意识到应该从哪里开始。我理解如何将inner.haml设置为默认布局,将layout.haml设置为“/”路由的布局,但系统如何知道inner.haml实际上嵌套在{{} 1}}?

示例设置

layout.haml

layout.haml

index.html.haml

!!!5
%html
  %head
    %script(src="HTML5 shiv")
    %title
      My Site
      \|
      = yield_content :title
    = stylesheet_link_tag "site.css"
    = yield_content :page_styles
  %body
    %div(role="main")
      = yield_content :content
    %script(src="jquery")
    = yield_content :page_scripts

inner.haml

- content_for :title do
  Index
- content_for :page_styles do
  = stylesheet_link_tag "index.css"
- content_for :page_scripts do
  %script(src="index.js")
- content_for :content do
  Cool banner here

2 个答案:

答案 0 :(得分:3)

在3.0中,您index使用inner wrap_layout的布局layout

在2.0中,您需要部分和content_for块的组合。

答案 1 :(得分:0)

乍一看,我很想用两个模板做到这一点。也许不是优雅或干燥,但肯定可以理解,以后容易调整。例如。对于我们的网站,我们有一个front page layout和一个rest of the site layout。然后在每个MiddleMan源文件中,我们声明将使用哪个布局(see example)。

除此之外,我希望从HAML大师那里学到一些东西,这些大师对你的情况有一些魔力!