実現したいこと
下記のように、font-matterで個別に拡張子を設定し、コンパイル後に書き出す際に適用させたいです。
gulp-dataで取得した変数をコンパイラ以外のパッケージにも渡せればいけそうなのですが、どのようにしたら良いのか分からず詰まっています。
現在のコード
hoge.njk
--- title: タイトル ext: tpl --- {# デフォルトではhoge.htmlになるが、hoge.tplに書き出したい #}
gulpfile.js
var rename = require('gulp-rename'); var nunjucks = require('gulp-nunjucks-render'); var frontMatter = require('front-matter'); var data = require('gulp-data'); gulp.task('template', function() { var ext = null; return gulp.src([src.template, '!'+paths.src+'template/**/_*']) .pipe(plumber()) .pipe(data(function(file){ data = {}; ext = null; // ~中略~ // front-matter var fm = frontMatter(String(file.contents)); file.contents = new Buffer(fm.body); data = Object.assign(data, fm.attributes); // 拡張子 if(data.ext) ext = data.ext; return data; })) .pipe(nunjucks({ path: paths.src + 'template/', envOptions: { autoexcape: false, trimBlocks: true } })) .pipe(rename(function(path){ if(ext) path.extname = ext; })) .pipe(gulp.dest(paths.dist)); });
あなたの回答
tips
プレビュー