Files
docker-docs/Gruntfile.js
2016-09-01 13:38:20 -07:00

116 lines
2.9 KiB
JavaScript

module.exports = function(grunt) {
var hljs = require('highlight.js');
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
assemble: {
options: {
flatten: false,
assets: 'dist/assets/',
data: ['src/data/*.json'],
marked: {
gfm: true,
sanitize: false,
highlight: function(code, lang) {
if (lang === undefined) lang = 'bash';
if (lang === 'html') lang = 'xml';
if (lang === 'js') lang = 'javascript';
return '<div class="code-container">' + hljs.highlight(lang, code).value + '</div>';
}
}
},
dist: {
options: {
partials: ['src/includes/*.html'],
helpers: ['src/helpers/*.js'],
layout: 'src/layouts/default.html'
},
expand: true,
cwd: 'src/pages/',
src: '**/*.html',
dest: 'dist/'
}
},
sass: {
options: {
includePaths: ['bower_components/foundation/scss']
},
dist: {
options: {
outputStyle: 'compressed'
},
files: {
'dist/assets/css/app.css': 'src/assets/scss/app.scss'
}
}
},
copy: {
dist: {
files: [
{expand:true, cwd: 'src/assets/', src: ['**/*','!{scss,js}/**/*'], dest: 'dist/assets/', filter:'isFile'},
{expand:true, cwd: 'bower_components/modernizr/', src: 'modernizr.js', dest: 'dist/assets/js', filter:'isFile'}
]
}
},
uglify: {
dist: {
files: {
'dist/assets/js/all.js': ['bower_components/jquery/dist/jquery.js', 'bower_components/foundation/js/foundation.js', 'src/assets/js/*']
}
}
},
clean: ['dist/'],
watch: {
grunt: {
files: ['Gruntfile.js'],
tasks: ['build']
},
sass: {
files: 'src/assets/scss/**/*.scss',
tasks: ['sass']
},
copy: {
options: {cwd: 'src/assets/'},
files: ['**/*','!{scss,js}/**/*'],
tasks: ['copy']
},
uglify: {
options: {cwd: 'src/assets/js'},
files: ['**/*.js'],
tasks: ['uglify']
},
assemble_all: {
files: ['src/{includes,layouts}/**/*.html'],
tasks: ['assemble'],
options: {livereload:true}
},
assemble_pages: {
files: ['src/pages/**/*.html'],
tasks: ['newer:assemble'],
options: {livereload:true}
}
}
});
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('assemble');
grunt.loadNpmTasks('grunt-newer');
grunt.registerTask('build', ['clean','sass','uglify','assemble','copy']);
grunt.registerTask('default', ['build','watch']);
}