3

ソース ディレクトリのサブディレクトリ内のファイルに対して、一部のインプレース テンプレートを実行するために、metalsmith-in-place を使用しようとしています。うまくいきません。テンプレートタグはフロントマターに置き換えられません。

私のビルドスクリプト:

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。しかし、サブディレクトリで作業する必要があります。

4

3 に答える 3

3

の代わりにjstransformermetalsmith-in-placeフレームワークを使用するように切り替えたため、受け入れられた回答は現在古くなっています。consolidate

in-placeプラグインを使用して Nunjucks と Metalsmith をペアにする方法に関する記事を書きました。

縮小された作業例は次のとおりです。

const Metalsmith = require('metalsmith');
const inPlace = require('metalsmith-in-place');

Metalsmith(__dirname)
  .source('./src')
  .destination('./build')
  .use(inPlace({
    pattern: '**/*.njk',
    engineOptions: {
      path: __dirname + '/src'
    }
  }))
  .build(function (error) {
    if (error) {
      throw error;
    }
  })
;
于 2017-11-18T12:40:52.083 に答える