connect = require('gulp-connect'),
minifyHTML = require('gulp-minify-html'),
concat = require('gulp-concat'),
+ extractMQ = require('media-query-extractor'),
+ inject = require('gulp-inject'),
zfEmail = require('gulp-zurb-foundation-email'),
rimraf = require('rimraf'),
jasmine = require('gulp-jasmine');
.pipe(gulp.dest(dirs.build))
});
+// extract media queries into new CSS file called inkMQ.css
+// any remaining styles will go into ink-noMQ.css
+gulp.task('extract-mq', function () {
+ extractMQ( dirs.build + '/css/ink.css', dirs.build + '/css/ink-noMQ.css', ['only screen and (max-width: 600px)|./build/css/inkMQ.css']);
+});
+
+// inject media queries into the head of the inlined email
+gulp.task('inject-mq', ['extract-mq'], function() {
+ gulp.src(dirs.build + '/index-inline.html')
+ .pipe(inject(gulp.src(dirs.build + '/css/inkMQ.css'), {
+ starttag: '<!-- inject:mq-css -->',
+ transform: function (filePath, file) {
+ // return file contents as string
+ return "<style>\n" + file.contents.toString('utf8') + "\n</style>"
+ }
+ }))
+ .pipe(gulp.dest('./build'));
+})
+
+
+
// 5. HTML
// - - - - - - - - - - - - - - -
});
-gulp.task('deploy', ['minify-html', 'inline']);
+gulp.task('deploy', ['minify-html', 'inline'], function() {
+ gulp.start('inject-mq');
+});
// Default task
gulp.task('default', ['serve', 'watch']);
<html>
<head>
<link rel="stylesheet" type="text/css" href="/css/ink.css">
+ <!-- inject:mq-css -->
+ <!-- endinject -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
<p>great success</p>
</columns>
</row>
- gulp
+ <row>
+ <columns>
+ <h1> Some side content </h1>
+
+ </columns>
+ <columns>
+ <h1> Some side content </h1>
+ </columns>
+ <columns>
+ <h1> Some side content </h1>
+
+ </columns>
+ <columns>
+ <h1> Some side content </h1>
+
+ </columns>
+ </row>
</container>
</center>
</td>
container: 'container',
inlineListH: 'inline-list-h',
inlineListV: 'inline-list-v'
- }
+ },
+ this.columns = 12
};
Inky.prototype = {
$ = cheerio.load(str);
// see the mark up for dev purposes
- // console.log($.html());
+ console.log($.html());
}
else {
console.log("all done");
inner = $(col).html(),
self = this;
+ // Add 1 to include current column
+ var colCount = $(col).siblings().length + 1;
if ($(col).attr('class')) {
colClass = $(col).attr('class');
if ($(col).attr('small')) {
colSize += 'small' + '-' + $(col).attr('small') + ' ';
}
+ else {
+ colSize += 'large-' + Math.floor(self.columns/colCount) + ' ';
+ }
if ($(col).attr('large')) {
colSize += 'large' + '-' + $(col).attr('large') + ' ';
}
+ else {
+ colSize += 'large-' + Math.floor(self.columns/colCount) + ' ';
+ }
output += '<table class="' + colSize + 'columns"><tr>';
"devDependencies": {
"cheerio": "^0.18.0",
"gulp": "^3.8.10",
+ "gulp-combine-mq": "^0.3.1",
"gulp-concat": "^2.4.3",
"gulp-connect": "^2.2.0",
+ "gulp-group-css-media-queries": "^1.0.0",
"gulp-html2txt": "^1.1.0",
"gulp-inline-css": "^1.0.1",
"gulp-jasmine": "^2.0.0",