gpt4 book ai didi

gruntjs - 如何根据开发/构建上下文使用 Assemble 包含不同的内容部分?

转载 作者:行者123 更新时间:2023-12-02 13:54:52 25 4
gpt4 key购买 nike

我已经跳进assemble/Grunt 尝试改进为我使用的 CMS 创建模板的工作流程。我想弄清楚的是:是否可以在开发时(即在“grunt watch”期间)在我的模板中使用 HTML 内容 block /部分内容,然后将其替换为我的 CMS 在最终的 HTML 输出(即当我执行“grunt build”时)。像下面这样吗?

<div id="content">
{{! if in dev context, include this partial }}
{{#if}}
{{> body }}
{{! if in build context, include this partial }}
{{else}}
{{> body-cms-tag }}
{{/if}}
</div>

如果处于开发/监视模式,则会输出

<div id="content">
<h1>Test Headline</h1>
<p>This is just test content.</p>
</div<

但在构建模式下,会输出

<div id="content">
<?php echo $mContext['bodyElements']; ?>
</div>

这可能吗,无论是使用 Handlebars 语法、Assemble 助手还是 Grunt 任务(类似于 grunt-usemin?)

最佳答案

您可以在数据或汇编选项中添加标志,并在 if 语句中检查该标志的值:

Gruntfile.js

assemble: {
options: {
production: false
},
files: { ... }
}

页面.hbs

<div id="content">
{{! if in dev context, include this partial }}
{{#if production}}
{{> body }}
{{! if in build context, include this partial }}
{{else}}
{{> body-cms-tag }}
{{/if}}
</div>

目前,如果您想在某些帮助程序或部分中获取 生产 标志来更改上下文级别,则必须使用类似 ../生产 这可能会很痛苦。不过,Handlebars.js 有一个功能,该版本(希望很快)将允许您从任何级别执行 @root.product。这已被合并,但尚未发布。当它发布时,我们将更新到该版本。

希望这有帮助。

关于gruntjs - 如何根据开发/构建上下文使用 Assemble 包含不同的内容部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21521337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com