我正在尝试使用就地金属匠对源目录的子目录中的文件进行就地模板化。没用模板标签不会被前题替换。
我的构建脚本:
var Metalsmith = require('metalsmith'),
inplace = require('metalsmith-in-place'),
nunjucks = require('nunjucks');
Metalsmith(__dirname)
.source('./source')
.use(inplace({
engine: 'nunjucks',
pattern: '*.html',
directory: 'source/deeper'
}))
.destination('./build')
.build(function(err) {
if (err) {
console.log(err);
}
else {
console.info('Built it.');
}
});
我的模板:
metalsmith_debug$ cat source/deeper/index.html
---
title: My pets
---
{{title}}
我的输出:
metalsmith_debug$ cat build/deeper/index.html
{{title}}
它适用于
source
中的文件;但是我需要它来处理子目录。 最佳答案
进行一些更改:build.js
:
var Metalsmith = require('metalsmith');
var inplace = require('metalsmith-in-place');
// var nunjucks = require('nunjucks');
Metalsmith(__dirname)
.source('./source')
.use(inplace({
engine: 'nunjucks',
pattern: '**/*.html' // modified pattern
// directory: 'source/deeper' // Not needed
}))
.destination('./build')
.build(function(err) {
if (err) {
console.log(err);
}
else {
console.info('Built it.');
}
});
metalsmith-in-place
使用consolidate
,这在需要时会需要它。 (行可以删除)pattern
中的inplace
修改为**/*.html
。有关更多信息,请参见Globbing patterns。 directory
中不需要inplace
。 (行可以删除)...以及对
source/deeper/index.html
的微小更改:---
title: My pets
---
{{ title }}
{{ title }}
周围增加了空间-Nunjucks似乎认为这很重要。 现在应该为您工作,如果不行,请通知我。
关于nunjucks - 此“原位铁匠”构建脚本有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36488739/