【问题标题】:How to rendering partials within a partials in middleman如何在中间人的部分中渲染部分
【发布时间】:2015-06-27 11:17:21
【问题描述】:

我有一些 Haml 部分,其中许多包含样板

.container .row .col-lg-12

当我尝试将 = partial "site_section" 抽象出来时,我得到:

syntax error, unexpected keyword_end, expecting end-of-input end;end;end;end

我正在使用 ruby​​ 2.2.2。

如何在 Middleman 的 Haml 部分中渲染 Haml 部分?

谢谢

更新 这显然是处理我的部分(上图)的某种特殊情况。我有其他部分内部分渲染得很好。

更新 对于这个this repo,布局实际上是:

_site_section:

.container .row .col-lg-12

_nested_section:

= partial "site_section"
  MOAR (nested) HAML

index.haml:

=partial "nested_section"

【问题讨论】:

  • 你能把你的文件发到_site_section.haml吗?
  • 就是这样,上面:.container 等
  • @acsmith 有赏金,告诉你的朋友。
  • 我刚试了,无法重现,请看github.com/chischaschos/middleman-test。你是这样用的吗?
  • @chischaschos 谢谢我在上面的问题中回复了你。

标签: ruby templates haml partials middleman


【解决方案1】:

由于 HAML 的工作方式,以下内容无效:

= partial "site_section"
  MOAR (nested) HAML

如果您想添加更多文本或 HAML,则可以通过将文本置于上一行的同一级别来实现它

= partial "site_section"
MOAR (nested) HAML

或者将它嵌套在一个 div 中:

= partial "site_section"
.more   
  MOAR (nested) HAML

因此,如果您尝试将额外的 HAML 嵌套到 site_section 部分的输出中,那么您必须将嵌套的额外 HAML 放入嵌套的部分中:

.container
  .row
    .col-lg-12
      = partial 'nested_stuff'
= partial 'nested_stuff'

希望这有帮助,我更新了repo with the working example。

【讨论】:

  • 将它放在与上一行相同的级别是行不通的。 “site_section”的样式不适用于部分。出于同样的确切原因,将它嵌套在潜水 (.more) 中,也在下一行,不起作用。你的第三个例子对我没有任何意义。它不会给我我想要的东西。
  • 哦,那我想我不明白你想要实现什么,预期的输出 html 是什么?
  • 感谢您的关注。我正在尝试将.container .row .col-lg-12 抽象为它自己的部分(_site_section.haml),以用于其他部分。每个部分都可以表达额外的内容,嵌套在_site_section 下。等价的将是我已经在工作的内容,这只是在部分重复.container .row .col-lg-12,然后是嵌套在下面的新内容。
  • 似乎唯一的方法是像github.com/middleman/middleman/issues/1099 那样为部分提供块。然后我的示例将变为github.com/chischaschos/middleman-test/blob/master/test/source/…。
  • 再次感谢您的关注。添加do 块不会产生文本或haml,即使前缀为puts。这可能是因为mixin 功能实际上从未与middleman master 合并。即使可以使用它,您也必须使用=mixin 等。不过,该链接很好。看起来他给出的构建块可能有一个解决方案,他说“香草partial”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 2011-08-09
  • 1970-01-01
  • 2012-02-01
相关资源
最近更新 更多