diff --git a/README.md b/README.md index 6b26e44e..8c82dbca 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ Allowed values are as follows: - `chunks`: Allows you to add only some chunks (e.g. only the unit-test chunk) - `chunksSortMode`: Allows to control how chunks should be sorted before they are included to the html. Allowed values: 'none' | 'auto' | 'dependency' | {function} - default: 'auto' - `excludeChunks`: Allows you to skip some chunks (e.g. don't add the unit-test chunk) +- `xhtml`: `true | false` If `true` render the `link` tags as self-closing, XHTML compliant. Default is `false` Here's an example webpack config illustrating how to use these options: ```javascript diff --git a/index.js b/index.js index 7838ba13..ea0c0ce2 100644 --- a/index.js +++ b/index.js @@ -23,7 +23,8 @@ function HtmlWebpackPlugin (options) { showErrors: true, chunks: 'all', excludeChunks: [], - title: 'Webpack App' + title: 'Webpack App', + xhtml: false }, options); } @@ -415,9 +416,11 @@ HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function (html, assets) { var scripts = assets.js.map(function (scriptPath) { return ''; }); + // Make tags self-closing in case of xhtml + var xhtml = this.options.xhtml ? '/' : ''; // Turn css files into link tags var styles = assets.css.map(function (stylePath) { - return ''; + return ''; }); // Injections var htmlRegExp = /(]*>)/i; @@ -428,7 +431,7 @@ HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function (html, assets) { // If there is a favicon present, add it to the head if (assets.favicon) { - head.push(''); + head.push(''); } // Add styles to the head head = head.concat(styles); diff --git a/spec/HtmlWebpackPluginSpec.js b/spec/HtmlWebpackPluginSpec.js index 65dadf1c..5be9cfaf 100644 --- a/spec/HtmlWebpackPluginSpec.js +++ b/spec/HtmlWebpackPluginSpec.js @@ -394,7 +394,7 @@ describe('HtmlWebpackPlugin', function () { new HtmlWebpackPlugin(), new ExtractTextPlugin('styles.css') ] - }, [''], null, done); }); it('should work with the css extract plugin on windows and protocol relative urls support (#205)', function (done) { @@ -478,6 +478,26 @@ describe('HtmlWebpackPlugin', function () { }, [''], null, done); + }); + it('prepends the webpack public path to script src', function (done) { testHtmlPlugin({ entry: path.join(__dirname, 'fixtures/index.js'), @@ -893,6 +913,23 @@ describe('HtmlWebpackPlugin', function () { }, [//], null, done); }); + it('adds a favicon with xhtml enabled', function (done) { + testHtmlPlugin({ + entry: path.join(__dirname, 'fixtures/index.js'), + output: { + path: OUTPUT_DIR, + filename: 'index_bundle.js' + }, + plugins: [ + new HtmlWebpackPlugin({ + inject: true, + xhtml: true, + favicon: path.join(__dirname, 'fixtures/favicon.ico') + }) + ] + }, [//], null, done); + }); + it('shows an error if the favicon could not be load', function (done) { testHtmlPlugin({ entry: path.join(__dirname, 'fixtures/index.js'),