UNPKG

light-boilerplate

Version:

Lightweight and powerfull startkit for your next project!

68 lines (61 loc) 1.79 kB
/** * Template Compiler * * @description Compile Twig Files to HTML or copy Structure Files (usefull for PHP or Source Files for a CMS Compiler. */ import meow from '../../config.json'; import pkg from '../../package.json'; import gulp from 'gulp'; import gutil from 'gulp-util'; import gulpLoadPlugins from 'gulp-load-plugins'; import errorHandler from '../lib/errorHandler'; import yargs from 'yargs'; const args = yargs.argv; const $ = gulpLoadPlugins(); function compilerHtmlTask() { const siteEnv = args.env || 'development'; // Set Base Locals const templateLocals = { siteTitle: meow.template.globalTitle, cssName: pkg.cssFileName, assetsCss: meow.templatePath.css, assetsImg: meow.templatePath.contentimage, assetsJs: meow.templatePath.js, assetsCssImg: meow.templatePath.cssimage, environment: siteEnv, }; // Twig Compiler if (meow.template.compiler) { // TWIG Compiler return gulp .src(meow.src.template + '**/[^_]*.{html,twig,pug,rss}') .pipe( global.checkChanged === true ? $.changed(meow.dist.markup, { extension: '.{html,twig,pug,rss}', }) : gutil.noop() ) .pipe($.plumber()) .pipe($.twig({ data: templateLocals })) .on('error', errorHandler) .pipe( $.htmlPrettify({ indent_char: ' ', indent_size: 2, }) ) .pipe(gulp.dest(meow.dist.markup)); } else { // Simple Copy Files return gulp .src([meow.src.structure + '**/**', meow.src.structure + '**/.*']) .pipe( global.checkChanged === true ? $.changed(meow.dist.markup) : gutil.noop() ) .pipe(gulp.dest(meow.dist.markup)); } } export default compilerHtmlTask;