如何有条件地将Handlebars部分添加到Assemble布局?

时间:2014-06-05 16:00:51

标签: handlebars.js assemble

我使用AssembleHandlebars生成静态网站。我有一些页面使用相同的总体布局,但有一些例外情况需要添加主{{> body}}之外的内容。

鉴于此通用页面结构:

<html>
<body>

<section>{{> body}}</section>

<!-- global scripts -->

</body>
</html>

并且index.html需要在<!-- global scripts --></body>之间添加标记,最好的方法是什么? < / p>

如果我在我的Grunt文件中包含部分内容,那么:

index: {
    options: {
        partials: ['source/partials/home/**/*.hbs'],
    },
    files: [{
        expand: true,
        cwd: 'source/pages/',
        src: '**/index.hbs',
        dest: 'output/'
    }],
},

此部分可用于assemble任务中的所有其他后续项目,我当然不想要。如果这只是一个变量,我可以在YML前端或类似的事情中做到这一点,但它是一个HTML和内联JS的块,因此比我想要放在前面的事情要多一点。我也无法通过JS加载这个标记,因为它需要阻塞。

1 个答案:

答案 0 :(得分:2)

您可以将变量添加到需要包含部分的页面的前端,如下所示:

specialHTML: true

然后添加您的代码

{{#if specialHTML}}
    {{> mypartial }}
{{/specialHTML}}

因此,只有在设置&#34; SpecialHTML&#34;在前线。