无法进行金属加工布局和金属加工就地工作
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 文件,这很令人困惑。就地插件对于使用内容页面的模板引擎很有用。
我尝试使用一些插件为我制作一个带有 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 文件,这很令人困惑。就地插件对于使用内容页面的模板引擎很有用。