Express 有相当于玉器的手杖吗

Express 有相当于玉器的手杖吗,express,handlebars.js,pug,Express,Handlebars.js,Pug,我正在考虑将我的express应用程序的临时语言从Jade移到Handlbar,我想知道Handlbar中是否有与Jade extend指令等效的指令。正如我所见,Handlbar存储库中告诉您,存在一个可以扩展块的Handlbar依赖项。您可以找到更多信息和 layout.hbs {{{#块“头”} {{title}} {{/block} {{#块“头”} {{title}} {{/block} {{#块“体”} 你好,世界 {{/block} {{{#块“页脚”} &抄袭;2013 {{/

我正在考虑将我的express应用程序的临时语言从Jade移到Handlbar,我想知道Handlbar中是否有与Jade extend指令等效的指令。

正如我所见,Handlbar存储库中告诉您,存在一个可以扩展块的Handlbar依赖项。您可以找到更多信息和

layout.hbs


{{{#块“头”}
{{title}}
{{/block}
{{#块“头”}
{{title}}
{{/block}
{{#块“体”}
你好,世界
{{/block}
{{{#块“页脚”}
&抄袭;2013
{{/block}
{{{#块“脚”}
{{/block}
在这里,我们定义了一个基本的布局,您可以从中扩展其他html

page.html

{{#扩展“布局”}
{{{#content“head”mode=“append”}
{{/content}
{{{#内容“正文”}
欢迎回家
    {{{#项目}
  • {{}}
  • {{/items}
{{/content} {{{#content“foot”mode=“prepend”} {{/content} {{/extend}
在此文件中,您可以设置要从布局扩展的所有数据

.js文件

var handlebar=require('handlebar');
var布局=需要(“把手布局”);
//登记助手
车把.登记帮助器(布局(车把));
//寄存器部分
handlebar.registerPartial('layout',fs.readFileSync('layout.hbs','utf8');
//编译模板
var template=handlebar.compile(fs.readFileSync('page.html','utf8');
//渲染模板
var输出=模板({
标题:“布局测试”,
项目:[
“苹果”,
“橙色”,
“香蕉”
]
});
一,。需要把手和把手布局
2.将把手中的辅助对象注册为布局。
3.Register partials将文件
layout.hbs
设置为名为“layout”的“模块”,然后在page.html中设置“layout”的扩展名 4.在扩展页.html中编译模板。

5.渲染模板将数据从js传递到文件

适用于寻找网页包解决方案的用户。我在配置中留下了一段代码:

webpack.config.js

...
const fs = require("fs")
const HandlebarsPlugin = require("handlebars-webpack-plugin")
const HandlebarsLayouts = require('handlebars-layouts');

module.exports = {
    ...,
    plugins: [
        ...,
        new HandlebarsPlugin({
            ...,
            onBeforeSetup: function(Handlebars){
                Handlebars.registerHelper(HandlebarsLayouts(Handlebars));
                Handlebars.registerPartial('default', fs.readFileSync('path/to/layout.hbs', 'utf8'));
            }
        })
    ]
}
参考文献:


参考外部资源时,您应始终提供一个示例,以创建可接受的答案。干杯。@GottZ谢谢,我从我发布的资源中复制并粘贴代码,但我会解释一下这是如何工作的。我希望这能有所帮助!