0

これは私のgulpファイルです

var gulp = require('gulp');
var posthtml = require('gulp-posthtml');
var mjml = require('gulp-mjml');
var nunjucksRender = require('gulp-nunjucks-render');
var data = require('gulp-data');



gulp.task('html', function() {
  var plugins = [
      require('posthtml-lorem')(),
       ];
  // Gets .html and .nunjucks files in pages
  return gulp.src('./pages/**/*.+(html|nunjucks)')
  // Adding data to Nunjucks
  .pipe(data(function() {
    return require('./data.json')
  }))
  // Renders template with nunjucks
  .pipe(nunjucksRender({
      path: ['./helpers/']
    }))
  .pipe(posthtml(plugins))
  .pipe(mjml())
  // output files in app folder
  .pipe(gulp.dest('./dest'))
});

これは、データのjsonファイルである可能性がありますdata.json

{
  "Page title": "hello English"
 }

./destフォルダーhome.htmlに2つのファイルが必要でhome_de.htmlhome.htmlコンテンツは英語で、home_de.htmlコンテンツはドイツ語である必要があります。別の言語用に別のソース HTML テンプレート ファイルを用意したくありません。

データ ファイル ( ) へのコンテンツは.json手動で追加されます

4

1 に答える 1

2

Gulp は、node.js の単純なラッパーです。fs を要求することで、ファイル システムにアクセスできます。次に、さまざまな言語データ ファイルをループして、それぞれの html をレンダリングできます。これでうまくいくはずですが、これはテストされていませんが、要点を理解する必要があります。

var fs = require('fs');
var gulp = require('gulp');
var posthtml = require('gulp-posthtml');
var mjml = require('gulp-mjml');
var nunjucksRender = require('gulp-nunjucks-render');
var data = require('gulp-data');



gulp.task('html', function() {
    var plugins = [
       require('posthtml-lorem')(),
    ];

    fs.readdir('./languages/',function(err,files){
        if(err) throw err;
            files.forEach(function(file){
                var language = file.split('.')[0];
                // Gets .html and .nunjucks files in pages
                return gulp.src('./pages/**/*.+(html|nunjucks)')
                // Adding data to Nunjucks
                .pipe(data(function() {
                    return require('./languages/' + language + '.json')
                }))
                // Renders template with nunjucks
                .pipe(nunjucksRender({
                    path: ['./helpers/']
                }))
                .pipe(posthtml(plugins))
                .pipe(mjml())
                // output files in app folder
                .pipe(gulp.dest('./dest/' + language));
        });
    });
});
于 2016-05-13T04:13:24.450 に答える