minify_html 0.8.0 → 0.9.1
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.
- checksums.yaml +4 -4
- data/README.md +80 -27
- data/lib/linux-ruby2.5 +0 -0
- data/lib/linux-ruby2.6 +0 -0
- data/lib/linux-ruby2.7 +0 -0
- data/lib/macos-ruby2.5 +0 -0
- data/lib/macos-ruby2.6 +0 -0
- data/lib/macos-ruby2.7 +0 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ad0c0aff3910e52cb43003bc255c93ad18d700ede1bd93f16282fedf58ec9970
         | 
| 4 | 
            +
              data.tar.gz: 9b8b32ee8d660a6bfab711b2066398665595fbf929b7a0d46440852ab3d55200
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c183bc235f0be67a05e84695e0919553f7cec9fa7d1e9f36740e2c0e2257c7b5ea779f4fa768e8dfa59b43b2d68ef32da9cc6b62982374f8aae50b6f49e9ddff
         | 
| 7 | 
            +
              data.tar.gz: 1867c737b1bc395799778bd58a39f5cf98f8b54ce19be0f91b5ca3d58ce751d802c068626430939e08cdfd9dff5dc11e0f317acfc4d8f4e1f85259f3df95467c
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,11 +1,13 @@ | |
| 1 1 | 
             
            <h1>
         | 
| 2 2 | 
             
            minify-html
         | 
| 3 3 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/cli.png">
         | 
| 4 | 
            +
            <img width="24" src="https://wilsonl.in/minify-html/icon/deno.png">
         | 
| 4 5 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/java.png">
         | 
| 5 6 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/nodejs.png">
         | 
| 6 7 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/python.png">
         | 
| 7 8 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/ruby.png">
         | 
| 8 9 | 
             
            <img width="24" src="https://wilsonl.in/minify-html/icon/rust.png">
         | 
| 10 | 
            +
            <img width="24" src="https://wilsonl.in/minify-html/icon/wasm.png">
         | 
| 9 11 | 
             
            </h1>
         | 
| 10 12 |  | 
| 11 13 | 
             
            A Rust HTML minifier meticulously optimised for speed and effectiveness, with bindings for other languages.
         | 
| @@ -13,13 +15,15 @@ A Rust HTML minifier meticulously optimised for speed and effectiveness, with bi | |
| 13 15 | 
             
            - Advanced minification strategy beats other minifiers while being much faster.
         | 
| 14 16 | 
             
            - Uses SIMD searching, direct tries, and lookup tables.
         | 
| 15 17 | 
             
            - Handles [invalid HTML](./notes/Parsing.md), with extensive testing and [fuzzing](./fuzz).
         | 
| 16 | 
            -
            -  | 
| 18 | 
            +
            - Uses [minify-js](https://github.com/wilsonzlin/minify-js) for super fast JS minification.
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            View the [changelog](./CHANGELOG.md) to see the latest updates.
         | 
| 17 21 |  | 
| 18 22 | 
             
            ## Performance
         | 
| 19 23 |  | 
| 20 | 
            -
            Comparison with [html- | 
| 24 | 
            +
            Comparison with [html-minifier](https://github.com/kangax/html-minifier) and [minimize](https://github.com/Swaagie/minimize), run on the top web pages. [See the breakdown here.](./bench)
         | 
| 21 25 |  | 
| 22 | 
            -
            <img width="400" alt="Chart showing speed of HTML minifiers" src="https://wilsonl.in/minify-html/bench/0. | 
| 26 | 
            +
            <img width="400" alt="Chart showing speed of HTML minifiers" src="https://wilsonl.in/minify-html/bench/0.9.1/core/average-speeds.png"><img width="400" alt="Chart showing compression of HTML minifiers" src="https://wilsonl.in/minify-html/bench/0.9.1/core/average-sizes.png">
         | 
| 23 27 |  | 
| 24 28 | 
             
            The [onepass](https://github.com/wilsonzlin/minify-html/tree/master/rust/onepass) variant is even more optimised for speed. See its [README](https://github.com/wilsonzlin/minify-html/tree/master/rust/onepass) for more details.
         | 
| 25 29 |  | 
| @@ -32,11 +36,11 @@ Precompiled binaries are available for Linux, macOS, and Windows. | |
| 32 36 |  | 
| 33 37 | 
             
            ### Get
         | 
| 34 38 |  | 
| 35 | 
            -
            [Linux x64](https://wilsonl.in/minify-html/bin/0. | 
| 36 | 
            -
            [Linux ARM64](https://wilsonl.in/minify-html/bin/0. | 
| 37 | 
            -
            [macOS x64](https://wilsonl.in/minify-html/bin/0. | 
| 38 | 
            -
            [macOS ARM64](https://wilsonl.in/minify-html/bin/0. | 
| 39 | 
            -
            [Windows x64](https://wilsonl.in/minify-html/bin/0. | 
| 39 | 
            +
            [Linux x64](https://wilsonl.in/minify-html/bin/0.9.1-linux-x86_64) |
         | 
| 40 | 
            +
            [Linux ARM64](https://wilsonl.in/minify-html/bin/0.9.1-linux-arm64) |
         | 
| 41 | 
            +
            [macOS x64](https://wilsonl.in/minify-html/bin/0.9.1-macos-x86_64) |
         | 
| 42 | 
            +
            [macOS ARM64](https://wilsonl.in/minify-html/bin/0.9.1-macos-arm64) |
         | 
| 43 | 
            +
            [Windows x64](https://wilsonl.in/minify-html/bin/0.9.1-windows-x86_64.exe)
         | 
| 40 44 |  | 
| 41 45 | 
             
            ### Use
         | 
| 42 46 |  | 
| @@ -55,24 +59,44 @@ minify-html --output /path/to/output.min.html --keep-closing-tags --minify-css / | |
| 55 59 |  | 
| 56 60 | 
             
            ```toml
         | 
| 57 61 | 
             
            [dependencies]
         | 
| 58 | 
            -
            minify-html = { version = "0. | 
| 62 | 
            +
            minify-html = { version = "0.9.1" }
         | 
| 59 63 | 
             
            ```
         | 
| 60 64 |  | 
| 61 | 
            -
             | 
| 65 | 
            +
            ### Use
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            Check out the [docs](https://docs.rs/minify-html) for API and usage examples.
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            </details>
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            <details>
         | 
| 72 | 
            +
            <summary><img width="24" src="https://wilsonl.in/minify-html/icon/deno.png"> <strong>Deno</strong></summary>
         | 
| 62 73 |  | 
| 63 | 
            -
             | 
| 74 | 
            +
            - Package: https://wilsonl.in/minify-html/deno/0.9.1/index.js
         | 
| 75 | 
            +
            - Binding: [WASM](https://webassembly.org/)
         | 
| 76 | 
            +
            - Platforms: All
         | 
| 64 77 |  | 
| 65 78 | 
             
            ### Use
         | 
| 66 79 |  | 
| 67 | 
            -
             | 
| 80 | 
            +
            ```ts
         | 
| 81 | 
            +
            import init, {minify} from "https://wilsonl.in/minify-html/deno/0.9.1/index.js";
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            const encoder = new TextEncoder();
         | 
| 84 | 
            +
            const decoder = new TextDecoder();
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            await init();
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            const minified = decoder.decode(minify(encoder.encode("<p>  Hello, world!  </p>"), { keep_spaces_between_attributes: true, keep_comments: true }));
         | 
| 89 | 
            +
            ```
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`.
         | 
| 68 92 |  | 
| 69 93 | 
             
            </details>
         | 
| 70 94 |  | 
| 71 95 | 
             
            <details>
         | 
| 72 96 | 
             
            <summary><img width="24" src="https://wilsonl.in/minify-html/icon/nodejs.png"> <strong>Node.js</strong></summary>
         | 
| 73 97 |  | 
| 74 | 
            -
            - Package: [@minify-html/ | 
| 75 | 
            -
            - Binding: [ | 
| 98 | 
            +
            - Package: [@minify-html/node](https://www.npmjs.com/package/@minify-html/node)
         | 
| 99 | 
            +
            - Binding: [Neon](https://github.com/neon-bindings/neon)
         | 
| 76 100 | 
             
            - Platforms: Linux (ARM64 and x64), macOS (ARM64 and x64), Windows (x64); Node.js 8.6.0 and higher
         | 
| 77 101 |  | 
| 78 102 | 
             
            ### Get
         | 
| @@ -80,13 +104,13 @@ Check out the [docs](https://docs.rs/minify-html) for API and usage examples. | |
| 80 104 | 
             
            Using npm:
         | 
| 81 105 |  | 
| 82 106 | 
             
            ```bash
         | 
| 83 | 
            -
            npm i @minify-html/ | 
| 107 | 
            +
            npm i @minify-html/node
         | 
| 84 108 | 
             
            ```
         | 
| 85 109 |  | 
| 86 110 | 
             
            Using Yarn:
         | 
| 87 111 |  | 
| 88 112 | 
             
            ```bash
         | 
| 89 | 
            -
            yarn add @minify-html/ | 
| 113 | 
            +
            yarn add @minify-html/node
         | 
| 90 114 | 
             
            ```
         | 
| 91 115 |  | 
| 92 116 | 
             
            ### Use
         | 
| @@ -94,14 +118,13 @@ yarn add @minify-html/js | |
| 94 118 | 
             
            TypeScript definitions are available.
         | 
| 95 119 |  | 
| 96 120 | 
             
            ```ts
         | 
| 97 | 
            -
            import * as minifyHtml from "@minify-html/ | 
| 98 | 
            -
            // Or `const minifyHtml = require("@minify-html/ | 
| 121 | 
            +
            import * as minifyHtml from "@minify-html/node";
         | 
| 122 | 
            +
            // Or `const minifyHtml = require("@minify-html/node")` if not using TS/ESM.
         | 
| 99 123 |  | 
| 100 | 
            -
            const  | 
| 101 | 
            -
            const minified = minifyHtml.minify("<p>  Hello, world!  </p>", cfg);
         | 
| 124 | 
            +
            const minified = minifyHtml.minify("<p>  Hello, world!  </p>", { keep_spaces_between_attributes: true, keep_comments: true });
         | 
| 102 125 | 
             
            ```
         | 
| 103 126 |  | 
| 104 | 
            -
            All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided  | 
| 127 | 
            +
            All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`.
         | 
| 105 128 |  | 
| 106 129 | 
             
            </details>
         | 
| 107 130 |  | 
| @@ -120,7 +143,7 @@ Add as a Maven dependency: | |
| 120 143 | 
             
            <dependency>
         | 
| 121 144 | 
             
              <groupId>in.wilsonl.minifyhtml</groupId>
         | 
| 122 145 | 
             
              <artifactId>minify-html</artifactId>
         | 
| 123 | 
            -
              <version>0. | 
| 146 | 
            +
              <version>0.9.1</version>
         | 
| 124 147 | 
             
            </dependency>
         | 
| 125 148 | 
             
            ```
         | 
| 126 149 |  | 
| @@ -188,9 +211,39 @@ All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.htm | |
| 188 211 |  | 
| 189 212 | 
             
            </details>
         | 
| 190 213 |  | 
| 214 | 
            +
            <details>
         | 
| 215 | 
            +
            <summary><img width="24" src="https://wilsonl.in/minify-html/icon/wasm.png"> <strong>WASM</strong></summary>
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            - Package: [@minify-html/wasm](https://npmjs.org/package/@minify-html/wasm)
         | 
| 218 | 
            +
            - Binding: [WASM](https://webassembly.org/)
         | 
| 219 | 
            +
            - Platforms: All
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            A bundler may be required to use the WebAssembly module, see [this](https://rustwasm.github.io/wasm-bindgen/reference/deployment.html#bundlers) for more details.
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            ### Use
         | 
| 224 | 
            +
             | 
| 225 | 
            +
            ```ts
         | 
| 226 | 
            +
            import init, {minify} from "@minify-html/wasm";
         | 
| 227 | 
            +
             | 
| 228 | 
            +
            const encoder = new TextEncoder();
         | 
| 229 | 
            +
            const decoder = new TextDecoder();
         | 
| 230 | 
            +
             | 
| 231 | 
            +
            await init();
         | 
| 232 | 
            +
             | 
| 233 | 
            +
            const minified = decoder.decode(minify(encoder.encode("<p>  Hello, world!  </p>"), { keep_spaces_between_attributes: true, keep_comments: true }));
         | 
| 234 | 
            +
            ```
         | 
| 235 | 
            +
             | 
| 236 | 
            +
            All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`.
         | 
| 237 | 
            +
             | 
| 238 | 
            +
            </details>
         | 
| 239 | 
            +
             | 
| 191 240 | 
             
            ## Minification
         | 
| 192 241 |  | 
| 193 | 
            -
            Note that some of the minification done can result in HTML that will not pass validation, but remain interpreted and rendered correctly by the browser; essentially, the laxness of the browser is taken advantage of for better minification.  | 
| 242 | 
            +
            Note that some of the minification done can result in HTML that will not pass validation, but remain interpreted and rendered correctly by the browser; essentially, the laxness of the browser is taken advantage of for better minification. To prevent this, refer to these configuration options:
         | 
| 243 | 
            +
             | 
| 244 | 
            +
            - `do_not_minify_doctype`
         | 
| 245 | 
            +
            - `ensure_spec_compliant_unquoted_attribute_values`
         | 
| 246 | 
            +
            - `keep_spaces_between_attributes`
         | 
| 194 247 |  | 
| 195 248 | 
             
            ### Whitespace
         | 
| 196 249 |  | 
| @@ -292,10 +345,10 @@ minify-html assumes HTML and SVG elements are used in specific ways, based on st | |
| 292 345 |  | 
| 293 346 | 
             
            |Group|Elements|Expected children|
         | 
| 294 347 | 
             
            |---|---|---|
         | 
| 295 | 
            -
            |Formatting|`a`, `strong`, [and others](./ | 
| 296 | 
            -
            |Content|`h1`, `p`, [and others]( | 
| 297 | 
            -
            |Layout|`div`, `ul`, [and others](./ | 
| 298 | 
            -
            |Content-first|`label`, `li`, [and others](./ | 
| 348 | 
            +
            |Formatting|`a`, `strong`, [and others](./rust/common/spec/tag/whitespace.rs)|Formatting elements, text.|
         | 
| 349 | 
            +
            |Content|`h1`, `p`, [and others](rust/common/spec/tag/whitespace.rs)|Formatting elements, text.|
         | 
| 350 | 
            +
            |Layout|`div`, `ul`, [and others](./rust/common/spec/tag/whitespace.rs)|Layout elements, content elements.|
         | 
| 351 | 
            +
            |Content-first|`label`, `li`, [and others](./rust/common/spec/tag/whitespace.rs)|Like content but could be layout with only one child.|
         | 
| 299 352 |  | 
| 300 353 | 
             
            <details>
         | 
| 301 354 | 
             
            <summary><strong>Formatting elements</strong></summary>
         | 
    
        data/lib/linux-ruby2.5
    CHANGED
    
    | Binary file | 
    
        data/lib/linux-ruby2.6
    CHANGED
    
    | Binary file | 
    
        data/lib/linux-ruby2.7
    CHANGED
    
    | Binary file | 
    
        data/lib/macos-ruby2.5
    CHANGED
    
    | Binary file | 
    
        data/lib/macos-ruby2.6
    CHANGED
    
    | Binary file | 
    
        data/lib/macos-ruby2.7
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: minify_html
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.9.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Wilson Lin
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2022-06-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: fiddle
         |