diff --git a/assets/sass/pages/_about.sass b/assets/sass/about.sass similarity index 100% rename from assets/sass/pages/_about.sass rename to assets/sass/about.sass diff --git a/assets/sass/pages/_blog.sass b/assets/sass/blog.sass similarity index 74% rename from assets/sass/pages/_blog.sass rename to assets/sass/blog.sass index 671624e2d..7ec9953b9 100644 --- a/assets/sass/pages/_blog.sass +++ b/assets/sass/blog.sass @@ -1,10 +1,8 @@ .page--blog__list ul.posts - //list-style: none margin-bottom: 2em margin-left: 0 margin-top: 0 - //padding-left: 0 .post border-bottom: 1px solid #CCC diff --git a/assets/sass/pages/_experience.sass b/assets/sass/experience.sass similarity index 77% rename from assets/sass/pages/_experience.sass rename to assets/sass/experience.sass index 9ee361fbf..a0146a417 100644 --- a/assets/sass/pages/_experience.sass +++ b/assets/sass/experience.sass @@ -1,8 +1,5 @@ -@import '../mixins' - -.experience-item - // margin-bottom: $padding-large-vertical * 3 - +clearfix +@import "node_modules/bulma/sass/utilities/initial-variables" +@import "node_modules/bulma/sass/utilities/mixins" .experience-item-website margin-bottom: 2px diff --git a/assets/sass/main.sass b/assets/sass/main.sass index 13a83134e..6f65e373b 100644 --- a/assets/sass/main.sass +++ b/assets/sass/main.sass @@ -19,11 +19,3 @@ $primary: $blue @import 'components/badges' @import 'components/footer' @import 'components/meetups' - -@import "pages/about" -@import "pages/blog" -@import "pages/experience" -@import "pages/post" -@import "pages/project" -@import "pages/talk" -@import "pages/testimonials" diff --git a/assets/sass/pages/_post.sass b/assets/sass/post.sass similarity index 100% rename from assets/sass/pages/_post.sass rename to assets/sass/post.sass diff --git a/assets/sass/pages/_project.sass b/assets/sass/project.sass similarity index 70% rename from assets/sass/pages/_project.sass rename to assets/sass/project.sass index 4a92b125f..44b681143 100644 --- a/assets/sass/pages/_project.sass +++ b/assets/sass/project.sass @@ -1,4 +1,5 @@ -@import '../mixins' +@import "node_modules/bulma/sass/utilities/initial-variables" +@import "node_modules/bulma/sass/utilities/mixins" .project-company &.has-logo diff --git a/assets/sass/pages/_talk.sass b/assets/sass/talk.sass similarity index 62% rename from assets/sass/pages/_talk.sass rename to assets/sass/talk.sass index 76aa2d22f..55af4694f 100644 --- a/assets/sass/pages/_talk.sass +++ b/assets/sass/talk.sass @@ -1,3 +1,6 @@ +@import "node_modules/bulma/sass/utilities/initial-variables" +@import "node_modules/bulma/sass/utilities/mixins" + .talk-slides background: url('../images/loading.gif') no-repeat center min-height: 275px diff --git a/assets/sass/pages/_testimonials.sass b/assets/sass/testimonials.sass similarity index 100% rename from assets/sass/pages/_testimonials.sass rename to assets/sass/testimonials.sass diff --git a/gulp-tasks/clean.js b/gulp-tasks/clean.js deleted file mode 100644 index 305354f8f..000000000 --- a/gulp-tasks/clean.js +++ /dev/null @@ -1,8 +0,0 @@ -var del = require('del'); - -module.exports = function (gulp, plugins, config) { - return function () { - del.sync('source/assets/{css,fonts,js}'); - del.sync('output_*/assets/{css,fonts,js}'); - } -} diff --git a/gulp-tasks/fonts.js b/gulp-tasks/fonts.js deleted file mode 100644 index 0c4f12a8b..000000000 --- a/gulp-tasks/fonts.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function (gulp, plugins, config) { - return function () { - return gulp.src('node_modules/font-awesome/fonts/*') - .pipe(gulp.dest(config.fonts.outputDir)); - } -} diff --git a/gulp-tasks/scripts.js b/gulp-tasks/scripts.js deleted file mode 100644 index ac72da184..000000000 --- a/gulp-tasks/scripts.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = function (gulp, plugins, config, sourceFiles, outputFile) { - return function () { - return gulp.src(sourceFiles) - .pipe(plugins.plumber()) - .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) - .pipe(plugins.concat(outputFile)) - .pipe(plugins.if(config.production, plugins.uglify())) - .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) - .pipe(gulp.dest(config.js.outputDir)); - } -} diff --git a/gulp-tasks/styles.js b/gulp-tasks/styles.js deleted file mode 100644 index 66dae1c0a..000000000 --- a/gulp-tasks/styles.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = function (gulp, plugins, config, sourceFiles, outputFile) { - return function () { - return gulp.src(sourceFiles) - .pipe(plugins.plumber()) - .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) - .pipe(plugins.sassGlob()) - .pipe(plugins.sass()) - .pipe(plugins.autoprefixer(config.sass.autoprefixer)) - .pipe(plugins.concat(outputFile)) - .pipe(plugins.if(config.production, plugins.purifycss(config.sass.purifyCss))) - .pipe(plugins.if(config.production, plugins.cleanCss())) - .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) - .pipe(plugins.if(!config.production, plugins.refresh())) - .pipe(gulp.dest(config.sass.outputDir)); - } -} diff --git a/gulp-tasks/watch.js b/gulp-tasks/watch.js deleted file mode 100644 index 16afc37b0..000000000 --- a/gulp-tasks/watch.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = function (gulp, plugins, config) { - return function () { - plugins.refresh.listen(); - - gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']); - gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']); - } -} diff --git a/gulpfile.js b/gulpfile.js index 05d763f03..388a446dc 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,38 +3,86 @@ var gulp = require('gulp'); var plugins = require('gulp-load-plugins')(); var config = require('./gulpfile.config')(plugins); +var del = require('del'); -function getTask(task) { - return require('./gulp-tasks/' + task)(gulp, plugins, config); -} +var app = {}; -function addStyle(sourceFiles, outputFile) { - return require('./gulp-tasks/styles')(gulp, plugins, config, sourceFiles, outputFile); -} +app.copy = function (sourceFiles, destination) { + return gulp.src(sourceFiles) + .pipe(gulp.dest(destination)); +}; -function addScript(sourceFiles, outputFile) { - return require('./gulp-tasks/scripts')(gulp, plugins, config, sourceFiles, outputFile); -} +app.sass = function (sourceFiles, outputFile) { + return gulp.src(sourceFiles) + .pipe(plugins.plumber()) + .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) + .pipe(plugins.sassGlob()) + .pipe(plugins.sass()) + .pipe(plugins.autoprefixer(config.sass.autoprefixer)) + .pipe(plugins.concat(outputFile)) + .pipe(plugins.if(config.production, plugins.purifycss(config.sass.purifyCss))) + .pipe(plugins.if(config.production, plugins.cleanCss())) + .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) + .pipe(plugins.if(!config.production, plugins.refresh())) + .pipe(gulp.dest(config.sass.outputDir)); +}; + +app.js = function (sourceFiles, outputFile) { + return gulp.src(sourceFiles) + .pipe(plugins.plumber()) + .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) + .pipe(plugins.concat(outputFile)) + .pipe(plugins.if(config.production, plugins.uglify())) + .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) + .pipe(gulp.dest(config.js.outputDir)); +}; + +gulp.task('clean', function () { + del.sync('source/assets/{css,fonts,js}'); + del.sync('output_*/assets/{css,fonts,js}'); +}); -gulp.task('clean', getTask('clean')); gulp.task('default', ['clean', 'fonts', 'styles', 'scripts']); -gulp.task('fonts', getTask('fonts')); -gulp.task('styles', - addStyle([ +gulp.task('fonts', function () { + return app.copy('node_modules/font-awesome/fonts/*', config.fonts.outputDir); +}); + +gulp.task('styles', function () { + app.sass([ 'node_modules/font-awesome/css/font-awesome.css', - 'node_modules/prismjs/themes/prism-twilight.css', config.sass.sourceDir + '/main.sass' - ], 'site.css') -); + ], 'main.css'); -gulp.task('scripts', - addScript([ + app.sass([ + 'node_modules/prismjs/themes/prism-twilight.css', + config.sass.sourceDir + '/post.sass' + ], 'post.css') + + app.sass(config.sass.sourceDir + '/about.sass', 'about.css'); + app.sass(config.sass.sourceDir + '/blog.sass', 'blog.css'); + app.sass(config.sass.sourceDir + '/experience.sass', 'experience.css'); + app.sass(config.sass.sourceDir + '/project.sass', 'project.css'); + app.sass(config.sass.sourceDir + '/talk.sass', 'talk.css'); + app.sass(config.sass.sourceDir + '/testimonials.sass', 'testimonials.css'); +}); + +gulp.task('scripts', function () { + app.js([ + 'node_modules/jquery/dist/jquery.js', + config.js.sourceDir + '/**/*.js' + ], 'main.js') + + app.js([ 'node_modules/jquery/dist/jquery.js', 'node_modules/prismjs/prism.js', 'node_modules/prismjs/components/prism-{apacheconf,bsash,css,diff,ini,json,nginx,php,sass,scss,sql,less,twig,xml,yaml}.js', - config.js.sourceDir + '/**/*.js' - ], 'site.js') -); + ], 'post.js') +}); -gulp.task('watch', ['default'], getTask('watch')); +gulp.task('watch', ['default'], function () { + plugins.refresh.listen(); + + gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']); + gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']); +}); diff --git a/source/_layouts/default.html.twig b/source/_layouts/default.html.twig index ae49bd9b6..0adc3bbe9 100644 --- a/source/_layouts/default.html.twig +++ b/source/_layouts/default.html.twig @@ -13,7 +13,7 @@ {% include 'og' with { og: page.meta.og } %} - + {% block stylesheets '' %} {% for size in site.apple_touch_icon_sizes %} @@ -60,7 +60,7 @@ - + {% if site.google_analytics_tracking_id %} diff --git a/source/_layouts/post.html.twig b/source/_layouts/post.html.twig index 4f5dd97df..08413d9de 100644 --- a/source/_layouts/post.html.twig +++ b/source/_layouts/post.html.twig @@ -10,3 +10,11 @@ {% include 'post/pager' %} {% include 'post/about-author' %} {% endblock %} + +{% block stylesheets %} + +{% endblock %} + +{% block scripts %} + +{% endblock %} diff --git a/source/_layouts/project.html.twig b/source/_layouts/project.html.twig index 87e6a1356..c7c424ff0 100644 --- a/source/_layouts/project.html.twig +++ b/source/_layouts/project.html.twig @@ -11,3 +11,7 @@ {% include 'project/skills' %} {% include 'project/company' %} {% endblock %} + +{% block stylesheets %} + +{% endblock %} diff --git a/source/_layouts/talk.html.twig b/source/_layouts/talk.html.twig index 951a9897c..72e7499e9 100644 --- a/source/_layouts/talk.html.twig +++ b/source/_layouts/talk.html.twig @@ -46,3 +46,7 @@ } %} {% endblock %} + +{% block stylesheets %} + +{% endblock %} diff --git a/source/blog.html b/source/blog.html index 0d99a12fd..28a6a06b4 100644 --- a/source/blog.html +++ b/source/blog.html @@ -43,3 +43,7 @@ use: [posts] {% endblock %} {% block body_classes 'page--blog page--blog__list' %} + +{% block stylesheets %} + +{% endblock %} diff --git a/source/experience.html.twig b/source/experience.html.twig index 85782f613..2b9e2d197 100644 --- a/source/experience.html.twig +++ b/source/experience.html.twig @@ -47,3 +47,7 @@ redirect: {% endfor %} {% endblock %} + +{% block stylesheets %} + +{% endblock %} diff --git a/source/index.md b/source/index.md index a02481da2..ce97ae526 100644 --- a/source/index.md +++ b/source/index.md @@ -49,6 +49,11 @@ I’m a webmaster and documentation maintainer for [Drupal.org][42], and a provi - IRC (freenode) - {{ site.irc.name }} {% endblock %} +{% block stylesheets %} + +{% endblock %} + + [1]: https://www.google.com/#q=opdavies [2]: https://www.drupal.org [3]: http://symfony.com diff --git a/source/testimonials.html.twig b/source/testimonials.html.twig index 386fc0b0b..8c534b315 100644 --- a/source/testimonials.html.twig +++ b/source/testimonials.html.twig @@ -30,3 +30,7 @@ use: [posts] {% endblock %} {% block body_classes 'page--testimonials' %} + +{% block stylesheets %} + +{% endblock %}