JSFiddle - React, Tailwind, and code Playground
JavaScript
// Gruntfile for Theme: Boilerplate
module.exports = function(grunt) {
// Project configuration
grunt.initConfig({
pkg: '<json:package.json>',
meta: {
banner:
'/* ==========================================================\n' +
' * <%= pkg.type %>-<%= pkg.name %> v<%= pkg.version %> \n' +
' * Website: <%= pkg.homepage %>\n' +
' * \n' +
' * Built <%= grunt.template.today("yyyy-mm-dd") %> with grunt v<%= grunt.version %>\n' +
'/* ==========================================================\n' +
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
' * Licensed under <%= _.pluck(pkg.licenses,"type").join(", ") %> <%= _.pluck(pkg.licenses,"url").join(", ") %>\n' +
' * \n' +
'/* ==========================================================\n' +
' */'
},
lint: {
all: ['grunt.js', 'tasks/*.js', '<config:nodeunit.tasks>']
},
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true,
es5: true
}
},
// Paths
project: {
partials: 'assets/partials', // don't put trailing slash
pages: 'assets/pages', // don't put trailing slash
less: 'assets/less',
css: 'assets/css',
img: 'assets/img',
js: 'assets/js'
},
wrap: {
html: {
header: '<%= project.partials %>/head.html',
footer: '<%= project.partials %>/footer.html',
src: [
'<%= project.pages %>/index.html',
'<%= project.pages %>/about.html',
'<%= project.pages %>/blog.html'
],
dest: '.' // destination *directory*, probably better than specifying same file names twice
...