grunt-php2html
Version:
Frontend HTML generation with PHP
164 lines (143 loc) • 3.19 kB
JavaScript
/*
* Grunt-php2html
* https://github.com/bzoerb/grunt-php2html
*
* Copyright (c) 2013 Ben Zörb
* Licensed under the MIT license.
*/
'use strict';
module.exports = function (grunt) {
// Show elapsed time at the end
require('time-grunt')(grunt);
// Load all grunt tasks
require('load-grunt-tasks')(grunt);
// Project configuration.
grunt.initConfig({
jshint: {
all: [
'Gruntfile.js',
'tasks/**/*.js',
'<%= nodeunit.tests %>'
],
options: {
jshintrc: '.jshintrc'
}
},
// Before generating any new files, remove any previously-created files.
clean: {
tests: ['tmp']
},
php2htmlclean: {all: { }},
// Configuration to be run (and then tested).
php2html: {
default: {
options: {
// Relative links should be renamed from .php to .html
processLinks: true,
htmlhint: false
},
files: [
{
expand: true,
cwd: 'test/',
src: ['**/*.php', '!fixtures/error.php', '!fixtures/router.php', '!env/*.php'],
dest: 'tmp/default',
ext: '.html'
}
]
},
'dest-as-target': {
options: {
processLinks: false,
htmlhint: false,
docroot: 'test'
},
files: {
'tmp/dest-as-target/': ['test/some-other-fixtures/info.php', 'test/fixtures/index.php']
}
},
'first-error': {
options: {
processLinks: false,
htmlhint: {
'tag-pair': true
}
},
files: {
'tmp/only-index/': ['test/fixtures/error.php', 'test/fixtures/index.php']
}
},
'first-error-nohalt': {
options: {
processLinks: false,
htmlhint: {
'tag-pair': true
},
haltOnError: false
},
files: {
'tmp/nohalt/': ['test/fixtures/error.php']
}
},
'first-error-ignored': {
options: {
processLinks: false,
htmlhint: {
'tag-pair': false
}
},
src: 'test/fixtures/error.php',
dest: 'tmp/only-index/error-ignored.html'
},
environment: {
options: {
htmlhint: false,
requestHost: 'mydomain.com'
},
files: [
{expand: true, cwd: './', src: ['test/env/*.php'], dest: 'tmp/', ext: '.html'}
]
},
processTest: {
options: {
processLinks: false,
htmlhint: false,
process(response, callback) {
callback(':-)');
}
},
files: {
'tmp/processTest/': ['test/fixtures/index.php']
}
},
getData: {
options: {
htmlhint: false,
getData: {test: 42, arr: [1, 2, 3, 4], obj: {a: 1, b: 2, c: 3}}
},
files: {
'tmp/data/': ['test/fixtures/get.php']
}
},
router: {
options: {
htmlhint: false,
router: 'test/fixtures/router.php'
},
src: '/myroute',
dest: 'tmp/router/myroute.html'
}
},
// Unit tests.
nodeunit: {
tests: ['test/*_test.js']
}
});
// Actually load this plugin's task(s).
grunt.loadTasks('tasks');
// Whenever the "test" task is run, first clean the "tmp" dir, then run this
// plugin's task(s), then test the result.
grunt.registerTask('test', ['clean', 'php2html', 'nodeunit'/* , 'clean' */]);
// By default, lint and run all tests.
grunt.registerTask('default', ['jshint', 'test']);
};