Javascript Can';t进行金属匠布局和金属匠就位工作
我尝试使用一些插件与metalsmith一起制作样板,但我无法使metalsmith布局和metalsmith就地工作。我尝试了很多方法,成功地使其中一种方法可行,但第二种方法从未使用模板引擎(例如把手)。 看起来metalsmith布局不想读取.hbs中的文件 我已经正确安装了Handlebar和jstransform Handlebar(并且.hbs文件由metalsmith正确转换,但无法使其与metalsmith布局一起工作……这真的很烦人) 我的目标是使用一个布局文件,其中的内容将使用模板引擎(如Handlebar)呈现 以下是我的index.js代码: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布局一起工作……这真的很烦人) 我的目标是使用一个布局文件,其中的内容将使用
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}},索引是:这是主页,测试页面是:这是测试页面。实际上元数据可以起作用。看起来你也可以在没有就位的情况下使用布局。