Ruby 在中间人中使用嵌套布局

Ruby 在中间人中使用嵌套布局,ruby,haml,middleman,Ruby,Haml,Middleman,我基本上是与中间人2工作,但如果这只能在中间人3我可以切换到它 我有layout.haml拥有所有的样板文件,同时也是索引的布局 现在,我希望inner.haml布局可以用于其余页面,它将继承layout.haml(就我不重复样板文件部分而言),将包含一些额外的通用样式/脚本、一些通用标记,然后重新放置yield块 目前我根本不知道从哪里开始。我知道如何将inner.haml设置为默认布局,将layout.haml设置为“/”路由的布局,但系统如何知道inner.haml实际上嵌套在layout

我基本上是与中间人2工作,但如果这只能在中间人3我可以切换到它

我有
layout.haml
拥有所有的样板文件,同时也是索引的布局

现在,我希望
inner.haml
布局可以用于其余页面,它将继承
layout.haml
(就我不重复样板文件部分而言),将包含一些额外的通用样式/脚本、一些通用标记,然后重新放置
yield

目前我根本不知道从哪里开始。我知道如何将
inner.haml
设置为默认布局,将
layout.haml
设置为“/”路由的布局,但系统如何知道
inner.haml
实际上嵌套在
layout.haml

样本设置

布局图

index.html.haml

内哈姆


乍一看,我很想用两个模板来实现这一点。也许没有那么优雅或枯燥,但肯定可以理解,而且以后很容易调整。例如,对于我们的站点,我们有a和a。然后在每个中间人源文件中,我们声明将使用哪个布局()


除此之外,我希望能从一位哈姆大师那里学到一些东西,他对你的处境有一些魔力

在3.0中,您需要
索引
使用布局
内部
,它将
包装布局
布局


在2.0中,对于块,您将需要一个partials和
content\u的组合。

是的,绝对不是干的。我真正拥有的是——所有站点模板(不是那么小),然后是每个内部页面的一些更常见的标记。所以我绝对不会在这里重复,我已经在使用内容,并且已经产生了内容。当你说partials的时候,你的意思是我应该把所有的common\u-inner\u样式、common\u-inner\u脚本和common\u-inner\u标记放在单独的partials中?我会同意的,但有可能把内容放在部分内容中吗?我的意思是,我想要一些通用的包装器元素,用于所有内部页面自定义内容
!!!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
- 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
-# somehow inherits from / extends layout.haml
- content_for :page_styles do
  -# somehow I'm putting some common content and then reinclude the block from the specific page
  = stylesheet_link_tag "inner.css"
  = yield_content :page_styles
-# same thing for page_scripts
- content_fir :content do
  -# again I define some common HTML, then include page's content