Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t进行金属匠布局和金属匠就位工作_Javascript_Node.js_Handlebars.js_Metalsmith - Fatal编程技术网

Javascript Can';t进行金属匠布局和金属匠就位工作

Javascript Can';t进行金属匠布局和金属匠就位工作,javascript,node.js,handlebars.js,metalsmith,Javascript,Node.js,Handlebars.js,Metalsmith,我尝试使用一些插件与metalsmith一起制作样板,但我无法使metalsmith布局和metalsmith就地工作。我尝试了很多方法,成功地使其中一种方法可行,但第二种方法从未使用模板引擎(例如把手)。 看起来metalsmith布局不想读取.hbs中的文件 我已经正确安装了Handlebar和jstransform Handlebar(并且.hbs文件由metalsmith正确转换,但无法使其与metalsmith布局一起工作……这真的很烦人) 我的目标是使用一个布局文件,其中的内容将使用

我尝试使用一些插件与metalsmith一起制作样板,但我无法使metalsmith布局和metalsmith就地工作。我尝试了很多方法,成功地使其中一种方法可行,但第二种方法从未使用模板引擎(例如把手)。 看起来metalsmith布局不想读取.hbs中的文件

我已经正确安装了Handlebar和jstransform Handlebar(并且.hbs文件由metalsmith正确转换,但无法使其与metalsmith布局一起工作……这真的很烦人)

我的目标是使用一个布局文件,其中的内容将使用模板引擎(如Handlebar)呈现

以下是我的index.js代码:

const path = require('path');
const metalsmith = require('metalsmith');
const inPlace = require('metalsmith-in-place');
const layouts = require('metalsmith-layouts');
const assets = require('metalsmith-assets');
const sass = require('metalsmith-sass');
const htmlMinifier = require("metalsmith-html-minifier");
const permalinks = require('metalsmith-permalinks');

metalsmith(__dirname)  
    .source('src')
    .destination('dist')
    .use(sass({
        file: './src/scss/*.scss',
        outputDir: "css/"
    }))
    .use(inPlace())                             //Template engine uses Handlebars
    .use(layouts({
         engine: 'handlebars',
         default: "layout.html.hbs"
    }))    
    .use(htmlMinifier())
    .use(permalinks({
        relative: false,
        pattern: ':url'
    }))    
    .use(assets({
        source: 'assets'
    }))
    .build((err) => err && console.error(err)); 
这是我的目录:


我最后得出结论,布局文件必须是.html文件。其html文件的内容由中指定的引擎处理

.use(layouts({
    engine: handlebars
}))

尽管该文件不是这种格式的.hbs文件,但这种格式非常混乱。就地插件对内容页面使用模板引擎很有用。

索引的内容是什么还是测试页面的内容?我不认为内容在这个问题中起作用,但布局的内容很简单:{{{title}{{{contents}},索引是:这是主页,测试页面是:这是测试页面。实际上元数据可以起作用。看起来你也可以在没有就位的情况下使用布局。