Как объединить заголовок, нижний колонтитул и список файлов содержимого в gulp?

Я делаю генератор html с файлом заголовка, файлом нижнего колонтитула и списком файлов содержимого. У меня есть частичная структура папок/содержимое. Внутри папки partials находится верхний и нижний колонтитулы, а в partials/contents — такие файлы, как index.html, about-us.html и т. д. В эти файлы содержимого я хочу добавить верхний и нижний колонтитулы. Итак, в основном, я хочу объединить файлы, зациклив папку содержимого как мой контент, и добавить файлы верхнего/нижнего колонтитула, а затем вывести в другую папку. Как мне этого добиться? Или вы можете предложить структуру папок, чтобы легко добиться этого.

Здесь у меня есть задача gulp для одного файла только в папке содержимого:

gulp.task('html-test', ['clean-html-test'], function() {
  var header = './partials/header.html';
  var body = './partials/contents/_test.html';
  var footer = './partials/footer.html';
  var outputFilename = 'test.html';

  log('Generating public/test.html...');

  return gulp.src([header, body, footer])
    .pipe($.concat(outputFilename))
    .pipe(gulp.dest('./public/'));
});

Итак, как я могу автоматизировать этот цикл внутри папки содержимого? Спасибо.


person flipjs.io    schedule 11.08.2015    source источник


Ответы (1)


Нашел решение, плагин gulp под названием gulp-headerfooter. Только что протестировал и все заработало!

gulp.task('html-gen', function () {
  log('Generating html files...');
  gulp.src('./partials/content/*.html')
    .pipe($.headerfooter.header('./partials/_header.html'))
    .pipe($.headerfooter.footer('./partials/_footer.html'))
    .pipe(gulp.dest('./public/'));
});

person flipjs.io    schedule 11.08.2015
comment
Нашел другую альтернативу, используя gulp-inject: github.com/klei/gulp-inject #injecting-files-contents - person flipjs.io; 17.08.2015