无法进行金属加工布局和金属加工就地工作

Can't make metalsmith-layouts and metalsmith-in-place work

我尝试使用一些插件为我制作一个带有 metalsmith 的样板,但我无法让 metalsmith-layouts 和 metalsmith-in-place 一起工作。我尝试了很多东西,我成功地使其中一个工作但从未使用模板引擎(例如车把)使第二个工作。 metalsmith-layouts 似乎不想读取 .hbs 中的文件。

我已经正确安装了 handlebars ans jstransform-handlebars(并且 .hbs 文件被 metalsmith-in-place 正确转换,但无法使其与 metalsmith 布局一起工作......这真的很烦人)。

我的目标是使用一个布局文件,其中的内容将使用像 handlebars 这样的模板引擎呈现。

这是我的 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 文件,这很令人困惑。就地插件对于使用内容页面的模板引擎很有用。