grunt-htmlclean

Simple and safety HTML/SVG cleaner to minify without changing its structure.

Usage no npm install needed!

<script type="module">
  import gruntHtmlclean from 'https://cdn.skypack.dev/grunt-htmlclean';
</script>

README

grunt-htmlclean

npm GitHub issues David license

This Grunt plugin is wrapper of htmlclean.

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/'
    }
  }
});