html-to-markdown 2.24.6 → 2.25.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/ext/html-to-markdown-rb/native/Cargo.lock +3 -26
- data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
- data/lib/html_to_markdown/version.rb +1 -1
- data/rust-vendor/html-to-markdown-rs/Cargo.toml +0 -1
- data/rust-vendor/html-to-markdown-rs/src/converter/main_helpers.rs +1 -1
- data/rust-vendor/html-to-markdown-rs/src/lib.rs +1 -0
- data/rust-vendor/{markup5ever_rcdom/lib.rs → html-to-markdown-rs/src/rcdom.rs} +53 -91
- data/rust-vendor/png/.cargo-checksum.json +1 -1
- data/rust-vendor/png/.cargo_vcs_info.json +1 -1
- data/rust-vendor/png/CHANGES.md +44 -0
- data/rust-vendor/png/Cargo.lock +124 -171
- data/rust-vendor/png/Cargo.toml +1 -1
- data/rust-vendor/png/Cargo.toml.orig +1 -1
- data/rust-vendor/png/benches/expand_paletted.rs +5 -5
- data/rust-vendor/png/benches/unfilter.rs +3 -3
- data/rust-vendor/png/src/adam7.rs +17 -10
- data/rust-vendor/png/src/common.rs +8 -8
- data/rust-vendor/png/src/decoder/mod.rs +53 -20
- data/rust-vendor/png/src/decoder/stream.rs +263 -78
- data/rust-vendor/png/src/decoder/unfiltering_buffer.rs +210 -53
- data/rust-vendor/png/src/decoder/zlib.rs +130 -90
- data/rust-vendor/png/src/encoder.rs +4 -2
- data/rust-vendor/png/src/{filter.rs → filter/mod.rs} +100 -367
- data/rust-vendor/png/src/filter/optimization-notes.md +104 -0
- data/rust-vendor/png/src/filter/paeth.rs +398 -0
- data/rust-vendor/png/src/filter/simd.rs +308 -0
- data/rust-vendor/png/src/lib.rs +1 -0
- metadata +7 -177
- data/rust-vendor/markup5ever_rcdom/.cargo-checksum.json +0 -1
- data/rust-vendor/markup5ever_rcdom/.cargo_vcs_info.json +0 -7
- data/rust-vendor/markup5ever_rcdom/Cargo.lock +0 -658
- data/rust-vendor/markup5ever_rcdom/Cargo.toml +0 -109
- data/rust-vendor/markup5ever_rcdom/Cargo.toml.orig +0 -42
- data/rust-vendor/markup5ever_rcdom/LICENSE-APACHE +0 -201
- data/rust-vendor/markup5ever_rcdom/LICENSE-MIT +0 -25
- data/rust-vendor/markup5ever_rcdom/README.md +0 -7
- data/rust-vendor/markup5ever_rcdom/custom-html5lib-tokenizer-tests/regression.test +0 -69
- data/rust-vendor/markup5ever_rcdom/data/test/ignore +0 -1
- data/rust-vendor/markup5ever_rcdom/examples/hello_xml.rs +0 -39
- data/rust-vendor/markup5ever_rcdom/examples/html2html.rs +0 -51
- data/rust-vendor/markup5ever_rcdom/examples/print-rcdom.rs +0 -78
- data/rust-vendor/markup5ever_rcdom/examples/xml_tree_printer.rs +0 -67
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/.gitattributes +0 -2
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/downstream.yml +0 -76
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/.github/workflows/lint.yml +0 -25
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/.gitignore +0 -79
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/AUTHORS.rst +0 -34
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/LICENSE +0 -21
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/chardet/test_big5.txt +0 -51
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/scripted/tests1.dat +0 -5
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/test-yahoo-jp.dat +0 -10
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests1.dat +0 -388
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/encoding/tests2.dat +0 -115
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint +0 -6
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/__init__.py +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/__init__.py +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/LICENSE +0 -18
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/__init__.py +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.py +0 -211
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/lexer.pyi +0 -34
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.py +0 -872
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/parser.pyi +0 -83
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/py.typed +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.py +0 -72
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/funcparserlib/util.pyi +0 -7
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor/vendor.txt +0 -1
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/_vendor-patches/funcparserlib.patch +0 -24
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/lint.py +0 -280
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/lint_lib/parser.py +0 -177
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/pyproject.toml +0 -7
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/core.test +0 -125
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/injectmeta.test +0 -66
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/optionaltags.test +0 -965
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/options.test +0 -60
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/serializer/whitespace.test +0 -51
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/README.md +0 -107
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/contentModelFlags.test +0 -93
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/domjs.test +0 -335
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/entities.test +0 -542
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/escapeFlag.test +0 -36
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/namedEntities.test +0 -42422
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/numericEntities.test +0 -1677
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/pendingSpecChanges.test +0 -9
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test1.test +0 -353
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test2.test +0 -275
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test3.test +0 -11233
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/test4.test +0 -532
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeChars.test +0 -1577
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/unicodeCharsProblematic.test +0 -41
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tokenizer/xmlViolation.test +0 -20
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/README.md +0 -108
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption01.dat +0 -354
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/adoption02.dat +0 -39
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/blocks.dat +0 -695
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/comments01.dat +0 -217
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/doctype01.dat +0 -474
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/domjs-unsafe.dat +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities01.dat +0 -943
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/entities02.dat +0 -309
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/foreign-fragment.dat +0 -645
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/html5test-com.dat +0 -301
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/inbody01.dat +0 -54
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/isindex.dat +0 -49
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/main-element.dat +0 -46
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/math.dat +0 -104
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/menuitem-element.dat +0 -240
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/namespace-sensitivity.dat +0 -22
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/noscript01.dat +0 -237
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes-plain-text-unsafe.dat +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/pending-spec-changes.dat +0 -46
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/plain-text-unsafe.dat +0 -0
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/quirks01.dat +0 -53
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/ruby.dat +0 -302
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scriptdata01.dat +0 -372
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/adoption01.dat +0 -16
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/ark.dat +0 -27
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/scripted/webkit01.dat +0 -30
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/search-element.dat +0 -46
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/svg.dat +0 -104
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tables01.dat +0 -322
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/template.dat +0 -1673
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests1.dat +0 -1956
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests10.dat +0 -849
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests11.dat +0 -523
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests12.dat +0 -62
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests14.dat +0 -75
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests15.dat +0 -216
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests16.dat +0 -2602
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests17.dat +0 -179
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests18.dat +0 -558
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests19.dat +0 -1398
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests2.dat +0 -831
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests20.dat +0 -842
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests21.dat +0 -306
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests22.dat +0 -190
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests23.dat +0 -168
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests24.dat +0 -79
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests25.dat +0 -288
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests26.dat +0 -453
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests3.dat +0 -305
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests4.dat +0 -74
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests5.dat +0 -210
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests6.dat +0 -663
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests7.dat +0 -453
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests8.dat +0 -165
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests9.dat +0 -472
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tests_innerHTML_1.dat +0 -843
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/tricky01.dat +0 -336
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit01.dat +0 -785
- data/rust-vendor/markup5ever_rcdom/html5lib-tests/tree-construction/webkit02.dat +0 -554
- data/rust-vendor/markup5ever_rcdom/tests/foreach_html5lib_test/mod.rs +0 -41
- data/rust-vendor/markup5ever_rcdom/tests/html-driver.rs +0 -29
- data/rust-vendor/markup5ever_rcdom/tests/html-serializer.rs +0 -265
- data/rust-vendor/markup5ever_rcdom/tests/html-tokenizer.rs +0 -487
- data/rust-vendor/markup5ever_rcdom/tests/html-tree-builder.rs +0 -298
- data/rust-vendor/markup5ever_rcdom/tests/html-tree-sink.rs +0 -141
- data/rust-vendor/markup5ever_rcdom/tests/util/find_tests.rs +0 -34
- data/rust-vendor/markup5ever_rcdom/tests/util/runner.rs +0 -48
- data/rust-vendor/markup5ever_rcdom/tests/xml-driver.rs +0 -101
- data/rust-vendor/markup5ever_rcdom/tests/xml-tokenizer.rs +0 -374
- data/rust-vendor/markup5ever_rcdom/tests/xml-tree-builder.rs +0 -237
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/AUTHORS.rst +0 -9
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/LICENSE +0 -21
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/README.md +0 -92
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/comments.test +0 -274
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/doctype.test +0 -3232
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/entities.test +0 -283
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/eof.test +0 -113
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/namedEntities.test +0 -42210
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/numericEntities.test +0 -1349
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test1.test +0 -162
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/test2.test +0 -64
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tokenizer/unicodeChars.test +0 -1295
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/README.md +0 -104
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/namespace.dat +0 -119
- data/rust-vendor/markup5ever_rcdom/xml5lib-tests/tree-construction/test1.dat +0 -124
- data/rust-vendor/xml5ever/.cargo-checksum.json +0 -1
- data/rust-vendor/xml5ever/.cargo_vcs_info.json +0 -6
- data/rust-vendor/xml5ever/Cargo.lock +0 -752
- data/rust-vendor/xml5ever/Cargo.toml +0 -69
- data/rust-vendor/xml5ever/Cargo.toml.orig +0 -29
- data/rust-vendor/xml5ever/LICENSE-APACHE +0 -201
- data/rust-vendor/xml5ever/LICENSE-MIT +0 -25
- data/rust-vendor/xml5ever/README.md +0 -72
- data/rust-vendor/xml5ever/benches/xml5ever.rs +0 -77
- data/rust-vendor/xml5ever/data/bench/strong.xml +0 -1
- data/rust-vendor/xml5ever/examples/README.md +0 -223
- data/rust-vendor/xml5ever/examples/example.xml +0 -3
- data/rust-vendor/xml5ever/examples/simple_xml_tokenizer.rs +0 -81
- data/rust-vendor/xml5ever/examples/xml_tokenizer.rs +0 -115
- data/rust-vendor/xml5ever/src/driver.rs +0 -90
- data/rust-vendor/xml5ever/src/lib.rs +0 -47
- data/rust-vendor/xml5ever/src/macros.rs +0 -18
- data/rust-vendor/xml5ever/src/serialize/mod.rs +0 -216
- data/rust-vendor/xml5ever/src/tokenizer/char_ref/mod.rs +0 -456
- data/rust-vendor/xml5ever/src/tokenizer/interface.rs +0 -116
- data/rust-vendor/xml5ever/src/tokenizer/mod.rs +0 -1344
- data/rust-vendor/xml5ever/src/tokenizer/qname.rs +0 -84
- data/rust-vendor/xml5ever/src/tokenizer/states.rs +0 -167
- data/rust-vendor/xml5ever/src/tree_builder/mod.rs +0 -774
- data/rust-vendor/xml5ever/src/tree_builder/types.rs +0 -37
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7e2a6b4dc4a14279490cf7f5b7f0bd006a749e66b4687fb30184a8c16e80b2a2
|
|
4
|
+
data.tar.gz: d8349390b59f2a226247d1f8ff365f75fe289e932ae96caa1d48a604f9f47657
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2f82461ef3c803f0eee6d27df11cb4149ab2c95099f77b1cb4e3625b80ed0960e206255f7060d064cc415233da66ad150ca809080ccda7f9b5469d7c106a1a08
|
|
7
|
+
data.tar.gz: ce73421a79bd75bdfa169059ba09233dec15be209bacfb06c1c4e73866e1777392c7f8070ea494c643d942c7f56d054e5d4d76125f6a5d4ff1d3fbc0234beda8
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
html-to-markdown (2.
|
|
4
|
+
html-to-markdown (2.25.0)
|
|
5
5
|
rb_sys (>= 0.9, < 1.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -161,7 +161,7 @@ CHECKSUMS
|
|
|
161
161
|
ffi (1.17.3-x86_64-darwin) sha256=1f211811eb5cfaa25998322cdd92ab104bfbd26d1c4c08471599c511f2c00bb5
|
|
162
162
|
ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f
|
|
163
163
|
fileutils (1.8.0) sha256=8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02
|
|
164
|
-
html-to-markdown (2.
|
|
164
|
+
html-to-markdown (2.25.0)
|
|
165
165
|
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
|
|
166
166
|
json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
|
|
167
167
|
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
|
|
@@ -424,7 +424,7 @@ dependencies = [
|
|
|
424
424
|
|
|
425
425
|
[[package]]
|
|
426
426
|
name = "html-to-markdown-rb"
|
|
427
|
-
version = "2.
|
|
427
|
+
version = "2.25.0"
|
|
428
428
|
dependencies = [
|
|
429
429
|
"html-to-markdown-rs",
|
|
430
430
|
"magnus",
|
|
@@ -443,7 +443,6 @@ dependencies = [
|
|
|
443
443
|
"html5ever",
|
|
444
444
|
"image",
|
|
445
445
|
"lru",
|
|
446
|
-
"markup5ever_rcdom",
|
|
447
446
|
"once_cell",
|
|
448
447
|
"regex",
|
|
449
448
|
"serde",
|
|
@@ -663,18 +662,6 @@ dependencies = [
|
|
|
663
662
|
"web_atoms",
|
|
664
663
|
]
|
|
665
664
|
|
|
666
|
-
[[package]]
|
|
667
|
-
name = "markup5ever_rcdom"
|
|
668
|
-
version = "0.36.0+unofficial"
|
|
669
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
670
|
-
checksum = "3e5fc8802e8797c0dfdd2ce5c21aa0aee21abbc7b3b18559100651b3352a7b63"
|
|
671
|
-
dependencies = [
|
|
672
|
-
"html5ever",
|
|
673
|
-
"markup5ever",
|
|
674
|
-
"tendril",
|
|
675
|
-
"xml5ever",
|
|
676
|
-
]
|
|
677
|
-
|
|
678
665
|
[[package]]
|
|
679
666
|
name = "memchr"
|
|
680
667
|
version = "2.8.0"
|
|
@@ -841,9 +828,9 @@ dependencies = [
|
|
|
841
828
|
|
|
842
829
|
[[package]]
|
|
843
830
|
name = "png"
|
|
844
|
-
version = "0.18.
|
|
831
|
+
version = "0.18.1"
|
|
845
832
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
846
|
-
checksum = "
|
|
833
|
+
checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
|
|
847
834
|
dependencies = [
|
|
848
835
|
"bitflags 2.11.0",
|
|
849
836
|
"crc32fast",
|
|
@@ -1556,16 +1543,6 @@ dependencies = [
|
|
|
1556
1543
|
"wasmparser",
|
|
1557
1544
|
]
|
|
1558
1545
|
|
|
1559
|
-
[[package]]
|
|
1560
|
-
name = "xml5ever"
|
|
1561
|
-
version = "0.36.1"
|
|
1562
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1563
|
-
checksum = "f57dd51b88a4b9f99f9b55b136abb86210629d61c48117ddb87f567e51e66be7"
|
|
1564
|
-
dependencies = [
|
|
1565
|
-
"log",
|
|
1566
|
-
"markup5ever",
|
|
1567
|
-
]
|
|
1568
|
-
|
|
1569
1546
|
[[package]]
|
|
1570
1547
|
name = "yansi"
|
|
1571
1548
|
version = "1.0.1"
|
|
@@ -35,7 +35,6 @@ ahash = "0.8"
|
|
|
35
35
|
html-escape = "0.2.13"
|
|
36
36
|
image = { version = "0.25", default-features = false, features = ["gif", "jpeg", "png", "bmp", "webp"], optional = true }
|
|
37
37
|
html5ever = "0.36"
|
|
38
|
-
markup5ever_rcdom = "0.36"
|
|
39
38
|
lru = "0.16"
|
|
40
39
|
serde = { version = "1.0", features = ["derive"], optional = true }
|
|
41
40
|
serde_json = { version = "1.0", optional = true }
|
|
@@ -101,9 +101,9 @@ pub fn has_custom_element_tags(html: &str) -> bool {
|
|
|
101
101
|
///
|
|
102
102
|
/// Returns Some(repaired_html) if repair was successful, None otherwise.
|
|
103
103
|
pub fn repair_with_html5ever(input: &str) -> Option<String> {
|
|
104
|
+
use crate::rcdom::{RcDom, SerializableHandle};
|
|
104
105
|
use html5ever::serialize::{SerializeOpts, serialize};
|
|
105
106
|
use html5ever::tendril::TendrilSink;
|
|
106
|
-
use markup5ever_rcdom::{RcDom, SerializableHandle};
|
|
107
107
|
|
|
108
108
|
let dom = html5ever::parse_document(RcDom::default(), Default::default())
|
|
109
109
|
.from_utf8()
|
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Vendored from markup5ever_rcdom v0.36.0+unofficial
|
|
2
|
+
// Original source: https://github.com/servo/html5ever (rcdom/)
|
|
3
|
+
// Copyright (c) 2014 The html5ever Project Developers
|
|
4
|
+
// Licensed under MIT OR Apache-2.0 (see ATTRIBUTIONS.md)
|
|
3
5
|
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
6
|
+
// Vendored to:
|
|
7
|
+
// - Remove unused xml5ever transitive dependency
|
|
8
|
+
// - Eliminate pinned external dependency on "+unofficial" crate
|
|
9
|
+
// - Gain full control over this small, critical module
|
|
10
|
+
//
|
|
11
|
+
// Changes from upstream:
|
|
12
|
+
// - Replaced `extern crate markup5ever` / `extern crate tendril` with
|
|
13
|
+
// `use` imports through `html5ever` (edition 2024 compatibility)
|
|
14
|
+
// - Added module-level clippy allows for vendored code style
|
|
15
|
+
|
|
16
|
+
#![allow(
|
|
17
|
+
clippy::panic,
|
|
18
|
+
clippy::expect_used,
|
|
19
|
+
clippy::missing_panics_doc,
|
|
20
|
+
clippy::must_use_candidate,
|
|
21
|
+
clippy::return_self_not_must_use,
|
|
22
|
+
clippy::module_name_repetitions,
|
|
23
|
+
clippy::redundant_else,
|
|
24
|
+
clippy::match_wildcard_for_single_variants,
|
|
25
|
+
clippy::similar_names,
|
|
26
|
+
clippy::items_after_statements,
|
|
27
|
+
missing_docs
|
|
28
|
+
)]
|
|
9
29
|
|
|
10
30
|
//! A simple reference-counted DOM.
|
|
11
31
|
//!
|
|
12
32
|
//! This is sufficient as a static parse tree, but don't build a
|
|
13
33
|
//! web browser using it. :)
|
|
14
|
-
//!
|
|
15
|
-
//! A DOM is a [tree structure] with ordered children that can be represented in an XML-like
|
|
16
|
-
//! format. For example, the following graph
|
|
17
|
-
//!
|
|
18
|
-
//! ```text
|
|
19
|
-
//! div
|
|
20
|
-
//! +- "text node"
|
|
21
|
-
//! +- span
|
|
22
|
-
//! ```
|
|
23
|
-
//! in HTML would be serialized as
|
|
24
|
-
//!
|
|
25
|
-
//! ```html
|
|
26
|
-
//! <div>text node<span></span></div>
|
|
27
|
-
//! ```
|
|
28
|
-
//!
|
|
29
|
-
//! See the [document object model article on wikipedia][dom wiki] for more information.
|
|
30
|
-
//!
|
|
31
|
-
//! This implementation stores the information associated with each node once, and then hands out
|
|
32
|
-
//! refs to children. The nodes themselves are reference-counted to avoid copying - you can create
|
|
33
|
-
//! a new ref and then a node will outlive the document. Nodes own their children, but only have
|
|
34
|
-
//! weak references to their parents.
|
|
35
|
-
//!
|
|
36
|
-
//! [tree structure]: https://en.wikipedia.org/wiki/Tree_(data_structure)
|
|
37
|
-
//! [dom wiki]: https://en.wikipedia.org/wiki/Document_Object_Model
|
|
38
|
-
|
|
39
|
-
extern crate markup5ever;
|
|
40
|
-
extern crate tendril;
|
|
41
34
|
|
|
42
35
|
use std::borrow::Cow;
|
|
43
36
|
use std::cell::{Cell, RefCell};
|
|
@@ -48,16 +41,16 @@ use std::io;
|
|
|
48
41
|
use std::mem;
|
|
49
42
|
use std::rc::{Rc, Weak};
|
|
50
43
|
|
|
51
|
-
use tendril::StrTendril;
|
|
44
|
+
use html5ever::tendril::StrTendril;
|
|
52
45
|
|
|
53
|
-
use
|
|
54
|
-
use
|
|
55
|
-
use
|
|
56
|
-
use
|
|
57
|
-
use
|
|
58
|
-
use
|
|
59
|
-
use
|
|
60
|
-
use
|
|
46
|
+
use html5ever::Attribute;
|
|
47
|
+
use html5ever::ExpandedName;
|
|
48
|
+
use html5ever::QualName;
|
|
49
|
+
use html5ever::interface::tree_builder;
|
|
50
|
+
use html5ever::interface::tree_builder::{ElementFlags, NodeOrText, QuirksMode, TreeSink};
|
|
51
|
+
use html5ever::serialize::TraversalScope;
|
|
52
|
+
use html5ever::serialize::TraversalScope::{ChildrenOnly, IncludeNode};
|
|
53
|
+
use html5ever::serialize::{Serialize, Serializer};
|
|
61
54
|
|
|
62
55
|
/// The different kinds of nodes in the DOM.
|
|
63
56
|
#[derive(Debug)]
|
|
@@ -98,10 +91,7 @@ pub enum NodeData {
|
|
|
98
91
|
},
|
|
99
92
|
|
|
100
93
|
/// A Processing instruction.
|
|
101
|
-
ProcessingInstruction {
|
|
102
|
-
target: StrTendril,
|
|
103
|
-
contents: StrTendril,
|
|
104
|
-
},
|
|
94
|
+
ProcessingInstruction { target: StrTendril, contents: StrTendril },
|
|
105
95
|
}
|
|
106
96
|
|
|
107
97
|
/// A DOM node.
|
|
@@ -130,10 +120,9 @@ impl Drop for Node {
|
|
|
130
120
|
let mut nodes = mem::take(&mut *self.children.borrow_mut());
|
|
131
121
|
while let Some(node) = nodes.pop() {
|
|
132
122
|
let children = mem::take(&mut *node.children.borrow_mut());
|
|
133
|
-
nodes.extend(children
|
|
123
|
+
nodes.extend(children);
|
|
134
124
|
if let NodeData::Element {
|
|
135
|
-
ref template_contents,
|
|
136
|
-
..
|
|
125
|
+
ref template_contents, ..
|
|
137
126
|
} = node.data
|
|
138
127
|
{
|
|
139
128
|
if let Some(template_contents) = template_contents.borrow_mut().take() {
|
|
@@ -193,7 +182,7 @@ fn append_to_existing_text(prev: &Handle, text: &str) -> bool {
|
|
|
193
182
|
NodeData::Text { ref contents } => {
|
|
194
183
|
contents.borrow_mut().push_slice(text);
|
|
195
184
|
true
|
|
196
|
-
}
|
|
185
|
+
}
|
|
197
186
|
_ => false,
|
|
198
187
|
}
|
|
199
188
|
}
|
|
@@ -240,8 +229,7 @@ impl TreeSink for RcDom {
|
|
|
240
229
|
|
|
241
230
|
fn get_template_contents(&self, target: &Handle) -> Handle {
|
|
242
231
|
if let NodeData::Element {
|
|
243
|
-
ref template_contents,
|
|
244
|
-
..
|
|
232
|
+
ref template_contents, ..
|
|
245
233
|
} = target.data
|
|
246
234
|
{
|
|
247
235
|
template_contents
|
|
@@ -287,10 +275,7 @@ impl TreeSink for RcDom {
|
|
|
287
275
|
}
|
|
288
276
|
|
|
289
277
|
fn create_pi(&self, target: StrTendril, data: StrTendril) -> Handle {
|
|
290
|
-
Node::new(NodeData::ProcessingInstruction {
|
|
291
|
-
target,
|
|
292
|
-
contents: data,
|
|
293
|
-
})
|
|
278
|
+
Node::new(NodeData::ProcessingInstruction { target, contents: data })
|
|
294
279
|
}
|
|
295
280
|
|
|
296
281
|
fn append(&self, parent: &Handle, child: NodeOrText<Handle>) {
|
|
@@ -315,8 +300,7 @@ impl TreeSink for RcDom {
|
|
|
315
300
|
}
|
|
316
301
|
|
|
317
302
|
fn append_before_sibling(&self, sibling: &Handle, child: NodeOrText<Handle>) {
|
|
318
|
-
let (parent, i) = get_parent_and_index(sibling)
|
|
319
|
-
.expect("append_before_sibling called on node without parent");
|
|
303
|
+
let (parent, i) = get_parent_and_index(sibling).expect("append_before_sibling called on node without parent");
|
|
320
304
|
|
|
321
305
|
let child = match (child, i) {
|
|
322
306
|
// No previous node.
|
|
@@ -334,7 +318,7 @@ impl TreeSink for RcDom {
|
|
|
334
318
|
Node::new(NodeData::Text {
|
|
335
319
|
contents: RefCell::new(text),
|
|
336
320
|
})
|
|
337
|
-
}
|
|
321
|
+
}
|
|
338
322
|
|
|
339
323
|
// The tree builder promises we won't have a text node after
|
|
340
324
|
// the insertion point.
|
|
@@ -366,12 +350,7 @@ impl TreeSink for RcDom {
|
|
|
366
350
|
}
|
|
367
351
|
}
|
|
368
352
|
|
|
369
|
-
fn append_doctype_to_document(
|
|
370
|
-
&self,
|
|
371
|
-
name: StrTendril,
|
|
372
|
-
public_id: StrTendril,
|
|
373
|
-
system_id: StrTendril,
|
|
374
|
-
) {
|
|
353
|
+
fn append_doctype_to_document(&self, name: StrTendril, public_id: StrTendril, system_id: StrTendril) {
|
|
375
354
|
append(
|
|
376
355
|
&self.document,
|
|
377
356
|
Node::new(NodeData::Doctype {
|
|
@@ -389,15 +368,8 @@ impl TreeSink for RcDom {
|
|
|
389
368
|
panic!("not an element")
|
|
390
369
|
};
|
|
391
370
|
|
|
392
|
-
let existing_names = existing
|
|
393
|
-
|
|
394
|
-
.map(|e| e.name.clone())
|
|
395
|
-
.collect::<HashSet<_>>();
|
|
396
|
-
existing.extend(
|
|
397
|
-
attrs
|
|
398
|
-
.into_iter()
|
|
399
|
-
.filter(|attr| !existing_names.contains(&attr.name)),
|
|
400
|
-
);
|
|
371
|
+
let existing_names = existing.iter().map(|e| e.name.clone()).collect::<HashSet<_>>();
|
|
372
|
+
existing.extend(attrs.into_iter().filter(|attr| !existing_names.contains(&attr.name)));
|
|
401
373
|
}
|
|
402
374
|
|
|
403
375
|
fn remove_from_parent(&self, target: &Handle) {
|
|
@@ -461,27 +433,17 @@ impl Serialize for SerializableHandle {
|
|
|
461
433
|
let mut ops = VecDeque::new();
|
|
462
434
|
match traversal_scope {
|
|
463
435
|
IncludeNode => ops.push_back(SerializeOp::Open(self.0.clone())),
|
|
464
|
-
ChildrenOnly(_) => ops.extend(
|
|
465
|
-
self.0
|
|
466
|
-
.children
|
|
467
|
-
.borrow()
|
|
468
|
-
.iter()
|
|
469
|
-
.map(|h| SerializeOp::Open(h.clone())),
|
|
470
|
-
),
|
|
436
|
+
ChildrenOnly(_) => ops.extend(self.0.children.borrow().iter().map(|h| SerializeOp::Open(h.clone()))),
|
|
471
437
|
}
|
|
472
438
|
|
|
473
439
|
while let Some(op) = ops.pop_front() {
|
|
474
440
|
match op {
|
|
475
441
|
SerializeOp::Open(handle) => match handle.data {
|
|
476
442
|
NodeData::Element {
|
|
477
|
-
ref name,
|
|
478
|
-
ref attrs,
|
|
479
|
-
..
|
|
443
|
+
ref name, ref attrs, ..
|
|
480
444
|
} => {
|
|
481
|
-
serializer
|
|
482
|
-
name.clone(),
|
|
483
|
-
attrs.borrow().iter().map(|at| (&at.name, &at.value[..])),
|
|
484
|
-
)?;
|
|
445
|
+
serializer
|
|
446
|
+
.start_elem(name.clone(), attrs.borrow().iter().map(|at| (&at.name, &at.value[..])))?;
|
|
485
447
|
|
|
486
448
|
ops.reserve(1 + handle.children.borrow().len());
|
|
487
449
|
ops.push_front(SerializeOp::Close(name.clone()));
|
|
@@ -489,7 +451,7 @@ impl Serialize for SerializableHandle {
|
|
|
489
451
|
for child in handle.children.borrow().iter().rev() {
|
|
490
452
|
ops.push_front(SerializeOp::Open(child.clone()));
|
|
491
453
|
}
|
|
492
|
-
}
|
|
454
|
+
}
|
|
493
455
|
|
|
494
456
|
NodeData::Doctype { ref name, .. } => serializer.write_doctype(name)?,
|
|
495
457
|
|
|
@@ -507,7 +469,7 @@ impl Serialize for SerializableHandle {
|
|
|
507
469
|
|
|
508
470
|
SerializeOp::Close(name) => {
|
|
509
471
|
serializer.end_elem(name)?;
|
|
510
|
-
}
|
|
472
|
+
}
|
|
511
473
|
}
|
|
512
474
|
}
|
|
513
475
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"files":{".cargo_vcs_info.json":"
|
|
1
|
+
{"files":{".cargo_vcs_info.json":"8773db20f33df731c5464d83badcfd31e799f11384d0fc0bab063950fb8d077a","CHANGES.md":"28d2e4a7019e2c275c27c8626ef663f795e3ca8715356838ff0badcead09697b","Cargo.lock":"f0e0210e2060f90cc4e7f64770b50a26e345cbf1acd5be6e36d8b836d9393fd1","Cargo.toml":"642c5d3c2bf538404cf1d5c4aac254d033e0854af844610435fd13e910bf93aa","Cargo.toml.orig":"9cdbefa37506d26968c74e93355c29d8471ec961ebcadb0fdde25bb0e98870f0","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"eaf40297c75da471f7cda1f3458e8d91b4b2ec866e609527a13acfa93b638652","README.md":"2a69e61783cf6433b712acfe5b32ba1c539f947ccd00b1c07312d5eec3445b46","benches/README.md":"0c60c3d497abdf6c032863aa47da41bc6bb4f5ff696d45dec0e6eb33459b14b0","benches/adam7.rs":"ac81f74f2547790f85b09344d79f881718353b31bcb39402b115582df408701c","benches/decoder.rs":"390e75054ee3a4237a57aa255ac35429f3d81c1d2fc18bd0464fbc13e85b1f8c","benches/expand_paletted.rs":"71922dd42055283ec388264c3bf22b985763cfbcf905c0e106a3f412ddac13e0","benches/unfilter.rs":"ad5946ec7bdaed852eb210df3cc6efa8584de76836e7154f9a47cb274fc7627f","examples/change-png-info.rs":"bc4f3d7af7cee03714e80c3d58f5633f24b3406721af8eedd0a72ac78da6356f","examples/corpus-bench.rs":"b994744b00335536903408bc95fa203b637ee5401e568b6043d1e86fd234007e","examples/png-generate.rs":"e4cca06b9cc3291b52261d88a2e016940620b613fc1402bb54ccc68f73026a96","examples/pngcheck.rs":"575084dc9fe8754677f9875c0b1790c3f52adb58c19de63b59d28f6fea47dd71","src/adam7.rs":"6698303f534586f6d2cd952c800d4379f1f73db872d69c05689ae337fa4da2f6","src/benchable_apis.rs":"be9c486ebaaa698517b7c0ac5c4d9ecf812eee4e6454bd32dfcb790048b3a0f9","src/chunk.rs":"3bfd87e49b951e0ec4372e34d6374a4813cb499f89104f2a20e109c95b63a2ac","src/common.rs":"1da94ac8aae8bf7fb63efcf4b110416bee0aaf294d042476b70591b670c33519","src/decoder/interlace_info.rs":"ab953aabc548af9bdafdefcaeacf19bced6010ea15831039d47715661010c1d2","src/decoder/mod.rs":"8c15bb208e38ffcc55421fd3ece858dfa6460d0cc05be76d56d1640591669249","src/decoder/read_decoder.rs":"ddde714e6ee17298850f934fd2328f7095cd3c9d096930867edef0bfab91cc5d","src/decoder/stream.rs":"af87e912accd5057dcb098ca8aa3b6d4a1a1a2abc2412955409ee8260112e4ff","src/decoder/transform.rs":"3ec21b666d543fc6e2203313663a0214837cb5dc5bdb32d4a3c23d4a8567cecf","src/decoder/transform/palette.rs":"8eed7854aa122c1ecf8f3f41e2cccdc08d60a0c323f3ef16c3dd5f1710bde38a","src/decoder/unfiltering_buffer.rs":"6e146579e29cb57197375e61b077296e979ab80421a5b3d200f3b2cbddbd159e","src/decoder/zlib.rs":"fb97c2706b5901de03d23deee39e5d8fda4860b55ce0bbbe5fb8fd1206db4039","src/encoder.rs":"787f6f8922588a74436c76a3b2c2b5689206f7ed13a19a36227b8809710812ce","src/filter/mod.rs":"0078abe0ea3d654429c393fa08fbd841be232d321a2eceb14938749c16bd31b3","src/filter/optimization-notes.md":"0907bc5eafad69d9cdd3523e28f5ed06ded428a50a0fbeb07304c0b03cd50013","src/filter/paeth.rs":"ffb4bd183b313e15f2be44f247b5bb1596a02d1fc46ca6c9f2e09ce250e59bf5","src/filter/simd.rs":"0828b91a13ef4178247920de7ba7097dab89c3786ababb8d9cecf2ea499a37ef","src/lib.rs":"005d353ee9ed314a45ea9b85ff906cbc3bd57a7273c0d0360428c90aa460b4a8","src/srgb.rs":"da1609902064016853410633926d316b5289d4bbe1fa469b21f116c1c1b2c18e","src/test_utils.rs":"9002657a02768d68fef55041629f4b0067570fa93e2ed91e40367dca60eed91c","src/text_metadata.rs":"1df449a40f1798daf5b77195cccc644d3d5ae0e5cc629d71b5399b457b1438a8","src/traits.rs":"79d357244e493f5174ca11873b0d5c443fd4a5e6e1f7c6df400a1767c5ad05b2"},"package":"60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"}
|
data/rust-vendor/png/CHANGES.md
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
## 0.18.1
|
|
2
|
+
|
|
3
|
+
### Additions
|
|
4
|
+
|
|
5
|
+
* Added `Filter::MinEntropy` for encoding, which selects the filter that
|
|
6
|
+
minimizes the Shannon entropy of the filtered row. ([#647])
|
|
7
|
+
* Made `ScaledFloat::SCALING` constant public. ([#650])
|
|
8
|
+
* Support skipping chunks without loading them into memory. ([#630])
|
|
9
|
+
* Allow full unfiltering for partial data, enabling progressive decoding
|
|
10
|
+
use cases. ([#664])
|
|
11
|
+
|
|
12
|
+
### Changes
|
|
13
|
+
|
|
14
|
+
* Improved Paeth unfilter auto-vectorization by changing how loop state
|
|
15
|
+
is maintained. ([#635])
|
|
16
|
+
* Added `portable_simd` Paeth unfiltering for 3bpp and 4bpp images on nightly.
|
|
17
|
+
([#632], [#633])
|
|
18
|
+
* Add early exit for adaptive filter selection when a perfect filter is found.
|
|
19
|
+
([#646])
|
|
20
|
+
* Ignore duplicate `acTL` chunks instead of producing errors. ([#651])
|
|
21
|
+
* Require IDAT chunk(s) before fdAT chunks, as mandated by PNG specification.
|
|
22
|
+
([#653])
|
|
23
|
+
* Enforce `acTL` frame counts to be valid PNG 4-byte integers (capped at 2^31-1).
|
|
24
|
+
([#673])
|
|
25
|
+
|
|
26
|
+
### Fixes
|
|
27
|
+
|
|
28
|
+
* Fixed and improved intra-doc links in documentation comments. ([#665])
|
|
29
|
+
* Fixed nightly `portable_simd` build. ([#675])
|
|
30
|
+
|
|
31
|
+
[#630]: https://github.com/image-rs/image-png/pull/630
|
|
32
|
+
[#632]: https://github.com/image-rs/image-png/pull/632
|
|
33
|
+
[#633]: https://github.com/image-rs/image-png/pull/633
|
|
34
|
+
[#635]: https://github.com/image-rs/image-png/pull/635
|
|
35
|
+
[#646]: https://github.com/image-rs/image-png/pull/646
|
|
36
|
+
[#647]: https://github.com/image-rs/image-png/pull/647
|
|
37
|
+
[#650]: https://github.com/image-rs/image-png/pull/650
|
|
38
|
+
[#651]: https://github.com/image-rs/image-png/pull/651
|
|
39
|
+
[#653]: https://github.com/image-rs/image-png/pull/653
|
|
40
|
+
[#664]: https://github.com/image-rs/image-png/pull/664
|
|
41
|
+
[#665]: https://github.com/image-rs/image-png/pull/665
|
|
42
|
+
[#673]: https://github.com/image-rs/image-png/pull/673
|
|
43
|
+
[#675]: https://github.com/image-rs/image-png/pull/675
|
|
44
|
+
|
|
1
45
|
## 0.18.0
|
|
2
46
|
|
|
3
47
|
### API Breaking Changes
|