Awesome
grunt-htmlclean
This Grunt plugin is wrapper of htmlclean.
- gulp plugin: gulp-htmlclean
- webpack loader: htmlclean-loader
If you want to just clean files, Command Line Tool is easy way.
Simple and safety HTML/SVG cleaner to minify without changing its structure.
See htmlclean for options and more information about htmlclean.
Getting Started
This plugin requires Grunt ~0.4.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-htmlclean --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-htmlclean');
Usage
In your project's Gruntfile, add a section named htmlclean
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
htmlclean: {
options: {
protect: /<\!--%fooTemplate\b.*?%-->/g,
edit: function(html) { return html.replace(/\begg(s?)\b/ig, 'omelet$1'); }
},
deploy: {
expand: true,
cwd: 'develop/',
src: '**/*.html',
dest: 'public_html/'
}
}
});
See htmlclean for the options.
Working with grunt-task-helper
For example, you want to clean only changed HTML files. Then grunt-task-helper helps it. In this case, using handlerByContent
Function instead of this plugin is better. Because grunt parses files
components in every tasks(targets). handlerByContent
can be included to one task with other handlers (e.g. select changed HTML files).
See grunt-task-helper.
Example:
Gruntfile.js
grunt.initConfig({
taskHelper: {
deploy: {
options: {
// Select files which are newer than `dest`.
handlerByFile: 'newFile',
// Clean the selected files.
handlerByContent: require('grunt-htmlclean/node_modules/htmlclean')
//handlerByContent: require('htmlclean') // If htmlclean is already installed. (Not grunt-htmlclean)
},
expand: true,
cwd: 'develop/',
src: '**/*.html',
dest: 'public_html/'
}
}
});