grunt-html-prettyprinter

Task that beautifies your HTML

grunt-html-prettyprinter

Task that beautifies your HTML

Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-html-prettyprinter

Then add this line to your project's grunt.js gruntfile:

grunt.loadNpmTasks('grunt-html-prettyprinter');
grunt.initConfig({
  // Beautify single file 
  'html-prettyprinter': {
    single: {
      // HTML file to beauty 
      src: 'dirty/index.html',
 
      // Destination of HTML file 
      dest: 'clean/index.html'
    },
 
    // Multiple files are accepted and concatenated in order by a line feed 
    multi: {
      src: ['dirty/index.html', 'dirty/main.html'],
      dest: 'clean/index.html'
    },
 
    // We support the grunt compact format (dest: src) 
    'clean/index.html': 'dirty/index.html',
 
    // Options can be specified via the `options` key (e.g. tabs) 
    // Full list of options can be found at: 
    //   https://github.com/maxogden/commonjs-html-prettyprinter/blob/61f7fad73b6dd49503f703730eb2410812312118/lib/html.js#L19-L26 
    custom: {
      src: 'dirty/index.html',
      dest: 'clean/index-with-tabs.html',
      options: {
        indent_size: 2,
        indent_char: '\t'
      }
    }
  },
  // Beautify multiple files in a directory 
  'html-prettyprinter-dir': {
    multi: {
      // Files to beautify 
      src: ['dirty/index.html', 'dirty/main.html'],
 
      // Directory to output beautified files to 
      dest: 'clean/'
    },
 
    // Minimatch expansion is supported 
    expansion: {
      // Expands to ['dirty/index.html', 'dirty/main.html'] 
      src: ['dirty/*.html'],
      dest: 'clean/'
    },
 
    // Custom routing is supported 
    routing: {
      src: ['dirty/index.html', 'dirty/main.html'],
      dest: 'clean/',
      // Rename all files to .pretty.html 
      routerfunction (file) {
        var filename = path.basename(file);
        return filename.replace('.html', '.pretty.html');
      }
    },
 
    // We support the grunt compact format (dest: src) 
    'clean/': ['dirty/index.html', 'dirty/main.html'],
 
    // Options can be specified via the `options` key (e.g. tabs) 
    // Full list of options can be found at: 
    //   https://github.com/maxogden/commonjs-html-prettyprinter/blob/61f7fad73b6dd49503f703730eb2410812312118/lib/html.js#L19-L26 
    custom: {
      src: ['dirty/index.html'],
      dest: 'clean-with-tabs/',
      options: {
        indent_size: 2,
        indent_char: '\t'
      }
    }
  }
});

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint your code using grunt and test via npm test.

Support this project and others by twolfson via gratipay.

Copyright (c) 2012-2014 Todd Wolfson Licensed under the MIT license.