From e55b0c537b878e9fcd1a286119ce262e6896c970 Mon Sep 17 00:00:00 2001 From: Geoff Kimball Date: Thu, 19 Feb 2015 16:06:25 -0800 Subject: [PATCH] Prototype basic Handlebars gulp function --- gulpfile.js | 49 +++++++++++++++++++++++++++++++++++++--- package.json | 1 - src/layouts/default.html | 3 +-- 3 files changed, 47 insertions(+), 6 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index aac315c5..32d0fd89 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -22,15 +22,58 @@ var gulp = require('gulp'), rename = require('gulp-rename'), connect = require('gulp-connect'), minifyHTML = require('gulp-minify-html'), - extractMQ = require('media-query-extractor'), - inject = require('gulp-inject'), - inkyGulp = require('gulp-inky'), + // extractMQ = require('media-query-extractor'), + // inject = require('gulp-inject'), + // inkyGulp = require('gulp-inky'), handlebars = require('gulp-compile-handlebars'), omglob = require('glob'), gSync = require('gulp-sync')(gulp), runOrder = require('run-sequence'), rimraf = require('rimraf'); +// Testin' and sheeeet + +var htmlParse = function(settings) { + var Handlebars = require('handlebars'); + var map = require('vinyl-map'); + var glob = require('glob'); + var path = require('path'); + var fs = require('fs'); + + var partials = glob.sync(settings.partials); + var layout = fs.readFileSync(settings.layout); + + // Find partials and register with Handlebars + for (var i in partials) { + var file = fs.readFileSync(partials[i]); + var name = path.basename(partials[i], '.handlebars'); + Handlebars.registerPartial(name, file.toString()); + } + + // Compile pages with the above helpers + return map(function(code, filename) { + var pageTemplate = Handlebars.compile(code.toString() + '\n'); + var layoutTemplate = Handlebars.compile(layout.toString()); + + Handlebars.registerPartial('body', pageTemplate); + return layoutTemplate(); + }); +} + +gulp.task('htmlparse', function() { + gulp.src('src/pages/*.handlebars') + .pipe(htmlParse({ + layout: 'src/layouts/default.html', + partials: 'src/partials/**/*.handlebars' + })) + .pipe(rename({ + ext: '.html' + })) + .pipe(gulp.dest('dist')); +}); + + + // 2. VARIABLES // - - - - - - - - - - - - - - - diff --git a/package.json b/package.json index 723b4ad3..82b8301d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "gulp-compile-handlebars": "^0.4.4", "gulp-connect": "^2.2.0", "gulp-foreach": "^0.1.0", - "gulp-inky": "*", "gulp-inline-css": "^1.0.1", "gulp-minify-html": "^0.1.8", "gulp-rename": "^1.2.0", diff --git a/src/layouts/default.html b/src/layouts/default.html index 9505870a..51b06f8c 100644 --- a/src/layouts/default.html +++ b/src/layouts/default.html @@ -13,8 +13,7 @@
- - + {{> body}}
-- 2.47.3