いくつかのプラグインを使用して、metalsmith で定型文を作成しようとしていますが、metalsmith-layouts と metalsmith-in-place を連携させることはできません。私は多くのことを試しましたが、そのうちの 1 つを機能させることに成功しましたが、テンプレート エンジン (ハンドルバーなど) を使用して 2 つ目は機能しませんでした。metalsmith-layouts は .hbs のファイルを読みたくないようです。
ハンドルバーと jstransform-handlebars を適切にインストールしました (.hbs ファイルは、metalsmith-in-place によって適切に変換されますが、metalsmith レイアウトでは機能しません ... これは本当に面倒です)。
私の目標は、ハンドルバーのようなテンプレート エンジンを使用してコンテンツがレンダリングされるレイアウト ファイルを使用することです。
ここに私の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));
そして、ここに私のディレクトリがあります: