如何在haml中包含haml文件?它没有在文档中描述。 (This question谈到插入参数化模板,但这不是我正在寻找的。)
我正在使用Sinatra,但我希望它没关系。
是否更容易插入纯HTML?
答案 0 :(得分:1)
似乎你想要的是一个布局模板。我不久前和sinatra一起做了这个,这真的很方便。将您想要的常用内容放在views/layout.haml
中 - 这可能是一个包含头部和正文的完整HTML文档以及在给定页面上所有相同的内容。
%head
-# some head tags here
%body
-# header menu here
= yield
-# a bit footer here
产量部分是您希望页面之间存在差异的地方。 (它使用内置的Ruby方法yield
来执行已经传入的块。如果你熟悉Ruby,你就会知道这意味着什么 - 在你有一些有效的东西之前,不要想太多。)
然后在你的sinatra代码中,你打电话给haml,你就像平时那样做,sinatra将为你挑选布局文件。
haml :specific_page
如果您想更具体地说明布局的位置,可以传入命名布局:
haml :specific_page, layout: :other_layout
它会查找other_layout.haml
而不是布局。您还可以使用以下命令关闭布局:
haml :specific_page, layout: false
我认为这就是你追求的目标。它实际上是在sinatra文档中,而不是关于haml的部分。无论你使用什么模板引擎,它都会像这样工作。