css_inline 0.18.0 → 0.19.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42760a73c85170827f195ec8828bf5fccfdf9cab66adc0410f1524185a9fae40
4
- data.tar.gz: a5c5b5ada1ac93dba47db866c6121fa9c9d8df0c6c4c9cb4d11cc99ad00eaede
3
+ metadata.gz: a0b0796a3cd42ace45099524209280eb79c2127374d74fe2f6eced256750e8d9
4
+ data.tar.gz: 0c95bcfcd955db63ae819deadd7b491a39990f68388545c8cfe22faf4d90d69a
5
5
  SHA512:
6
- metadata.gz: 3180f650f1ae3ce473b48bf599a27376a76bf9be25db9930b85d9655833f7536080ed446bde7270b763f4c1cdabed046439babad2fbd8a3c7bd08e0a2e296e42
7
- data.tar.gz: 17a0983bc3174ddd7e219b2066dcb350ad9576038eb3741564ca3381c5653163255f037f3a508d46fa927eae51f9777cc52741bc6064909699e5df2e183f6583
6
+ metadata.gz: 81ad48267ca70b545984c30f84e5b207141ae36b83576d645eb8ccd0690c5d1d327b3ba4681c1b8e1cd98a5959ad2284161628940433f56468da1517751cbbf3
7
+ data.tar.gz: 2261c635c6b52bd81cb1594572ab82b12e8209a8952ebc670f7a41efd07ca5bdf485d509bb8017b00250e5d3dc9d20426ae572efeee55865e52aff05203cca9b
data/Cargo.lock CHANGED
@@ -1,6 +1,6 @@
1
1
  # This file is automatically @generated by Cargo.
2
2
  # It is not intended for manual editing.
3
- version = 3
3
+ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
@@ -136,13 +136,12 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
136
136
 
137
137
  [[package]]
138
138
  name = "css-inline"
139
- version = "0.18.0"
139
+ version = "0.19.1"
140
140
  source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "e718bae3215a5fe4d70ce7adad0ae626a34e9549d252ff5cb59ec71aff1f96cf"
141
+ checksum = "ff246a3af11c7b3747663a5d96c991425ee75abc60ef2cbf32d61d1762196c12"
142
142
  dependencies = [
143
143
  "cssparser",
144
144
  "html5ever",
145
- "indexmap",
146
145
  "lru",
147
146
  "precomputed-hash",
148
147
  "reqwest",
@@ -154,7 +153,7 @@ dependencies = [
154
153
 
155
154
  [[package]]
156
155
  name = "css-inline-ruby"
157
- version = "0.18.0"
156
+ version = "0.19.1"
158
157
  dependencies = [
159
158
  "css-inline",
160
159
  "magnus",
@@ -163,9 +162,9 @@ dependencies = [
163
162
 
164
163
  [[package]]
165
164
  name = "cssparser"
166
- version = "0.35.0"
165
+ version = "0.36.0"
167
166
  source = "registry+https://github.com/rust-lang/crates.io-index"
168
- checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa"
167
+ checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
169
168
  dependencies = [
170
169
  "cssparser-macros",
171
170
  "dtoa-short",
@@ -242,6 +241,12 @@ version = "1.0.2"
242
241
  source = "registry+https://github.com/rust-lang/crates.io-index"
243
242
  checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
244
243
 
244
+ [[package]]
245
+ name = "fastrand"
246
+ version = "2.3.0"
247
+ source = "registry+https://github.com/rust-lang/crates.io-index"
248
+ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
249
+
245
250
  [[package]]
246
251
  name = "find-msvc-tools"
247
252
  version = "0.1.4"
@@ -269,16 +274,6 @@ dependencies = [
269
274
  "percent-encoding",
270
275
  ]
271
276
 
272
- [[package]]
273
- name = "futf"
274
- version = "0.1.5"
275
- source = "registry+https://github.com/rust-lang/crates.io-index"
276
- checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
277
- dependencies = [
278
- "mac",
279
- "new_debug_unreachable",
280
- ]
281
-
282
277
  [[package]]
283
278
  name = "futures-channel"
284
279
  version = "0.3.31"
@@ -375,13 +370,12 @@ dependencies = [
375
370
 
376
371
  [[package]]
377
372
  name = "html5ever"
378
- version = "0.35.0"
373
+ version = "0.38.0"
379
374
  source = "registry+https://github.com/rust-lang/crates.io-index"
380
- checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4"
375
+ checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
381
376
  dependencies = [
382
377
  "log",
383
378
  "markup5ever",
384
- "match_token",
385
379
  ]
386
380
 
387
381
  [[package]]
@@ -588,16 +582,6 @@ dependencies = [
588
582
  "icu_properties",
589
583
  ]
590
584
 
591
- [[package]]
592
- name = "indexmap"
593
- version = "2.12.0"
594
- source = "registry+https://github.com/rust-lang/crates.io-index"
595
- checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
596
- dependencies = [
597
- "equivalent",
598
- "hashbrown",
599
- ]
600
-
601
585
  [[package]]
602
586
  name = "ipnet"
603
587
  version = "2.11.0"
@@ -690,9 +674,9 @@ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
690
674
 
691
675
  [[package]]
692
676
  name = "lru"
693
- version = "0.16.2"
677
+ version = "0.16.3"
694
678
  source = "registry+https://github.com/rust-lang/crates.io-index"
695
- checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f"
679
+ checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
696
680
  dependencies = [
697
681
  "hashbrown",
698
682
  ]
@@ -703,12 +687,6 @@ version = "0.1.2"
703
687
  source = "registry+https://github.com/rust-lang/crates.io-index"
704
688
  checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
705
689
 
706
- [[package]]
707
- name = "mac"
708
- version = "0.1.1"
709
- source = "registry+https://github.com/rust-lang/crates.io-index"
710
- checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
711
-
712
690
  [[package]]
713
691
  name = "magnus"
714
692
  version = "0.8.2"
@@ -734,26 +712,15 @@ dependencies = [
734
712
 
735
713
  [[package]]
736
714
  name = "markup5ever"
737
- version = "0.35.0"
715
+ version = "0.38.0"
738
716
  source = "registry+https://github.com/rust-lang/crates.io-index"
739
- checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3"
717
+ checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862"
740
718
  dependencies = [
741
719
  "log",
742
720
  "tendril",
743
721
  "web_atoms",
744
722
  ]
745
723
 
746
- [[package]]
747
- name = "match_token"
748
- version = "0.35.0"
749
- source = "registry+https://github.com/rust-lang/crates.io-index"
750
- checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf"
751
- dependencies = [
752
- "proc-macro2",
753
- "quote",
754
- "syn",
755
- ]
756
-
757
724
  [[package]]
758
725
  name = "memchr"
759
726
  version = "2.7.6"
@@ -830,19 +797,20 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
830
797
 
831
798
  [[package]]
832
799
  name = "phf"
833
- version = "0.11.3"
800
+ version = "0.13.1"
834
801
  source = "registry+https://github.com/rust-lang/crates.io-index"
835
- checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
802
+ checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
836
803
  dependencies = [
837
804
  "phf_macros",
838
805
  "phf_shared",
806
+ "serde",
839
807
  ]
840
808
 
841
809
  [[package]]
842
810
  name = "phf_codegen"
843
- version = "0.11.3"
811
+ version = "0.13.1"
844
812
  source = "registry+https://github.com/rust-lang/crates.io-index"
845
- checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
813
+ checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
846
814
  dependencies = [
847
815
  "phf_generator",
848
816
  "phf_shared",
@@ -850,19 +818,19 @@ dependencies = [
850
818
 
851
819
  [[package]]
852
820
  name = "phf_generator"
853
- version = "0.11.3"
821
+ version = "0.13.1"
854
822
  source = "registry+https://github.com/rust-lang/crates.io-index"
855
- checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
823
+ checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
856
824
  dependencies = [
825
+ "fastrand",
857
826
  "phf_shared",
858
- "rand 0.8.5",
859
827
  ]
860
828
 
861
829
  [[package]]
862
830
  name = "phf_macros"
863
- version = "0.11.3"
831
+ version = "0.13.1"
864
832
  source = "registry+https://github.com/rust-lang/crates.io-index"
865
- checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
833
+ checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
866
834
  dependencies = [
867
835
  "phf_generator",
868
836
  "phf_shared",
@@ -873,9 +841,9 @@ dependencies = [
873
841
 
874
842
  [[package]]
875
843
  name = "phf_shared"
876
- version = "0.11.3"
844
+ version = "0.13.1"
877
845
  source = "registry+https://github.com/rust-lang/crates.io-index"
878
- checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
846
+ checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
879
847
  dependencies = [
880
848
  "siphasher",
881
849
  ]
@@ -954,7 +922,7 @@ dependencies = [
954
922
  "bytes",
955
923
  "getrandom 0.3.4",
956
924
  "lru-slab",
957
- "rand 0.9.2",
925
+ "rand",
958
926
  "ring",
959
927
  "rustc-hash 2.1.1",
960
928
  "rustls",
@@ -995,15 +963,6 @@ version = "5.3.0"
995
963
  source = "registry+https://github.com/rust-lang/crates.io-index"
996
964
  checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
997
965
 
998
- [[package]]
999
- name = "rand"
1000
- version = "0.8.5"
1001
- source = "registry+https://github.com/rust-lang/crates.io-index"
1002
- checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
1003
- dependencies = [
1004
- "rand_core 0.6.4",
1005
- ]
1006
-
1007
966
  [[package]]
1008
967
  name = "rand"
1009
968
  version = "0.9.2"
@@ -1011,7 +970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1011
970
  checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
1012
971
  dependencies = [
1013
972
  "rand_chacha",
1014
- "rand_core 0.9.3",
973
+ "rand_core",
1015
974
  ]
1016
975
 
1017
976
  [[package]]
@@ -1021,15 +980,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1021
980
  checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1022
981
  dependencies = [
1023
982
  "ppv-lite86",
1024
- "rand_core 0.9.3",
983
+ "rand_core",
1025
984
  ]
1026
985
 
1027
- [[package]]
1028
- name = "rand_core"
1029
- version = "0.6.4"
1030
- source = "registry+https://github.com/rust-lang/crates.io-index"
1031
- checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1032
-
1033
986
  [[package]]
1034
987
  name = "rand_core"
1035
988
  version = "0.9.3"
@@ -1248,9 +1201,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1248
1201
 
1249
1202
  [[package]]
1250
1203
  name = "selectors"
1251
- version = "0.32.0"
1204
+ version = "0.35.0"
1252
1205
  source = "registry+https://github.com/rust-lang/crates.io-index"
1253
- checksum = "09975d3195f34dce9c7b381cb0f00c3c13381d4d3735c0f1a9c894b283b302ab"
1206
+ checksum = "93fdfed56cd634f04fe8b9ddf947ae3dc493483e819593d2ba17df9ad05db8b2"
1254
1207
  dependencies = [
1255
1208
  "bitflags",
1256
1209
  "cssparser",
@@ -1328,9 +1281,9 @@ dependencies = [
1328
1281
 
1329
1282
  [[package]]
1330
1283
  name = "servo_arc"
1331
- version = "0.4.1"
1284
+ version = "0.4.3"
1332
1285
  source = "registry+https://github.com/rust-lang/crates.io-index"
1333
- checksum = "204ea332803bd95a0b60388590d59cf6468ec9becf626e2451f1d26a1d972de4"
1286
+ checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930"
1334
1287
  dependencies = [
1335
1288
  "stable_deref_trait",
1336
1289
  ]
@@ -1383,22 +1336,21 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1383
1336
 
1384
1337
  [[package]]
1385
1338
  name = "string_cache"
1386
- version = "0.8.9"
1339
+ version = "0.9.0"
1387
1340
  source = "registry+https://github.com/rust-lang/crates.io-index"
1388
- checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f"
1341
+ checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
1389
1342
  dependencies = [
1390
1343
  "new_debug_unreachable",
1391
1344
  "parking_lot",
1392
1345
  "phf_shared",
1393
1346
  "precomputed-hash",
1394
- "serde",
1395
1347
  ]
1396
1348
 
1397
1349
  [[package]]
1398
1350
  name = "string_cache_codegen"
1399
- version = "0.5.4"
1351
+ version = "0.6.1"
1400
1352
  source = "registry+https://github.com/rust-lang/crates.io-index"
1401
- checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
1353
+ checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
1402
1354
  dependencies = [
1403
1355
  "phf_generator",
1404
1356
  "phf_shared",
@@ -1445,12 +1397,11 @@ dependencies = [
1445
1397
 
1446
1398
  [[package]]
1447
1399
  name = "tendril"
1448
- version = "0.4.3"
1400
+ version = "0.5.0"
1449
1401
  source = "registry+https://github.com/rust-lang/crates.io-index"
1450
- checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
1402
+ checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24"
1451
1403
  dependencies = [
1452
- "futf",
1453
- "mac",
1404
+ "new_debug_unreachable",
1454
1405
  "utf-8",
1455
1406
  ]
1456
1407
 
@@ -1733,9 +1684,9 @@ dependencies = [
1733
1684
 
1734
1685
  [[package]]
1735
1686
  name = "web_atoms"
1736
- version = "0.1.3"
1687
+ version = "0.2.2"
1737
1688
  source = "registry+https://github.com/rust-lang/crates.io-index"
1738
- checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414"
1689
+ checksum = "c7fa72497c57079de16225d9a886d6c9a80c34f8e5a9cd5c64b71a449cbba195"
1739
1690
  dependencies = [
1740
1691
  "phf",
1741
1692
  "phf_codegen",
data/README.md CHANGED
@@ -142,6 +142,7 @@ inliner.inline("...")
142
142
  - `cache`. Specifies caching options for external stylesheets (for example, `StylesheetCache(size: 5)`). Default: `nil`
143
143
  - `extra_css`. Extra CSS to be inlined. Default: `nil`
144
144
  - `preallocate_node_capacity`. **Advanced**. Preallocates capacity for HTML nodes during parsing. This can improve performance when you have an estimate of the number of nodes in your HTML document. Default: `32`
145
+ - `remove_inlined_selectors`. Specifies whether to remove selectors that were successfully inlined from `<style>` blocks. Default: `false`
145
146
 
146
147
  You can also skip CSS inlining for an HTML tag by adding the `data-css-inline="ignore"` attribute to it:
147
148
 
@@ -239,15 +240,15 @@ Performance benchmarks show 50-100x faster execution than `roadie` and `premaile
239
240
 
240
241
  The table below shows benchmark results comparing `css_inline`, `roadie`, and `premailer` on typical HTML documents:
241
242
 
242
- | | Size | `css_inline 0.15.0` | `roadie 5.2.1` | `premailer 1.21.0` |
243
- |-------------------|---------|---------------------|----------------|---------------------------|
244
- | Basic usage | 230 B | 6.11 µs | 175.21 µs (**28.75**) | 350.10 µs (**57.24x**) |
245
- | Realistic email 1 | 8.58 KB | 101.82 µs | 721.18 µs (**6.96x**) | 7.99 ms (**78.49x**) |
246
- | Realistic email 2 | 4.3 KB | 77.22 µs | 2.02 ms (**28.48x**) | ERROR |
247
- | GitHub Page | 1.81 MB | 172.41 ms | 8.84 s (**52.21x**) | 2.77 s (**15.97x**) |
243
+ | | Size | `css_inline 0.19.0` | `roadie 5.2.1` | `premailer 1.21.0` |
244
+ |-------------------|---------|---------------------|-------------------------|-------------------------|
245
+ | Basic usage | 230 B | 6.07 µs | 173.50 µs (**28.60x**) | 345.30 µs (**56.91x**) |
246
+ | Realistic email 1 | 8.58 KB | 91.23 µs | 713.40 µs (**7.82x**) | 6.80 ms (**74.53x**) |
247
+ | Realistic email 2 | 4.3 KB | 57.56 µs | 1.99 ms (**34.56x**) | ERROR |
248
+ | GitHub Page | 1.81 MB | 39.15 ms | 8.20 s (**208.62x**) | 2.40 s (**61.29x**) |
248
249
 
249
250
  Please refer to the `test/bench.rb` file to review the benchmark code.
250
- The results displayed above were measured using stable `rustc 1.87` on Ruby `3.3.5`.
251
+ The results displayed above were measured using stable `rustc 1.91` on Ruby `3.4.7`.
251
252
 
252
253
  ## Further reading
253
254
 
@@ -1,6 +1,6 @@
1
1
  # This file is automatically @generated by Cargo.
2
2
  # It is not intended for manual editing.
3
- version = 3
3
+ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
@@ -136,13 +136,12 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
136
136
 
137
137
  [[package]]
138
138
  name = "css-inline"
139
- version = "0.18.0"
139
+ version = "0.19.1"
140
140
  source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "e718bae3215a5fe4d70ce7adad0ae626a34e9549d252ff5cb59ec71aff1f96cf"
141
+ checksum = "ff246a3af11c7b3747663a5d96c991425ee75abc60ef2cbf32d61d1762196c12"
142
142
  dependencies = [
143
143
  "cssparser",
144
144
  "html5ever",
145
- "indexmap",
146
145
  "lru",
147
146
  "precomputed-hash",
148
147
  "reqwest",
@@ -154,7 +153,7 @@ dependencies = [
154
153
 
155
154
  [[package]]
156
155
  name = "css-inline-ruby"
157
- version = "0.18.0"
156
+ version = "0.19.1"
158
157
  dependencies = [
159
158
  "css-inline",
160
159
  "magnus",
@@ -163,9 +162,9 @@ dependencies = [
163
162
 
164
163
  [[package]]
165
164
  name = "cssparser"
166
- version = "0.35.0"
165
+ version = "0.36.0"
167
166
  source = "registry+https://github.com/rust-lang/crates.io-index"
168
- checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa"
167
+ checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
169
168
  dependencies = [
170
169
  "cssparser-macros",
171
170
  "dtoa-short",
@@ -242,6 +241,12 @@ version = "1.0.2"
242
241
  source = "registry+https://github.com/rust-lang/crates.io-index"
243
242
  checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
244
243
 
244
+ [[package]]
245
+ name = "fastrand"
246
+ version = "2.3.0"
247
+ source = "registry+https://github.com/rust-lang/crates.io-index"
248
+ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
249
+
245
250
  [[package]]
246
251
  name = "find-msvc-tools"
247
252
  version = "0.1.4"
@@ -269,16 +274,6 @@ dependencies = [
269
274
  "percent-encoding",
270
275
  ]
271
276
 
272
- [[package]]
273
- name = "futf"
274
- version = "0.1.5"
275
- source = "registry+https://github.com/rust-lang/crates.io-index"
276
- checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
277
- dependencies = [
278
- "mac",
279
- "new_debug_unreachable",
280
- ]
281
-
282
277
  [[package]]
283
278
  name = "futures-channel"
284
279
  version = "0.3.31"
@@ -375,13 +370,12 @@ dependencies = [
375
370
 
376
371
  [[package]]
377
372
  name = "html5ever"
378
- version = "0.35.0"
373
+ version = "0.38.0"
379
374
  source = "registry+https://github.com/rust-lang/crates.io-index"
380
- checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4"
375
+ checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
381
376
  dependencies = [
382
377
  "log",
383
378
  "markup5ever",
384
- "match_token",
385
379
  ]
386
380
 
387
381
  [[package]]
@@ -588,16 +582,6 @@ dependencies = [
588
582
  "icu_properties",
589
583
  ]
590
584
 
591
- [[package]]
592
- name = "indexmap"
593
- version = "2.12.0"
594
- source = "registry+https://github.com/rust-lang/crates.io-index"
595
- checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
596
- dependencies = [
597
- "equivalent",
598
- "hashbrown",
599
- ]
600
-
601
585
  [[package]]
602
586
  name = "ipnet"
603
587
  version = "2.11.0"
@@ -690,9 +674,9 @@ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
690
674
 
691
675
  [[package]]
692
676
  name = "lru"
693
- version = "0.16.2"
677
+ version = "0.16.3"
694
678
  source = "registry+https://github.com/rust-lang/crates.io-index"
695
- checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f"
679
+ checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
696
680
  dependencies = [
697
681
  "hashbrown",
698
682
  ]
@@ -703,12 +687,6 @@ version = "0.1.2"
703
687
  source = "registry+https://github.com/rust-lang/crates.io-index"
704
688
  checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
705
689
 
706
- [[package]]
707
- name = "mac"
708
- version = "0.1.1"
709
- source = "registry+https://github.com/rust-lang/crates.io-index"
710
- checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
711
-
712
690
  [[package]]
713
691
  name = "magnus"
714
692
  version = "0.8.2"
@@ -734,26 +712,15 @@ dependencies = [
734
712
 
735
713
  [[package]]
736
714
  name = "markup5ever"
737
- version = "0.35.0"
715
+ version = "0.38.0"
738
716
  source = "registry+https://github.com/rust-lang/crates.io-index"
739
- checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3"
717
+ checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862"
740
718
  dependencies = [
741
719
  "log",
742
720
  "tendril",
743
721
  "web_atoms",
744
722
  ]
745
723
 
746
- [[package]]
747
- name = "match_token"
748
- version = "0.35.0"
749
- source = "registry+https://github.com/rust-lang/crates.io-index"
750
- checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf"
751
- dependencies = [
752
- "proc-macro2",
753
- "quote",
754
- "syn",
755
- ]
756
-
757
724
  [[package]]
758
725
  name = "memchr"
759
726
  version = "2.7.6"
@@ -830,19 +797,20 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
830
797
 
831
798
  [[package]]
832
799
  name = "phf"
833
- version = "0.11.3"
800
+ version = "0.13.1"
834
801
  source = "registry+https://github.com/rust-lang/crates.io-index"
835
- checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
802
+ checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
836
803
  dependencies = [
837
804
  "phf_macros",
838
805
  "phf_shared",
806
+ "serde",
839
807
  ]
840
808
 
841
809
  [[package]]
842
810
  name = "phf_codegen"
843
- version = "0.11.3"
811
+ version = "0.13.1"
844
812
  source = "registry+https://github.com/rust-lang/crates.io-index"
845
- checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
813
+ checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
846
814
  dependencies = [
847
815
  "phf_generator",
848
816
  "phf_shared",
@@ -850,19 +818,19 @@ dependencies = [
850
818
 
851
819
  [[package]]
852
820
  name = "phf_generator"
853
- version = "0.11.3"
821
+ version = "0.13.1"
854
822
  source = "registry+https://github.com/rust-lang/crates.io-index"
855
- checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
823
+ checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
856
824
  dependencies = [
825
+ "fastrand",
857
826
  "phf_shared",
858
- "rand 0.8.5",
859
827
  ]
860
828
 
861
829
  [[package]]
862
830
  name = "phf_macros"
863
- version = "0.11.3"
831
+ version = "0.13.1"
864
832
  source = "registry+https://github.com/rust-lang/crates.io-index"
865
- checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
833
+ checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
866
834
  dependencies = [
867
835
  "phf_generator",
868
836
  "phf_shared",
@@ -873,9 +841,9 @@ dependencies = [
873
841
 
874
842
  [[package]]
875
843
  name = "phf_shared"
876
- version = "0.11.3"
844
+ version = "0.13.1"
877
845
  source = "registry+https://github.com/rust-lang/crates.io-index"
878
- checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
846
+ checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
879
847
  dependencies = [
880
848
  "siphasher",
881
849
  ]
@@ -954,7 +922,7 @@ dependencies = [
954
922
  "bytes",
955
923
  "getrandom 0.3.4",
956
924
  "lru-slab",
957
- "rand 0.9.2",
925
+ "rand",
958
926
  "ring",
959
927
  "rustc-hash 2.1.1",
960
928
  "rustls",
@@ -995,15 +963,6 @@ version = "5.3.0"
995
963
  source = "registry+https://github.com/rust-lang/crates.io-index"
996
964
  checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
997
965
 
998
- [[package]]
999
- name = "rand"
1000
- version = "0.8.5"
1001
- source = "registry+https://github.com/rust-lang/crates.io-index"
1002
- checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
1003
- dependencies = [
1004
- "rand_core 0.6.4",
1005
- ]
1006
-
1007
966
  [[package]]
1008
967
  name = "rand"
1009
968
  version = "0.9.2"
@@ -1011,7 +970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1011
970
  checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
1012
971
  dependencies = [
1013
972
  "rand_chacha",
1014
- "rand_core 0.9.3",
973
+ "rand_core",
1015
974
  ]
1016
975
 
1017
976
  [[package]]
@@ -1021,15 +980,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1021
980
  checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1022
981
  dependencies = [
1023
982
  "ppv-lite86",
1024
- "rand_core 0.9.3",
983
+ "rand_core",
1025
984
  ]
1026
985
 
1027
- [[package]]
1028
- name = "rand_core"
1029
- version = "0.6.4"
1030
- source = "registry+https://github.com/rust-lang/crates.io-index"
1031
- checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1032
-
1033
986
  [[package]]
1034
987
  name = "rand_core"
1035
988
  version = "0.9.3"
@@ -1248,9 +1201,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1248
1201
 
1249
1202
  [[package]]
1250
1203
  name = "selectors"
1251
- version = "0.32.0"
1204
+ version = "0.35.0"
1252
1205
  source = "registry+https://github.com/rust-lang/crates.io-index"
1253
- checksum = "09975d3195f34dce9c7b381cb0f00c3c13381d4d3735c0f1a9c894b283b302ab"
1206
+ checksum = "93fdfed56cd634f04fe8b9ddf947ae3dc493483e819593d2ba17df9ad05db8b2"
1254
1207
  dependencies = [
1255
1208
  "bitflags",
1256
1209
  "cssparser",
@@ -1328,9 +1281,9 @@ dependencies = [
1328
1281
 
1329
1282
  [[package]]
1330
1283
  name = "servo_arc"
1331
- version = "0.4.1"
1284
+ version = "0.4.3"
1332
1285
  source = "registry+https://github.com/rust-lang/crates.io-index"
1333
- checksum = "204ea332803bd95a0b60388590d59cf6468ec9becf626e2451f1d26a1d972de4"
1286
+ checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930"
1334
1287
  dependencies = [
1335
1288
  "stable_deref_trait",
1336
1289
  ]
@@ -1383,22 +1336,21 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1383
1336
 
1384
1337
  [[package]]
1385
1338
  name = "string_cache"
1386
- version = "0.8.9"
1339
+ version = "0.9.0"
1387
1340
  source = "registry+https://github.com/rust-lang/crates.io-index"
1388
- checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f"
1341
+ checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
1389
1342
  dependencies = [
1390
1343
  "new_debug_unreachable",
1391
1344
  "parking_lot",
1392
1345
  "phf_shared",
1393
1346
  "precomputed-hash",
1394
- "serde",
1395
1347
  ]
1396
1348
 
1397
1349
  [[package]]
1398
1350
  name = "string_cache_codegen"
1399
- version = "0.5.4"
1351
+ version = "0.6.1"
1400
1352
  source = "registry+https://github.com/rust-lang/crates.io-index"
1401
- checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
1353
+ checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
1402
1354
  dependencies = [
1403
1355
  "phf_generator",
1404
1356
  "phf_shared",
@@ -1445,12 +1397,11 @@ dependencies = [
1445
1397
 
1446
1398
  [[package]]
1447
1399
  name = "tendril"
1448
- version = "0.4.3"
1400
+ version = "0.5.0"
1449
1401
  source = "registry+https://github.com/rust-lang/crates.io-index"
1450
- checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
1402
+ checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24"
1451
1403
  dependencies = [
1452
- "futf",
1453
- "mac",
1404
+ "new_debug_unreachable",
1454
1405
  "utf-8",
1455
1406
  ]
1456
1407
 
@@ -1733,9 +1684,9 @@ dependencies = [
1733
1684
 
1734
1685
  [[package]]
1735
1686
  name = "web_atoms"
1736
- version = "0.1.3"
1687
+ version = "0.2.2"
1737
1688
  source = "registry+https://github.com/rust-lang/crates.io-index"
1738
- checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414"
1689
+ checksum = "c7fa72497c57079de16225d9a886d6c9a80c34f8e5a9cd5c64b71a449cbba195"
1739
1690
  dependencies = [
1740
1691
  "phf",
1741
1692
  "phf_codegen",
@@ -1,15 +1,15 @@
1
1
  [package]
2
2
  name = "css-inline-ruby"
3
- version = "0.18.0"
3
+ version = "0.19.1"
4
4
  authors = ["Dmitry Dygalo <dmitry@dygalo.dev>"]
5
- edition = "2021"
5
+ edition = "2024"
6
6
  readme = "README.rdoc"
7
7
  description = "High-performance library for inlining CSS into HTML 'style' attributes"
8
8
  repository = "https://github.com/Stranger6667/css-inline"
9
9
  keywords = ["css", "html", "email", "stylesheet", "inlining"]
10
10
  categories = ["web-programming"]
11
11
  license = "MIT"
12
- rust-version = "1.83"
12
+ rust-version = "1.85"
13
13
 
14
14
  [lib]
15
15
  name = "css_inline"
@@ -20,6 +20,6 @@ magnus = "0.8"
20
20
  rayon = "1"
21
21
 
22
22
  [dependencies.css-inline]
23
- version = "0.18.0"
23
+ version = "0.19.1"
24
24
  default-features = false
25
25
  features = ["http", "file", "stylesheet-cache"]
@@ -27,11 +27,10 @@
27
27
  )]
28
28
  use css_inline as rust_inline;
29
29
  use magnus::{
30
- function, method,
30
+ DataTypeFunctions, RHash, Ruby, TryConvert, TypedData, Value, function, method,
31
31
  prelude::*,
32
- scan_args::{get_kwargs, scan_args, Args},
32
+ scan_args::{Args, get_kwargs, scan_args},
33
33
  typed_data::Obj,
34
- DataTypeFunctions, RHash, Ruby, TryConvert, TypedData, Value,
35
34
  };
36
35
  use rayon::prelude::*;
37
36
  use std::{
@@ -68,6 +67,8 @@ struct Options {
68
67
  /// Pre-allocate capacity for HTML nodes during parsing.
69
68
  /// It can improve performance when you have an estimate of the number of nodes in your HTML document.
70
69
  preallocate_node_capacity: Option<usize>,
70
+ /// Remove selectors that were successfully inlined from inline `<style>` blocks.
71
+ remove_inlined_selectors: Option<bool>,
71
72
  }
72
73
 
73
74
  impl TryConvert for Options {
@@ -87,6 +88,8 @@ impl TryConvert for Options {
87
88
  extra_css: h.aref::<_, Option<String>>(ruby.to_symbol("extra_css"))?,
88
89
  preallocate_node_capacity: h
89
90
  .aref::<_, Option<usize>>(ruby.to_symbol("preallocate_node_capacity"))?,
91
+ remove_inlined_selectors: h
92
+ .aref::<_, Option<bool>>(ruby.to_symbol("remove_inlined_selectors"))?,
90
93
  })
91
94
  }
92
95
  }
@@ -109,6 +112,7 @@ fn parse_options<Req>(
109
112
  extra_css: kwargs.extra_css.map(Cow::Owned),
110
113
  preallocate_node_capacity: kwargs.preallocate_node_capacity.unwrap_or(32),
111
114
  resolver: Arc::new(rust_inline::DefaultStylesheetResolver),
115
+ remove_inlined_selectors: kwargs.remove_inlined_selectors.unwrap_or(false),
112
116
  })
113
117
  }
114
118
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: css_inline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.19.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Dygalo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-01 00:00:00.000000000 Z
11
+ date: 2026-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys
@@ -38,62 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.3.0
41
- - !ruby/object:Gem::Dependency
42
- name: benchmark-ips
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.10'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.10'
55
- - !ruby/object:Gem::Dependency
56
- name: premailer
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.21'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.21'
69
- - !ruby/object:Gem::Dependency
70
- name: roadie
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 5.2.1
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 5.2.1
83
- - !ruby/object:Gem::Dependency
84
- name: nokogiri
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.15'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.15'
97
41
  description: |2
98
42
  `css_inline` inlines CSS into HTML documents, using components from Mozilla's Servo project.
99
43
  This process is essential for sending HTML emails as you need to use "style" attributes instead of "style" tags.