1

我基本上与 Middleman 2 合作,但如果只能在 Middleman 3 中完成,我可以切换到它

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

现在我想要inner.haml适用于其余页面的布局,将继承layout.haml(就我不会重复样板部分而言),将包括一些额外的常见样式/脚本,一些常见标记,然后将重新放置yield块。

目前我完全没有意识到我应该从哪里开始。我了解如何设置inner.haml为默认布局和layout.haml“/”路由的布局,但是系统如何知道它inner.haml实际上嵌套在其中layout.haml

样品设置

布局.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

index.html.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

内部.haml

-# 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
4

2 回答 2

3

在 3.0 中,您将index使用.innerwrap_layout layout

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

于 2012-03-30T22:56:12.990 回答
0

乍一看,我很想用两个模板来做这件事。也许没有那么优雅或干燥,但肯定可以理解并且以后易于调整。例如,对于我们的站点,我们有一个首页布局和一个站点布局的其余部分。然后在每个 MiddleMan 源文件中,我们声明将使用哪个布局(参见示例)。

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

于 2012-03-30T17:36:19.190 回答