htmlnano 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -2
- package/README.md +12 -893
- package/docs/README.md +33 -0
- package/docs/babel.config.js +3 -0
- package/docs/docs/010-introduction.md +22 -0
- package/docs/docs/020-usage.md +77 -0
- package/docs/docs/030-config.md +21 -0
- package/docs/docs/040-presets.md +75 -0
- package/docs/docs/050-modules.md +838 -0
- package/docs/docs/060-contribute.md +16 -0
- package/docs/docusaurus.config.js +60 -0
- package/docs/netlify.toml +4 -0
- package/docs/package-lock.json +27251 -0
- package/docs/package.json +39 -0
- package/docs/sidebars.js +26 -0
- package/docs/versioned_docs/version-1.1.1/010-introduction.md +22 -0
- package/docs/versioned_docs/version-1.1.1/020-usage.md +77 -0
- package/docs/versioned_docs/version-1.1.1/030-config.md +21 -0
- package/docs/versioned_docs/version-1.1.1/040-presets.md +75 -0
- package/docs/versioned_docs/version-1.1.1/050-modules.md +786 -0
- package/docs/versioned_docs/version-1.1.1/060-contribute.md +16 -0
- package/docs/versioned_docs/version-2.0.0/010-introduction.md +22 -0
- package/docs/versioned_docs/version-2.0.0/020-usage.md +77 -0
- package/docs/versioned_docs/version-2.0.0/030-config.md +21 -0
- package/docs/versioned_docs/version-2.0.0/040-presets.md +75 -0
- package/docs/versioned_docs/version-2.0.0/050-modules.md +838 -0
- package/docs/versioned_docs/version-2.0.0/060-contribute.md +16 -0
- package/docs/versioned_sidebars/version-1.1.1-sidebars.json +8 -0
- package/docs/versioned_sidebars/version-2.0.0-sidebars.json +8 -0
- package/docs/versions.json +4 -0
- package/lib/helpers.js +19 -1
- package/lib/htmlnano.js +67 -6
- package/lib/modules/collapseAttributeWhitespace.js +63 -7
- package/lib/modules/collapseWhitespace.js +42 -17
- package/lib/modules/minifyCss.js +8 -8
- package/lib/modules/minifyJs.js +9 -10
- package/lib/modules/minifySvg.js +5 -2
- package/lib/modules/minifyUrls.js +71 -29
- package/lib/modules/normalizeAttributeValues.js +48 -0
- package/lib/modules/removeComments.js +25 -1
- package/lib/modules/removeEmptyAttributes.js +53 -8
- package/lib/modules/removeRedundantAttributes.js +69 -14
- package/lib/modules/removeUnusedCss.js +10 -10
- package/lib/presets/max.js +2 -0
- package/lib/presets/safe.js +13 -13
- package/package.json +58 -21
- package/test.js +25 -16
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Contribute
|
|
2
|
+
|
|
3
|
+
Since the minifier is modular, it's very easy to add new modules:
|
|
4
|
+
|
|
5
|
+
1. Create a ES6-file inside `lib/modules/` with a function that does some minification. For example you can check [`lib/modules/example.es6`](https://github.com/posthtml/htmlnano/blob/master/lib/modules/example.es6).
|
|
6
|
+
|
|
7
|
+
2. Add the module's name into one of those [presets](https://github.com/posthtml/htmlnano/tree/master/lib/presets). You can choose either `ampSafe`, `max`, or `safe`.
|
|
8
|
+
|
|
9
|
+
3. Create a JS-file inside `test/modules/` with some unit-tests.
|
|
10
|
+
|
|
11
|
+
4. Describe your module in the section "[Modules](https://github.com/posthtml/htmlnano/blob/master/README.md#modules)".
|
|
12
|
+
|
|
13
|
+
5. Send me a pull request.
|
|
14
|
+
|
|
15
|
+
Other types of contribution (bug fixes, documentation improves, etc) are also welcome!
|
|
16
|
+
Would like to contribute, but don't have any ideas what to do? Check out [our issues](https://github.com/posthtml/htmlnano/labels/help%20wanted).
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const lightCodeTheme = require('prism-react-renderer/themes/github');
|
|
2
|
+
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
|
|
3
|
+
|
|
4
|
+
/** @type {import('@docusaurus/types').DocusaurusConfig} */
|
|
5
|
+
module.exports = {
|
|
6
|
+
title: 'htmlnano',
|
|
7
|
+
tagline: 'Modular HTML minifier',
|
|
8
|
+
url: 'https://htmlnano.netlify.app',
|
|
9
|
+
favicon: 'favicon.ico',
|
|
10
|
+
baseUrl: '/',
|
|
11
|
+
onBrokenLinks: 'throw',
|
|
12
|
+
onBrokenMarkdownLinks: 'warn',
|
|
13
|
+
organizationName: 'posthtml',
|
|
14
|
+
projectName: 'htmlnano',
|
|
15
|
+
trailingSlash: false,
|
|
16
|
+
themeConfig: {
|
|
17
|
+
navbar: {
|
|
18
|
+
title: 'htmlnano',
|
|
19
|
+
items: [
|
|
20
|
+
{
|
|
21
|
+
type: 'docsVersionDropdown',
|
|
22
|
+
position: 'right',
|
|
23
|
+
dropdownActiveClassDisabled: true,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
href: 'https://github.com/posthtml/htmlnano',
|
|
27
|
+
label: 'GitHub',
|
|
28
|
+
position: 'right',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
prism: {
|
|
33
|
+
theme: lightCodeTheme,
|
|
34
|
+
darkTheme: darkCodeTheme,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
presets: [
|
|
38
|
+
[
|
|
39
|
+
'@docusaurus/preset-classic',
|
|
40
|
+
{
|
|
41
|
+
docs: {
|
|
42
|
+
sidebarPath: require.resolve('./sidebars.js'),
|
|
43
|
+
routeBasePath: '/',
|
|
44
|
+
editUrl: 'https://github.com/posthtml/htmlnano/edit/master/docs/',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
const algoliaConfig = {
|
|
53
|
+
apiKey: process.env.ALGOLIA_API_KEY,
|
|
54
|
+
indexName: 'htmlnano',
|
|
55
|
+
contextualSearch: true,
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
if (algoliaConfig.apiKey) {
|
|
59
|
+
module.exports.themeConfig.algolia = algoliaConfig;
|
|
60
|
+
}
|