From 3e931a6a4c0b660a61f04afcf7f5804b7926364f Mon Sep 17 00:00:00 2001 From: Glen Maddern Date: Sun, 24 Aug 2014 13:54:39 +1000 Subject: [PATCH 01/27] initial structure in place --- .gitignore | 3 + gulpfile.js | 80 ++++++++++++++++ index.html | 1 - package.json | 27 ++++++ src/404.jade | 1 + src/_data.json | 3 + src/_harp.json | 5 + src/_layout.jade | 26 +++++ src/_partials/footer.jade | 0 src/_partials/nav.jade | 0 src/index.jade | 1 + src/scripts/vendor/_metaquery.min.js | 1 + src/styles/main.scss | 1 + src/styles/traits/_after.scss | 71 ++++++++++++++ src/styles/traits/_background.scss | 9 ++ src/styles/traits/_border.scss | 27 ++++++ src/styles/traits/_flex.scss | 54 +++++++++++ src/styles/traits/_layout.scss | 88 +++++++++++++++++ src/styles/traits/_link.scss | 51 ++++++++++ src/styles/traits/_size.scss | 23 +++++ src/styles/traits/_type.scss | 136 +++++++++++++++++++++++++++ src/styles/vendor/_reset.min.scss | 1 + 22 files changed, 608 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 gulpfile.js delete mode 100644 index.html create mode 100644 package.json create mode 100644 src/404.jade create mode 100644 src/_data.json create mode 100644 src/_harp.json create mode 100644 src/_layout.jade create mode 100644 src/_partials/footer.jade create mode 100644 src/_partials/nav.jade create mode 100644 src/index.jade create mode 100644 src/scripts/vendor/_metaquery.min.js create mode 100644 src/styles/main.scss create mode 100644 src/styles/traits/_after.scss create mode 100644 src/styles/traits/_background.scss create mode 100644 src/styles/traits/_border.scss create mode 100644 src/styles/traits/_flex.scss create mode 100644 src/styles/traits/_layout.scss create mode 100644 src/styles/traits/_link.scss create mode 100644 src/styles/traits/_size.scss create mode 100644 src/styles/traits/_type.scss create mode 100644 src/styles/vendor/_reset.min.scss diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b723868 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +.aws* +dist diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..d5ab697 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,80 @@ +var gulp = require('gulp'); +var awspublish = require('gulp-awspublish'); +var rename = require('gulp-rename'); +var browserSync = require('browser-sync'); +var reload = browserSync.reload; +var harp = require('harp'); +var es = require('event-stream'); + +/** + * Serve the Harp Site from the src directory + */ +gulp.task('serve', function () { + harp.server(__dirname + '/src', { + port: 9001 + }, function () { + browserSync({ + port: 3001, + proxy: "localhost:9001", + open: false, + /* Hide the notification. It gets annoying */ + notify: { + styles: ['opacity: 0', 'position: absolute'] + } + }); + /** + * Watch for scss changes, tell BrowserSync to refresh main.css + */ + gulp.watch("src/**/*.scss", function () { + reload("main.css", {stream: true}); + }); + /** + * Watch for all other changes, reload the whole page + */ + gulp.watch(["src/**/*.jade", "src/**/*.json", "src/**/*.md"], function () { + reload(); + }); + }) +}); + +/** + * Default task, running just `gulp` will compile the sass, + * compile the harp site, launch BrowserSync & watch files. + */ +gulp.task('default', ['serve']); + +gulp.task('build-release', function (done) { + harp.compile('src', __dirname + '/dist', done); +}); +gulp.task('publish', ['build-release'], function () { + var aws = require('./.aws.json'), + publisher = awspublish.create(aws); + + var html = gulp.src("dist/**/*.html") + .pipe(rename(function (path) { + // Drop the HTML + path.extname = ''; + // Rename subdir/index to just subdir + if (path.basename === 'index' && path.dirname != '.') { + path.basename = path.dirname; + path.dirname = '.'; + } + })) + .pipe(awspublish.gzip()) + .pipe(publisher.publish({ + 'Cache-Control': 'max-age=86400, no-transform, public', + 'Content-Type': 'text/html' + })); + + var assets = gulp.src(["dist/**", "!dist/**/*.html"]) + .pipe(awspublish.gzip()) + .pipe(publisher.publish({ + 'Cache-Control': 'max-age=86400, no-transform, public' + })); + + return es.merge(html, assets) + .pipe(publisher.cache()) + .pipe(awspublish.reporter({ + states: ['create', 'update', 'delete'] + })); +}); diff --git a/index.html b/index.html deleted file mode 100644 index 557db03..0000000 --- a/index.html +++ /dev/null @@ -1 +0,0 @@ -Hello World diff --git a/package.json b/package.json new file mode 100644 index 0000000..c16bead --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "amcss.github.io", + "version": "0.0.0", + "description": "", + "main": "gulpfile.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git://github.com/amcss/amcss.github.io.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/amcss/amcss.github.io/issues" + }, + "homepage": "https://github.com/amcss/amcss.github.io", + "devDependencies": { + "gulp-rename": "~1.2.0", + "event-stream": "~3.1.7", + "gulp": "~3.8.7", + "gulp-awspublish": "0.0.22", + "browser-sync": "~1.3.6", + "harp": "~0.13.0" + } +} diff --git a/src/404.jade b/src/404.jade new file mode 100644 index 0000000..8de3113 --- /dev/null +++ b/src/404.jade @@ -0,0 +1 @@ +¯\_(ツ)_/¯ diff --git a/src/_data.json b/src/_data.json new file mode 100644 index 0000000..0db3279 --- /dev/null +++ b/src/_data.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/src/_harp.json b/src/_harp.json new file mode 100644 index 0000000..fa2db87 --- /dev/null +++ b/src/_harp.json @@ -0,0 +1,5 @@ +{ + "globals": { + "title": "AMCSS - Attribute Modules for CSS" + } +} diff --git a/src/_layout.jade b/src/_layout.jade new file mode 100644 index 0000000..f6d0ab2 --- /dev/null +++ b/src/_layout.jade @@ -0,0 +1,26 @@ +doctype +html(lang="en") + head + meta(charset="UTF-8") + title= title + meta(name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, minimal-ui") + meta(name="breakpoint" content="small" media="(max-width: 520px)") + meta(name="breakpoint" content="medium" media="(min-width: 521px) and (max-width: 900px)") + meta(name="breakpoint" content="large" media="(min-width: 901px)") + script. + include scripts/vendor/_metaquery.min.js + link(rel="stylesheet" href="/main.css") + body(_layout='p1 small:p0') + //!= partial("_shared/nav") + != yield + //!= partial("_shared/footer") + link(rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/styles/tomorrow.min.css") + script(src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/highlight.min.js") + script hljs.initHighlightingOnLoad(); + script. + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-32408977-4', 'auto'); + ga('send', 'pageview'); diff --git a/src/_partials/footer.jade b/src/_partials/footer.jade new file mode 100644 index 0000000..e69de29 diff --git a/src/_partials/nav.jade b/src/_partials/nav.jade new file mode 100644 index 0000000..e69de29 diff --git a/src/index.jade b/src/index.jade new file mode 100644 index 0000000..134a0a4 --- /dev/null +++ b/src/index.jade @@ -0,0 +1 @@ +h1 OK SMARTY diff --git a/src/scripts/vendor/_metaquery.min.js b/src/scripts/vendor/_metaquery.min.js new file mode 100644 index 0000000..0209705 --- /dev/null +++ b/src/scripts/vendor/_metaquery.min.js @@ -0,0 +1 @@ +!function(a,b){var c={breakpoints:{},_namedEvents:{},_eventMatchCache:{},_globalEvents:[],onBreakpointChange:function(){var a=Array.prototype.slice.call(arguments),b=a.pop(),d=a.pop();"undefined"==typeof d?c._globalEvents.push(b):(c._namedEvents[d]=[]).push(b),k()}},d=function(c){/in/.test(b.readyState)?a.setTimeout(function(){d(c)},9):c()},e=function(a,c,d){b.addEventListener?a.addEventListener(c,d):a.attachEvent("on"+c,d)},f=function(a,b){return-1!==a.className.split(" ").indexOf(b)},g=function(a,b){var c=a.className.split(" "),d=c.indexOf(b);f(a,b)&&(c.splice(d,1),a.className=c.join(" "))},h=function(a,b){f(a,b)||(a.className=""!==a.className?a.className+" "+b:b)},i=function(a,c){var d="breakpoint-"+c,e=b.documentElement;a?h(e,d):g(e,d)},j=function(a,c){if(a)for(var d=b.getElementsByTagName("img"),e=0;e