Глоток HTML шаблонизатор

Кто-нибудь знал какой-нибудь плагин "gulp", который собирает (связывает) разные файлы с чем-то с расширением.html в один файл? Или что ближе к тому, что я пытаюсь достичь?

ех.

      строить
        | - HTML
            | - header.html
            | - footer.html
            | - main-section.html
        | - index.html
      расстояние 
        | - index.html (результат)
    

в файле index.html build

... некоторые метатеги...
      где-то внутри тега body

/* I want something like */ require('build/html/header.html); require('build/html/main-section.html); require('build/html/footer.html); </pre>

И вывод будет HTML внутри этих файлов. Где также каждый из этих файлов (заголовок,...) есть что-то, что также требует.

PS Может кто-нибудь перечислить их со ссылками, пожалуйста? Большое спасибо.

2 ответа

Вы можете использовать gulp-inject. С README на github:

Чтобы внедрить содержимое файлов, вы должны предоставить пользовательскую функцию преобразования, которая будет возвращать содержимое файла в виде строки. В этом случае вы также должны опустить параметр {read: false} для gulp.src. В приведенном ниже примере показано, как внедрить содержимое html-частичек в заголовок index.html:

    gulp.src('./src/index.html')
  .pipe(inject(gulp.src(['./src/partials/head/*.html']), {
    starttag: '<!-- inject:head:{{ext}} -->',
    transform: function (filePath, file) {
      // return file contents as string 
      return file.contents.toString('utf8')
    }
  }))
  .pipe(gulp.dest('./dest'));

И в вашем./src/index.html:

<!DOCTYPE html>
<html>
<head>
  <title>My index</title>
  <!-- inject:head:html -->
  <!-- contents of html partials will be injected here -->
  <!-- endinject -->
</head>
<body>
</body>
</html>

Лучшим может быть gulp-inject-множественные файлы.

В файле глотка:

gulp.task('inject-files',function(){
 // begin injection 
  gulp.src('foo.html')
    .pipe(injectfiles('foo.html','parts'))
    .pipe(gulp.dest('temp'));

});

В вашем файле index.html:

<!DOCTYPE html>
<html>
<head>
  <title>My index</title>
  <!-- inject:head-->
  <!-- inject:footer-->
</head>
<body>
</body>
</html>

Если это для шаблонов электронной почты, могу я также порекомендовать Zurb / Inky. Они довольно просты в использовании и не очень часто ломаются в перспективе

Другие вопросы по тегам