Blog attempt 5
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add makup templater, replacing lol_html

+1310 -611
+1091 -346
Cargo.lock
··· 54 54 55 55 [[package]] 56 56 name = "aho-corasick" 57 - version = "1.1.3" 57 + version = "1.1.4" 58 58 source = "registry+https://github.com/rust-lang/crates.io-index" 59 - checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 59 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 60 60 dependencies = [ 61 61 "memchr", 62 62 ] 63 - 64 - [[package]] 65 - name = "allocator-api2" 66 - version = "0.2.21" 67 - source = "registry+https://github.com/rust-lang/crates.io-index" 68 - checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 69 63 70 64 [[package]] 71 65 name = "android_system_properties" ··· 108 102 109 103 [[package]] 110 104 name = "anstyle-query" 111 - version = "1.1.4" 105 + version = "1.1.5" 112 106 source = "registry+https://github.com/rust-lang/crates.io-index" 113 - checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" 107 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 114 108 dependencies = [ 115 - "windows-sys 0.60.2", 109 + "windows-sys 0.61.2", 116 110 ] 117 111 118 112 [[package]] 119 113 name = "anstyle-wincon" 120 - version = "3.0.10" 114 + version = "3.0.11" 121 115 source = "registry+https://github.com/rust-lang/crates.io-index" 122 - checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" 116 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 123 117 dependencies = [ 124 118 "anstyle", 125 119 "once_cell_polyfill", 126 - "windows-sys 0.60.2", 120 + "windows-sys 0.61.2", 127 121 ] 128 122 129 123 [[package]] ··· 188 182 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 189 183 190 184 [[package]] 185 + name = "autumnus" 186 + version = "0.7.8" 187 + source = "registry+https://github.com/rust-lang/crates.io-index" 188 + checksum = "06c1fde8ded97480fce6fb7284ec21a5d0fcd62ade3e77770fe5c8c717dd7348" 189 + dependencies = [ 190 + "anyhow", 191 + "cc", 192 + "clap", 193 + "derive_builder", 194 + "glob", 195 + "lazy_static", 196 + "prettyplease", 197 + "proc-macro2", 198 + "quote", 199 + "rayon", 200 + "regex", 201 + "rustler", 202 + "serde", 203 + "serde_json", 204 + "strum 0.27.2", 205 + "syn", 206 + "termcolor", 207 + "tree-sitter", 208 + "tree-sitter-asm", 209 + "tree-sitter-bash", 210 + "tree-sitter-c", 211 + "tree-sitter-c-sharp", 212 + "tree-sitter-cmake", 213 + "tree-sitter-comment", 214 + "tree-sitter-cpp", 215 + "tree-sitter-css", 216 + "tree-sitter-diff", 217 + "tree-sitter-elixir", 218 + "tree-sitter-elm", 219 + "tree-sitter-embedded-template", 220 + "tree-sitter-erlang", 221 + "tree-sitter-fsharp", 222 + "tree-sitter-gleam", 223 + "tree-sitter-go", 224 + "tree-sitter-haskell", 225 + "tree-sitter-hcl", 226 + "tree-sitter-heex", 227 + "tree-sitter-highlight", 228 + "tree-sitter-html", 229 + "tree-sitter-java", 230 + "tree-sitter-javascript", 231 + "tree-sitter-json", 232 + "tree-sitter-language", 233 + "tree-sitter-lua", 234 + "tree-sitter-nix", 235 + "tree-sitter-objc", 236 + "tree-sitter-ocaml", 237 + "tree-sitter-php", 238 + "tree-sitter-powershell", 239 + "tree-sitter-proto", 240 + "tree-sitter-python", 241 + "tree-sitter-r", 242 + "tree-sitter-regex", 243 + "tree-sitter-ruby", 244 + "tree-sitter-rust", 245 + "tree-sitter-scala", 246 + "tree-sitter-sequel", 247 + "tree-sitter-svelte-ng", 248 + "tree-sitter-swift", 249 + "tree-sitter-toml-ng", 250 + "tree-sitter-typescript", 251 + "tree-sitter-xml", 252 + "tree-sitter-yaml", 253 + "tree-sitter-zig", 254 + "v_htmlescape", 255 + ] 256 + 257 + [[package]] 191 258 name = "az" 192 259 version = "1.2.1" 193 260 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 209 276 ] 210 277 211 278 [[package]] 279 + name = "backtrace-ext" 280 + version = "0.2.1" 281 + source = "registry+https://github.com/rust-lang/crates.io-index" 282 + checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" 283 + dependencies = [ 284 + "backtrace", 285 + ] 286 + 287 + [[package]] 212 288 name = "base64" 213 289 version = "0.22.1" 214 290 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 222 298 dependencies = [ 223 299 "numerals", 224 300 "paste", 225 - "strum", 301 + "strum 0.26.3", 226 302 "unicode-normalization", 227 303 "unscanny", 228 304 ] ··· 259 335 260 336 [[package]] 261 337 name = "bitflags" 262 - version = "2.9.4" 338 + version = "2.10.0" 263 339 source = "registry+https://github.com/rust-lang/crates.io-index" 264 - checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 340 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 265 341 dependencies = [ 266 - "serde", 342 + "serde_core", 267 343 ] 268 344 269 345 [[package]] ··· 280 356 version = "0.1.0" 281 357 dependencies = [ 282 358 "atom_syndication", 359 + "autumnus", 283 360 "chrono", 284 361 "derive_typst_intoval", 285 362 "env_logger", 286 363 "log", 287 - "lol_html", 364 + "makup", 288 365 "maud", 289 366 "poem", 290 367 "rand 0.9.2", ··· 325 402 326 403 [[package]] 327 404 name = "bytes" 328 - version = "1.10.1" 405 + version = "1.11.0" 329 406 source = "registry+https://github.com/rust-lang/crates.io-index" 330 - checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 407 + checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 331 408 332 409 [[package]] 333 410 name = "camino" 334 - version = "1.2.0" 411 + version = "1.2.1" 335 412 source = "registry+https://github.com/rust-lang/crates.io-index" 336 - checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" 413 + checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" 337 414 dependencies = [ 338 415 "serde_core", 339 416 ] ··· 363 440 364 441 [[package]] 365 442 name = "cc" 366 - version = "1.2.41" 443 + version = "1.2.47" 367 444 source = "registry+https://github.com/rust-lang/crates.io-index" 368 - checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" 445 + checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" 369 446 dependencies = [ 370 447 "find-msvc-tools", 371 448 "jobserver", ··· 375 452 376 453 [[package]] 377 454 name = "cfg-if" 378 - version = "1.0.3" 455 + version = "1.0.4" 379 456 source = "registry+https://github.com/rust-lang/crates.io-index" 380 - checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 457 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 381 458 382 459 [[package]] 383 460 name = "cfg_aliases" ··· 465 542 ] 466 543 467 544 [[package]] 545 + name = "clap" 546 + version = "4.5.53" 547 + source = "registry+https://github.com/rust-lang/crates.io-index" 548 + checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" 549 + dependencies = [ 550 + "clap_builder", 551 + "clap_derive", 552 + ] 553 + 554 + [[package]] 555 + name = "clap_builder" 556 + version = "4.5.53" 557 + source = "registry+https://github.com/rust-lang/crates.io-index" 558 + checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" 559 + dependencies = [ 560 + "anstream", 561 + "anstyle", 562 + "clap_lex", 563 + "strsim", 564 + ] 565 + 566 + [[package]] 567 + name = "clap_derive" 568 + version = "4.5.49" 569 + source = "registry+https://github.com/rust-lang/crates.io-index" 570 + checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" 571 + dependencies = [ 572 + "heck", 573 + "proc-macro2", 574 + "quote", 575 + "syn", 576 + ] 577 + 578 + [[package]] 579 + name = "clap_lex" 580 + version = "0.7.6" 581 + source = "registry+https://github.com/rust-lang/crates.io-index" 582 + checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" 583 + 584 + [[package]] 468 585 name = "cobs" 469 586 version = "0.3.0" 470 587 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 598 715 599 716 [[package]] 600 717 name = "crypto-common" 601 - version = "0.1.6" 718 + version = "0.1.7" 602 719 source = "registry+https://github.com/rust-lang/crates.io-index" 603 - checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 720 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 604 721 dependencies = [ 605 722 "generic-array", 606 723 "rand_core 0.6.4", ··· 608 725 ] 609 726 610 727 [[package]] 611 - name = "cssparser" 612 - version = "0.35.0" 613 - source = "registry+https://github.com/rust-lang/crates.io-index" 614 - checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa" 615 - dependencies = [ 616 - "cssparser-macros", 617 - "dtoa-short", 618 - "itoa", 619 - "phf", 620 - "smallvec", 621 - ] 622 - 623 - [[package]] 624 - name = "cssparser-macros" 625 - version = "0.6.1" 626 - source = "registry+https://github.com/rust-lang/crates.io-index" 627 - checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 628 - dependencies = [ 629 - "quote", 630 - "syn", 631 - ] 632 - 633 - [[package]] 634 728 name = "csv" 635 729 version = "1.4.0" 636 730 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 703 797 704 798 [[package]] 705 799 name = "deranged" 706 - version = "0.5.3" 800 + version = "0.5.5" 707 801 source = "registry+https://github.com/rust-lang/crates.io-index" 708 - checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" 802 + checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 709 803 dependencies = [ 710 804 "powerfmt", 711 805 ] ··· 742 836 ] 743 837 744 838 [[package]] 745 - name = "derive_more" 746 - version = "2.0.1" 747 - source = "registry+https://github.com/rust-lang/crates.io-index" 748 - checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 749 - dependencies = [ 750 - "derive_more-impl", 751 - ] 752 - 753 - [[package]] 754 - name = "derive_more-impl" 755 - version = "2.0.1" 756 - source = "registry+https://github.com/rust-lang/crates.io-index" 757 - checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 758 - dependencies = [ 759 - "proc-macro2", 760 - "quote", 761 - "syn", 762 - ] 763 - 764 - [[package]] 765 839 name = "derive_typst_intoval" 766 840 version = "0.5.0" 767 841 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 834 908 checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 835 909 836 910 [[package]] 837 - name = "dtoa" 838 - version = "1.0.10" 839 - source = "registry+https://github.com/rust-lang/crates.io-index" 840 - checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" 841 - 842 - [[package]] 843 - name = "dtoa-short" 844 - version = "0.3.5" 845 - source = "registry+https://github.com/rust-lang/crates.io-index" 846 - checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 847 - dependencies = [ 848 - "dtoa", 849 - ] 850 - 851 - [[package]] 852 911 name = "ecow" 853 912 version = "0.2.6" 854 913 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 934 993 checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 935 994 936 995 [[package]] 996 + name = "errno" 997 + version = "0.3.14" 998 + source = "registry+https://github.com/rust-lang/crates.io-index" 999 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 1000 + dependencies = [ 1001 + "libc", 1002 + "windows-sys 0.61.2", 1003 + ] 1004 + 1005 + [[package]] 937 1006 name = "euclid" 938 1007 version = "0.22.11" 939 1008 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 982 1051 983 1052 [[package]] 984 1053 name = "find-msvc-tools" 985 - version = "0.1.4" 1054 + version = "0.1.5" 986 1055 source = "registry+https://github.com/rust-lang/crates.io-index" 987 - checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 1056 + checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 988 1057 989 1058 [[package]] 990 1059 name = "flate2" ··· 1013 1082 version = "0.1.5" 1014 1083 source = "registry+https://github.com/rust-lang/crates.io-index" 1015 1084 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 1016 - 1017 - [[package]] 1018 - name = "foldhash" 1019 - version = "0.2.0" 1020 - source = "registry+https://github.com/rust-lang/crates.io-index" 1021 - checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 1022 1085 1023 1086 [[package]] 1024 1087 name = "fontconfig-parser" ··· 1107 1170 1108 1171 [[package]] 1109 1172 name = "generic-array" 1110 - version = "0.14.9" 1173 + version = "0.14.7" 1111 1174 source = "registry+https://github.com/rust-lang/crates.io-index" 1112 - checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 1175 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1113 1176 dependencies = [ 1114 1177 "typenum", 1115 1178 "version_check", ··· 1159 1222 ] 1160 1223 1161 1224 [[package]] 1225 + name = "gif" 1226 + version = "0.14.0" 1227 + source = "registry+https://github.com/rust-lang/crates.io-index" 1228 + checksum = "f954a9e9159ec994f73a30a12b96a702dde78f5547bcb561174597924f7d4162" 1229 + dependencies = [ 1230 + "color_quant", 1231 + "weezl", 1232 + ] 1233 + 1234 + [[package]] 1162 1235 name = "gimli" 1163 1236 version = "0.32.3" 1164 1237 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1170 1243 source = "registry+https://github.com/rust-lang/crates.io-index" 1171 1244 checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" 1172 1245 dependencies = [ 1173 - "bitflags 2.9.4", 1246 + "bitflags 2.10.0", 1174 1247 "libc", 1175 1248 "libgit2-sys", 1176 1249 "log", 1177 1250 "url", 1178 1251 ] 1252 + 1253 + [[package]] 1254 + name = "glob" 1255 + version = "0.3.3" 1256 + source = "registry+https://github.com/rust-lang/crates.io-index" 1257 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1179 1258 1180 1259 [[package]] 1181 1260 name = "h2" ··· 1213 1292 source = "registry+https://github.com/rust-lang/crates.io-index" 1214 1293 checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1215 1294 dependencies = [ 1216 - "foldhash 0.1.5", 1295 + "foldhash", 1217 1296 ] 1218 1297 1219 1298 [[package]] 1220 1299 name = "hashbrown" 1221 - version = "0.16.0" 1300 + version = "0.16.1" 1222 1301 source = "registry+https://github.com/rust-lang/crates.io-index" 1223 - checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 1224 - dependencies = [ 1225 - "allocator-api2", 1226 - "equivalent", 1227 - "foldhash 0.2.0", 1228 - ] 1302 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1229 1303 1230 1304 [[package]] 1231 1305 name = "hashlink" ··· 1307 1381 1308 1382 [[package]] 1309 1383 name = "http" 1310 - version = "1.3.1" 1384 + version = "1.4.0" 1311 1385 source = "registry+https://github.com/rust-lang/crates.io-index" 1312 - checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 1386 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 1313 1387 dependencies = [ 1314 1388 "bytes", 1315 - "fnv", 1316 1389 "itoa", 1317 1390 ] 1318 1391 ··· 1353 1426 1354 1427 [[package]] 1355 1428 name = "hyper" 1356 - version = "1.7.0" 1429 + version = "1.8.1" 1357 1430 source = "registry+https://github.com/rust-lang/crates.io-index" 1358 - checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 1431 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1359 1432 dependencies = [ 1360 1433 "atomic-waker", 1361 1434 "bytes", ··· 1375 1448 1376 1449 [[package]] 1377 1450 name = "hyper-util" 1378 - version = "0.1.17" 1451 + version = "0.1.18" 1379 1452 source = "registry+https://github.com/rust-lang/crates.io-index" 1380 - checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" 1453 + checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" 1381 1454 dependencies = [ 1382 1455 "bytes", 1383 1456 "futures-core", ··· 1433 1506 1434 1507 [[package]] 1435 1508 name = "icu_collections" 1436 - version = "2.0.0" 1509 + version = "2.1.1" 1437 1510 source = "registry+https://github.com/rust-lang/crates.io-index" 1438 - checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1511 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 1439 1512 dependencies = [ 1440 1513 "displaydoc", 1441 1514 "potential_utf", 1442 - "yoke 0.8.0", 1515 + "yoke 0.8.1", 1443 1516 "zerofrom", 1444 - "zerovec 0.11.4", 1517 + "zerovec 0.11.5", 1445 1518 ] 1446 1519 1447 1520 [[package]] 1448 1521 name = "icu_locale_core" 1449 - version = "2.0.0" 1522 + version = "2.1.1" 1450 1523 source = "registry+https://github.com/rust-lang/crates.io-index" 1451 - checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1524 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 1452 1525 dependencies = [ 1453 1526 "displaydoc", 1454 - "litemap 0.8.0", 1455 - "tinystr 0.8.1", 1456 - "writeable 0.6.1", 1457 - "zerovec 0.11.4", 1527 + "litemap 0.8.1", 1528 + "tinystr 0.8.2", 1529 + "writeable 0.6.2", 1530 + "zerovec 0.11.5", 1458 1531 ] 1459 1532 1460 1533 [[package]] ··· 1492 1565 1493 1566 [[package]] 1494 1567 name = "icu_normalizer" 1495 - version = "2.0.0" 1568 + version = "2.1.1" 1496 1569 source = "registry+https://github.com/rust-lang/crates.io-index" 1497 - checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1570 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 1498 1571 dependencies = [ 1499 - "displaydoc", 1500 - "icu_collections 2.0.0", 1572 + "icu_collections 2.1.1", 1501 1573 "icu_normalizer_data", 1502 - "icu_properties 2.0.1", 1503 - "icu_provider 2.0.0", 1574 + "icu_properties 2.1.1", 1575 + "icu_provider 2.1.1", 1504 1576 "smallvec", 1505 - "zerovec 0.11.4", 1577 + "zerovec 0.11.5", 1506 1578 ] 1507 1579 1508 1580 [[package]] 1509 1581 name = "icu_normalizer_data" 1510 - version = "2.0.0" 1582 + version = "2.1.1" 1511 1583 source = "registry+https://github.com/rust-lang/crates.io-index" 1512 - checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1584 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 1513 1585 1514 1586 [[package]] 1515 1587 name = "icu_properties" ··· 1529 1601 1530 1602 [[package]] 1531 1603 name = "icu_properties" 1532 - version = "2.0.1" 1604 + version = "2.1.1" 1533 1605 source = "registry+https://github.com/rust-lang/crates.io-index" 1534 - checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1606 + checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 1535 1607 dependencies = [ 1536 - "displaydoc", 1537 - "icu_collections 2.0.0", 1608 + "icu_collections 2.1.1", 1538 1609 "icu_locale_core", 1539 - "icu_properties_data 2.0.1", 1540 - "icu_provider 2.0.0", 1541 - "potential_utf", 1542 - "zerotrie 0.2.2", 1543 - "zerovec 0.11.4", 1610 + "icu_properties_data 2.1.1", 1611 + "icu_provider 2.1.1", 1612 + "zerotrie 0.2.3", 1613 + "zerovec 0.11.5", 1544 1614 ] 1545 1615 1546 1616 [[package]] ··· 1551 1621 1552 1622 [[package]] 1553 1623 name = "icu_properties_data" 1554 - version = "2.0.1" 1624 + version = "2.1.1" 1555 1625 source = "registry+https://github.com/rust-lang/crates.io-index" 1556 - checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1626 + checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 1557 1627 1558 1628 [[package]] 1559 1629 name = "icu_provider" ··· 1576 1646 1577 1647 [[package]] 1578 1648 name = "icu_provider" 1579 - version = "2.0.0" 1649 + version = "2.1.1" 1580 1650 source = "registry+https://github.com/rust-lang/crates.io-index" 1581 - checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1651 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 1582 1652 dependencies = [ 1583 1653 "displaydoc", 1584 1654 "icu_locale_core", 1585 - "stable_deref_trait", 1586 - "tinystr 0.8.1", 1587 - "writeable 0.6.1", 1588 - "yoke 0.8.0", 1655 + "writeable 0.6.2", 1656 + "yoke 0.8.1", 1589 1657 "zerofrom", 1590 - "zerotrie 0.2.2", 1591 - "zerovec 0.11.4", 1658 + "zerotrie 0.2.3", 1659 + "zerovec 0.11.5", 1592 1660 ] 1593 1661 1594 1662 [[package]] ··· 1676 1744 checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1677 1745 dependencies = [ 1678 1746 "icu_normalizer", 1679 - "icu_properties 2.0.1", 1747 + "icu_properties 2.1.1", 1680 1748 ] 1681 1749 1682 1750 [[package]] ··· 1687 1755 1688 1756 [[package]] 1689 1757 name = "image" 1690 - version = "0.25.8" 1758 + version = "0.25.9" 1691 1759 source = "registry+https://github.com/rust-lang/crates.io-index" 1692 - checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" 1760 + checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" 1693 1761 dependencies = [ 1694 1762 "bytemuck", 1695 1763 "byteorder-lite", 1696 1764 "color_quant", 1697 - "gif", 1765 + "gif 0.14.0", 1698 1766 "moxcms", 1699 1767 "num-traits", 1700 1768 "png 0.18.0", 1701 - "zune-core", 1702 - "zune-jpeg", 1769 + "zune-core 0.5.0", 1770 + "zune-jpeg 0.5.5", 1703 1771 ] 1704 1772 1705 1773 [[package]] ··· 1720 1788 1721 1789 [[package]] 1722 1790 name = "indexmap" 1723 - version = "2.11.4" 1791 + version = "2.12.1" 1724 1792 source = "registry+https://github.com/rust-lang/crates.io-index" 1725 - checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" 1793 + checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 1726 1794 dependencies = [ 1727 1795 "equivalent", 1728 - "hashbrown 0.16.0", 1796 + "hashbrown 0.16.1", 1729 1797 "serde", 1730 1798 "serde_core", 1731 1799 ] ··· 1740 1808 ] 1741 1809 1742 1810 [[package]] 1743 - name = "io-uring" 1744 - version = "0.7.10" 1811 + name = "inventory" 1812 + version = "0.3.21" 1745 1813 source = "registry+https://github.com/rust-lang/crates.io-index" 1746 - checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" 1814 + checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 1747 1815 dependencies = [ 1748 - "bitflags 2.9.4", 1749 - "cfg-if", 1750 - "libc", 1816 + "rustversion", 1751 1817 ] 1752 1818 1753 1819 [[package]] 1820 + name = "is_ci" 1821 + version = "1.2.0" 1822 + source = "registry+https://github.com/rust-lang/crates.io-index" 1823 + checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 1824 + 1825 + [[package]] 1754 1826 name = "is_terminal_polyfill" 1755 1827 version = "1.70.2" 1756 1828 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1764 1836 1765 1837 [[package]] 1766 1838 name = "jiff" 1767 - version = "0.2.15" 1839 + version = "0.2.16" 1768 1840 source = "registry+https://github.com/rust-lang/crates.io-index" 1769 - checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" 1841 + checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" 1770 1842 dependencies = [ 1771 1843 "jiff-static", 1772 1844 "log", 1773 1845 "portable-atomic", 1774 1846 "portable-atomic-util", 1775 - "serde", 1847 + "serde_core", 1776 1848 ] 1777 1849 1778 1850 [[package]] 1779 1851 name = "jiff-static" 1780 - version = "0.2.15" 1852 + version = "0.2.16" 1781 1853 source = "registry+https://github.com/rust-lang/crates.io-index" 1782 - checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" 1854 + checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" 1783 1855 dependencies = [ 1784 1856 "proc-macro2", 1785 1857 "quote", ··· 1798 1870 1799 1871 [[package]] 1800 1872 name = "js-sys" 1801 - version = "0.3.81" 1873 + version = "0.3.82" 1802 1874 source = "registry+https://github.com/rust-lang/crates.io-index" 1803 - checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" 1875 + checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 1804 1876 dependencies = [ 1805 1877 "once_cell", 1806 1878 "wasm-bindgen", ··· 1825 1897 "euclid", 1826 1898 "smallvec", 1827 1899 ] 1900 + 1901 + [[package]] 1902 + name = "lazy_static" 1903 + version = "1.5.0" 1904 + source = "registry+https://github.com/rust-lang/crates.io-index" 1905 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1828 1906 1829 1907 [[package]] 1830 1908 name = "libc" ··· 1845 1923 ] 1846 1924 1847 1925 [[package]] 1926 + name = "libloading" 1927 + version = "0.8.9" 1928 + source = "registry+https://github.com/rust-lang/crates.io-index" 1929 + checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 1930 + dependencies = [ 1931 + "cfg-if", 1932 + "windows-link", 1933 + ] 1934 + 1935 + [[package]] 1848 1936 name = "libm" 1849 1937 version = "0.2.15" 1850 1938 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1856 1944 source = "registry+https://github.com/rust-lang/crates.io-index" 1857 1945 checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 1858 1946 dependencies = [ 1859 - "bitflags 2.9.4", 1947 + "bitflags 2.10.0", 1860 1948 "libc", 1861 1949 ] 1862 1950 ··· 1873 1961 1874 1962 [[package]] 1875 1963 name = "libz-sys" 1876 - version = "1.1.22" 1964 + version = "1.1.23" 1877 1965 source = "registry+https://github.com/rust-lang/crates.io-index" 1878 - checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" 1966 + checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" 1879 1967 dependencies = [ 1880 1968 "cc", 1881 1969 "libc", ··· 1888 1976 version = "0.5.6" 1889 1977 source = "registry+https://github.com/rust-lang/crates.io-index" 1890 1978 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1979 + 1980 + [[package]] 1981 + name = "linux-raw-sys" 1982 + version = "0.11.0" 1983 + source = "registry+https://github.com/rust-lang/crates.io-index" 1984 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 1891 1985 1892 1986 [[package]] 1893 1987 name = "lipsum" ··· 1910 2004 1911 2005 [[package]] 1912 2006 name = "litemap" 1913 - version = "0.8.0" 2007 + version = "0.8.1" 1914 2008 source = "registry+https://github.com/rust-lang/crates.io-index" 1915 - checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 2009 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 1916 2010 1917 2011 [[package]] 1918 2012 name = "lock_api" ··· 1930 2024 checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1931 2025 1932 2026 [[package]] 1933 - name = "lol_html" 1934 - version = "2.7.0" 1935 - source = "registry+https://github.com/rust-lang/crates.io-index" 1936 - checksum = "9a7ce8821eadcb5cb5c64dd0c9876a90f2676424020b41272e36c1dd04d20c59" 2027 + name = "makup" 2028 + version = "0.1.0" 2029 + source = "git+https://tangled.org/j0.lol/makup#1674d9a4e3996ea5a7eb5879f24d833307ebe8af" 1937 2030 dependencies = [ 1938 - "bitflags 2.9.4", 1939 - "cfg-if", 1940 - "cssparser", 1941 - "encoding_rs", 1942 - "hashbrown 0.16.0", 1943 - "memchr", 1944 - "mime", 1945 - "precomputed-hash", 1946 - "selectors", 1947 - "thiserror 2.0.17", 2031 + "miette", 2032 + "pest", 2033 + "pest_derive", 1948 2034 ] 1949 2035 1950 2036 [[package]] ··· 1986 2072 ] 1987 2073 1988 2074 [[package]] 2075 + name = "miette" 2076 + version = "7.6.0" 2077 + source = "registry+https://github.com/rust-lang/crates.io-index" 2078 + checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" 2079 + dependencies = [ 2080 + "backtrace", 2081 + "backtrace-ext", 2082 + "cfg-if", 2083 + "miette-derive", 2084 + "owo-colors", 2085 + "supports-color", 2086 + "supports-hyperlinks", 2087 + "supports-unicode", 2088 + "terminal_size", 2089 + "textwrap", 2090 + "unicode-width 0.1.14", 2091 + ] 2092 + 2093 + [[package]] 2094 + name = "miette-derive" 2095 + version = "7.6.0" 2096 + source = "registry+https://github.com/rust-lang/crates.io-index" 2097 + checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" 2098 + dependencies = [ 2099 + "proc-macro2", 2100 + "quote", 2101 + "syn", 2102 + ] 2103 + 2104 + [[package]] 1989 2105 name = "mime" 1990 2106 version = "0.3.17" 1991 2107 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2013 2129 2014 2130 [[package]] 2015 2131 name = "mio" 2016 - version = "1.0.4" 2132 + version = "1.1.0" 2017 2133 source = "registry+https://github.com/rust-lang/crates.io-index" 2018 - checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 2134 + checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 2019 2135 dependencies = [ 2020 2136 "libc", 2021 2137 "wasi", 2022 - "windows-sys 0.59.0", 2138 + "windows-sys 0.61.2", 2023 2139 ] 2024 2140 2025 2141 [[package]] ··· 2051 2167 checksum = "c96aba5aa877601bb3f6dd6a63a969e1f82e60646e81e71b14496995e9853c91" 2052 2168 2053 2169 [[package]] 2054 - name = "new_debug_unreachable" 2055 - version = "1.0.6" 2056 - source = "registry+https://github.com/rust-lang/crates.io-index" 2057 - checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2058 - 2059 - [[package]] 2060 2170 name = "nix" 2061 2171 version = "0.30.1" 2062 2172 source = "registry+https://github.com/rust-lang/crates.io-index" 2063 2173 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 2064 2174 dependencies = [ 2065 - "bitflags 2.9.4", 2175 + "bitflags 2.10.0", 2066 2176 "cfg-if", 2067 2177 "cfg_aliases", 2068 2178 "libc", ··· 2128 2238 2129 2239 [[package]] 2130 2240 name = "objc2-core-foundation" 2131 - version = "0.3.1" 2241 + version = "0.3.2" 2132 2242 source = "registry+https://github.com/rust-lang/crates.io-index" 2133 - checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" 2243 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 2134 2244 dependencies = [ 2135 - "bitflags 2.9.4", 2245 + "bitflags 2.10.0", 2136 2246 ] 2137 2247 2138 2248 [[package]] ··· 2178 2288 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2179 2289 2180 2290 [[package]] 2291 + name = "owo-colors" 2292 + version = "4.2.3" 2293 + source = "registry+https://github.com/rust-lang/crates.io-index" 2294 + checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 2295 + 2296 + [[package]] 2181 2297 name = "palette" 2182 2298 version = "0.7.6" 2183 2299 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2237 2353 checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 2238 2354 2239 2355 [[package]] 2240 - name = "phf" 2241 - version = "0.11.3" 2356 + name = "pest" 2357 + version = "2.8.4" 2358 + source = "registry+https://github.com/rust-lang/crates.io-index" 2359 + checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" 2360 + dependencies = [ 2361 + "memchr", 2362 + "miette", 2363 + "serde", 2364 + "serde_json", 2365 + "ucd-trie", 2366 + ] 2367 + 2368 + [[package]] 2369 + name = "pest_derive" 2370 + version = "2.8.4" 2242 2371 source = "registry+https://github.com/rust-lang/crates.io-index" 2243 - checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2372 + checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" 2244 2373 dependencies = [ 2245 - "phf_macros", 2246 - "phf_shared", 2374 + "pest", 2375 + "pest_generator", 2247 2376 ] 2248 2377 2249 2378 [[package]] 2250 - name = "phf_codegen" 2379 + name = "pest_generator" 2380 + version = "2.8.4" 2381 + source = "registry+https://github.com/rust-lang/crates.io-index" 2382 + checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" 2383 + dependencies = [ 2384 + "pest", 2385 + "pest_meta", 2386 + "proc-macro2", 2387 + "quote", 2388 + "syn", 2389 + ] 2390 + 2391 + [[package]] 2392 + name = "pest_meta" 2393 + version = "2.8.4" 2394 + source = "registry+https://github.com/rust-lang/crates.io-index" 2395 + checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" 2396 + dependencies = [ 2397 + "pest", 2398 + "sha2", 2399 + ] 2400 + 2401 + [[package]] 2402 + name = "phf" 2251 2403 version = "0.11.3" 2252 2404 source = "registry+https://github.com/rust-lang/crates.io-index" 2253 - checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 2405 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2254 2406 dependencies = [ 2255 - "phf_generator", 2407 + "phf_macros", 2256 2408 "phf_shared", 2257 2409 ] 2258 2410 ··· 2329 2481 dependencies = [ 2330 2482 "base64", 2331 2483 "indexmap", 2332 - "quick-xml 0.38.3", 2484 + "quick-xml 0.38.4", 2333 2485 "serde", 2334 2486 "time", 2335 2487 ] ··· 2353 2505 source = "registry+https://github.com/rust-lang/crates.io-index" 2354 2506 checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" 2355 2507 dependencies = [ 2356 - "bitflags 2.9.4", 2508 + "bitflags 2.10.0", 2357 2509 "crc32fast", 2358 2510 "fdeflate", 2359 2511 "flate2", ··· 2451 2603 2452 2604 [[package]] 2453 2605 name = "potential_utf" 2454 - version = "0.1.3" 2606 + version = "0.1.4" 2455 2607 source = "registry+https://github.com/rust-lang/crates.io-index" 2456 - checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 2608 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 2457 2609 dependencies = [ 2458 - "zerovec 0.11.4", 2610 + "zerovec 0.11.5", 2459 2611 ] 2460 2612 2461 2613 [[package]] ··· 2474 2626 ] 2475 2627 2476 2628 [[package]] 2477 - name = "precomputed-hash" 2478 - version = "0.1.1" 2629 + name = "prettyplease" 2630 + version = "0.2.37" 2479 2631 source = "registry+https://github.com/rust-lang/crates.io-index" 2480 - checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 2632 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 2633 + dependencies = [ 2634 + "proc-macro2", 2635 + "syn", 2636 + ] 2481 2637 2482 2638 [[package]] 2483 2639 name = "proc-macro-crate" ··· 2490 2646 2491 2647 [[package]] 2492 2648 name = "proc-macro2" 2493 - version = "1.0.101" 2649 + version = "1.0.103" 2494 2650 source = "registry+https://github.com/rust-lang/crates.io-index" 2495 - checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 2651 + checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 2496 2652 dependencies = [ 2497 2653 "unicode-ident", 2498 2654 ] ··· 2562 2718 2563 2719 [[package]] 2564 2720 name = "quick-xml" 2565 - version = "0.38.3" 2721 + version = "0.38.4" 2566 2722 source = "registry+https://github.com/rust-lang/crates.io-index" 2567 - checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" 2723 + checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" 2568 2724 dependencies = [ 2569 2725 "memchr", 2570 2726 ] 2571 2727 2572 2728 [[package]] 2573 2729 name = "quote" 2574 - version = "1.0.41" 2730 + version = "1.0.42" 2575 2731 source = "registry+https://github.com/rust-lang/crates.io-index" 2576 - checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 2732 + checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 2577 2733 dependencies = [ 2578 2734 "proc-macro2", 2579 2735 ] ··· 2669 2825 source = "registry+https://github.com/rust-lang/crates.io-index" 2670 2826 checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2671 2827 dependencies = [ 2672 - "bitflags 2.9.4", 2828 + "bitflags 2.10.0", 2673 2829 ] 2674 2830 2675 2831 [[package]] ··· 2707 2863 ] 2708 2864 2709 2865 [[package]] 2866 + name = "regex-lite" 2867 + version = "0.1.8" 2868 + source = "registry+https://github.com/rust-lang/crates.io-index" 2869 + checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" 2870 + 2871 + [[package]] 2710 2872 name = "regex-syntax" 2711 2873 version = "0.8.8" 2712 2874 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2718 2880 source = "registry+https://github.com/rust-lang/crates.io-index" 2719 2881 checksum = "c7314563c59c7ce31c18e23ad3dd092c37b928a0fa4e1c0a1a6504351ab411d1" 2720 2882 dependencies = [ 2721 - "gif", 2883 + "gif 0.13.3", 2722 2884 "image-webp", 2723 2885 "log", 2724 2886 "pico-args", ··· 2726 2888 "svgtypes", 2727 2889 "tiny-skia", 2728 2890 "usvg", 2729 - "zune-jpeg", 2891 + "zune-jpeg 0.4.21", 2730 2892 ] 2731 2893 2732 2894 [[package]] ··· 2759 2921 source = "registry+https://github.com/rust-lang/crates.io-index" 2760 2922 checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f" 2761 2923 dependencies = [ 2762 - "bitflags 2.9.4", 2924 + "bitflags 2.10.0", 2763 2925 "chrono", 2764 2926 "fallible-iterator", 2765 2927 "fallible-streaming-iterator", ··· 2795 2957 checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 2796 2958 2797 2959 [[package]] 2798 - name = "rustc-hash" 2799 - version = "2.1.1" 2800 - source = "registry+https://github.com/rust-lang/crates.io-index" 2801 - checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 2802 - 2803 - [[package]] 2804 2960 name = "rustc_version" 2805 2961 version = "0.4.1" 2806 2962 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2810 2966 ] 2811 2967 2812 2968 [[package]] 2969 + name = "rustix" 2970 + version = "1.1.2" 2971 + source = "registry+https://github.com/rust-lang/crates.io-index" 2972 + checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 2973 + dependencies = [ 2974 + "bitflags 2.10.0", 2975 + "errno", 2976 + "libc", 2977 + "linux-raw-sys", 2978 + "windows-sys 0.61.2", 2979 + ] 2980 + 2981 + [[package]] 2982 + name = "rustler" 2983 + version = "0.37.0" 2984 + source = "registry+https://github.com/rust-lang/crates.io-index" 2985 + checksum = "fb867bb35b291ef105abbe0a0d04bd4d7af372e023d08845698687bc254f222b" 2986 + dependencies = [ 2987 + "inventory", 2988 + "libloading", 2989 + "regex-lite", 2990 + "rustler_codegen", 2991 + ] 2992 + 2993 + [[package]] 2994 + name = "rustler_codegen" 2995 + version = "0.37.0" 2996 + source = "registry+https://github.com/rust-lang/crates.io-index" 2997 + checksum = "90993223c5ac0fb580ff966fb9477289c4e8a610a2f4639912a2639c5e7b5095" 2998 + dependencies = [ 2999 + "heck", 3000 + "inventory", 3001 + "proc-macro2", 3002 + "quote", 3003 + "syn", 3004 + ] 3005 + 3006 + [[package]] 2813 3007 name = "rustversion" 2814 3008 version = "1.0.22" 2815 3009 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2821 3015 source = "registry+https://github.com/rust-lang/crates.io-index" 2822 3016 checksum = "c85d1ccd519e61834798eb52c4e886e8c2d7d698dd3d6ce0b1b47eb8557f1181" 2823 3017 dependencies = [ 2824 - "bitflags 2.9.4", 3018 + "bitflags 2.10.0", 2825 3019 "bytemuck", 2826 3020 "core_maths", 2827 3021 "log", ··· 2855 3049 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2856 3050 2857 3051 [[package]] 2858 - name = "selectors" 2859 - version = "0.32.0" 2860 - source = "registry+https://github.com/rust-lang/crates.io-index" 2861 - checksum = "09975d3195f34dce9c7b381cb0f00c3c13381d4d3735c0f1a9c894b283b302ab" 2862 - dependencies = [ 2863 - "bitflags 2.9.4", 2864 - "cssparser", 2865 - "derive_more", 2866 - "log", 2867 - "new_debug_unreachable", 2868 - "phf", 2869 - "phf_codegen", 2870 - "precomputed-hash", 2871 - "rustc-hash", 2872 - "servo_arc", 2873 - "smallvec", 2874 - ] 2875 - 2876 - [[package]] 2877 3052 name = "semver" 2878 3053 version = "1.0.27" 2879 3054 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2919 3094 source = "registry+https://github.com/rust-lang/crates.io-index" 2920 3095 checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 2921 3096 dependencies = [ 3097 + "indexmap", 2922 3098 "itoa", 2923 3099 "memchr", 2924 3100 "ryu", ··· 2961 3137 ] 2962 3138 2963 3139 [[package]] 2964 - name = "servo_arc" 2965 - version = "0.4.1" 2966 - source = "registry+https://github.com/rust-lang/crates.io-index" 2967 - checksum = "204ea332803bd95a0b60388590d59cf6468ec9becf626e2451f1d26a1d972de4" 2968 - dependencies = [ 2969 - "stable_deref_trait", 2970 - ] 2971 - 2972 - [[package]] 2973 3140 name = "sha1" 2974 3141 version = "0.10.6" 2975 3142 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2999 3166 3000 3167 [[package]] 3001 3168 name = "signal-hook-registry" 3002 - version = "1.4.6" 3169 + version = "1.4.7" 3003 3170 source = "registry+https://github.com/rust-lang/crates.io-index" 3004 - checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 3171 + checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" 3005 3172 dependencies = [ 3006 3173 "libc", 3007 3174 ] ··· 3084 3251 ] 3085 3252 3086 3253 [[package]] 3254 + name = "streaming-iterator" 3255 + version = "0.1.9" 3256 + source = "registry+https://github.com/rust-lang/crates.io-index" 3257 + checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" 3258 + 3259 + [[package]] 3087 3260 name = "strict-num" 3088 3261 version = "0.1.1" 3089 3262 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3114 3287 source = "registry+https://github.com/rust-lang/crates.io-index" 3115 3288 checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 3116 3289 dependencies = [ 3117 - "strum_macros", 3290 + "strum_macros 0.26.4", 3291 + ] 3292 + 3293 + [[package]] 3294 + name = "strum" 3295 + version = "0.27.2" 3296 + source = "registry+https://github.com/rust-lang/crates.io-index" 3297 + checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" 3298 + dependencies = [ 3299 + "strum_macros 0.27.2", 3118 3300 ] 3119 3301 3120 3302 [[package]] ··· 3131 3313 ] 3132 3314 3133 3315 [[package]] 3316 + name = "strum_macros" 3317 + version = "0.27.2" 3318 + source = "registry+https://github.com/rust-lang/crates.io-index" 3319 + checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" 3320 + dependencies = [ 3321 + "heck", 3322 + "proc-macro2", 3323 + "quote", 3324 + "syn", 3325 + ] 3326 + 3327 + [[package]] 3134 3328 name = "subtle" 3135 3329 version = "2.6.1" 3136 3330 source = "registry+https://github.com/rust-lang/crates.io-index" 3137 3331 checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3138 3332 3139 3333 [[package]] 3334 + name = "supports-color" 3335 + version = "3.0.2" 3336 + source = "registry+https://github.com/rust-lang/crates.io-index" 3337 + checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" 3338 + dependencies = [ 3339 + "is_ci", 3340 + ] 3341 + 3342 + [[package]] 3343 + name = "supports-hyperlinks" 3344 + version = "3.1.0" 3345 + source = "registry+https://github.com/rust-lang/crates.io-index" 3346 + checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" 3347 + 3348 + [[package]] 3349 + name = "supports-unicode" 3350 + version = "3.0.0" 3351 + source = "registry+https://github.com/rust-lang/crates.io-index" 3352 + checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" 3353 + 3354 + [[package]] 3140 3355 name = "svgtypes" 3141 3356 version = "0.15.3" 3142 3357 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3148 3363 3149 3364 [[package]] 3150 3365 name = "syn" 3151 - version = "2.0.106" 3366 + version = "2.0.111" 3152 3367 source = "registry+https://github.com/rust-lang/crates.io-index" 3153 - checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 3368 + checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" 3154 3369 dependencies = [ 3155 3370 "proc-macro2", 3156 3371 "quote", ··· 3212 3427 ] 3213 3428 3214 3429 [[package]] 3430 + name = "termcolor" 3431 + version = "1.4.1" 3432 + source = "registry+https://github.com/rust-lang/crates.io-index" 3433 + checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3434 + dependencies = [ 3435 + "winapi-util", 3436 + ] 3437 + 3438 + [[package]] 3439 + name = "terminal_size" 3440 + version = "0.4.3" 3441 + source = "registry+https://github.com/rust-lang/crates.io-index" 3442 + checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 3443 + dependencies = [ 3444 + "rustix", 3445 + "windows-sys 0.60.2", 3446 + ] 3447 + 3448 + [[package]] 3449 + name = "textwrap" 3450 + version = "0.16.2" 3451 + source = "registry+https://github.com/rust-lang/crates.io-index" 3452 + checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 3453 + dependencies = [ 3454 + "unicode-linebreak", 3455 + "unicode-width 0.2.2", 3456 + ] 3457 + 3458 + [[package]] 3215 3459 name = "thin-vec" 3216 3460 version = "0.2.14" 3217 3461 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3329 3573 3330 3574 [[package]] 3331 3575 name = "tinystr" 3332 - version = "0.8.1" 3576 + version = "0.8.2" 3333 3577 source = "registry+https://github.com/rust-lang/crates.io-index" 3334 - checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 3578 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 3335 3579 dependencies = [ 3336 3580 "displaydoc", 3337 - "zerovec 0.11.4", 3581 + "serde_core", 3582 + "zerovec 0.11.5", 3338 3583 ] 3339 3584 3340 3585 [[package]] ··· 3354 3599 3355 3600 [[package]] 3356 3601 name = "tokio" 3357 - version = "1.47.1" 3602 + version = "1.48.0" 3358 3603 source = "registry+https://github.com/rust-lang/crates.io-index" 3359 - checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 3604 + checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 3360 3605 dependencies = [ 3361 - "backtrace", 3362 3606 "bytes", 3363 - "io-uring", 3364 3607 "libc", 3365 3608 "mio", 3366 3609 "pin-project-lite", 3367 3610 "signal-hook-registry", 3368 - "slab", 3369 3611 "socket2", 3370 3612 "tokio-macros", 3371 - "windows-sys 0.59.0", 3613 + "windows-sys 0.61.2", 3372 3614 ] 3373 3615 3374 3616 [[package]] 3375 3617 name = "tokio-macros" 3376 - version = "2.5.0" 3618 + version = "2.6.0" 3377 3619 source = "registry+https://github.com/rust-lang/crates.io-index" 3378 - checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 3620 + checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 3379 3621 dependencies = [ 3380 3622 "proc-macro2", 3381 3623 "quote", ··· 3384 3626 3385 3627 [[package]] 3386 3628 name = "tokio-util" 3387 - version = "0.7.16" 3629 + version = "0.7.17" 3388 3630 source = "registry+https://github.com/rust-lang/crates.io-index" 3389 - checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 3631 + checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" 3390 3632 dependencies = [ 3391 3633 "bytes", 3392 3634 "futures-core", ··· 3479 3721 3480 3722 [[package]] 3481 3723 name = "tracing-attributes" 3482 - version = "0.1.30" 3724 + version = "0.1.31" 3483 3725 source = "registry+https://github.com/rust-lang/crates.io-index" 3484 - checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 3726 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 3485 3727 dependencies = [ 3486 3728 "proc-macro2", 3487 3729 "quote", ··· 3490 3732 3491 3733 [[package]] 3492 3734 name = "tracing-core" 3493 - version = "0.1.34" 3735 + version = "0.1.35" 3494 3736 source = "registry+https://github.com/rust-lang/crates.io-index" 3495 - checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 3737 + checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" 3496 3738 dependencies = [ 3497 3739 "once_cell", 3498 3740 ] 3499 3741 3500 3742 [[package]] 3743 + name = "tree-sitter" 3744 + version = "0.25.10" 3745 + source = "registry+https://github.com/rust-lang/crates.io-index" 3746 + checksum = "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87" 3747 + dependencies = [ 3748 + "cc", 3749 + "regex", 3750 + "regex-syntax", 3751 + "serde_json", 3752 + "streaming-iterator", 3753 + "tree-sitter-language", 3754 + ] 3755 + 3756 + [[package]] 3757 + name = "tree-sitter-asm" 3758 + version = "0.24.0" 3759 + source = "registry+https://github.com/rust-lang/crates.io-index" 3760 + checksum = "743a0377253cd5505841e61ba1093a04b3a949b2b751752ff956040dda14f1bc" 3761 + dependencies = [ 3762 + "cc", 3763 + "tree-sitter-language", 3764 + ] 3765 + 3766 + [[package]] 3767 + name = "tree-sitter-bash" 3768 + version = "0.25.0" 3769 + source = "registry+https://github.com/rust-lang/crates.io-index" 3770 + checksum = "871b0606e667e98a1237ebdc1b0d7056e0aebfdc3141d12b399865d4cb6ed8a6" 3771 + dependencies = [ 3772 + "cc", 3773 + "tree-sitter-language", 3774 + ] 3775 + 3776 + [[package]] 3777 + name = "tree-sitter-c" 3778 + version = "0.24.1" 3779 + source = "registry+https://github.com/rust-lang/crates.io-index" 3780 + checksum = "1a3aad8f0129083a59fe8596157552d2bb7148c492d44c21558d68ca1c722707" 3781 + dependencies = [ 3782 + "cc", 3783 + "tree-sitter-language", 3784 + ] 3785 + 3786 + [[package]] 3787 + name = "tree-sitter-c-sharp" 3788 + version = "0.23.1" 3789 + source = "registry+https://github.com/rust-lang/crates.io-index" 3790 + checksum = "67f06accca7b45351758663b8215089e643d53bd9a660ce0349314263737fcb0" 3791 + dependencies = [ 3792 + "cc", 3793 + "tree-sitter-language", 3794 + ] 3795 + 3796 + [[package]] 3797 + name = "tree-sitter-cmake" 3798 + version = "0.7.1" 3799 + source = "registry+https://github.com/rust-lang/crates.io-index" 3800 + checksum = "7c1b35d1dd7396d24b3e826bb0f975b915ec7e9125b989d5e9d24ebb6a08509a" 3801 + dependencies = [ 3802 + "cc", 3803 + "tree-sitter-language", 3804 + ] 3805 + 3806 + [[package]] 3807 + name = "tree-sitter-comment" 3808 + version = "0.3.0" 3809 + source = "registry+https://github.com/rust-lang/crates.io-index" 3810 + checksum = "d2cf7dab05507f8f0b60e264a540c4c8bd426c0cf139af5bbd5d031bce917886" 3811 + dependencies = [ 3812 + "cc", 3813 + "tree-sitter-language", 3814 + ] 3815 + 3816 + [[package]] 3817 + name = "tree-sitter-cpp" 3818 + version = "0.23.4" 3819 + source = "registry+https://github.com/rust-lang/crates.io-index" 3820 + checksum = "df2196ea9d47b4ab4a31b9297eaa5a5d19a0b121dceb9f118f6790ad0ab94743" 3821 + dependencies = [ 3822 + "cc", 3823 + "tree-sitter-language", 3824 + ] 3825 + 3826 + [[package]] 3827 + name = "tree-sitter-css" 3828 + version = "0.25.0" 3829 + source = "registry+https://github.com/rust-lang/crates.io-index" 3830 + checksum = "a5cbc5e18f29a2c6d6435891f42569525cf95435a3e01c2f1947abcde178686f" 3831 + dependencies = [ 3832 + "cc", 3833 + "tree-sitter-language", 3834 + ] 3835 + 3836 + [[package]] 3837 + name = "tree-sitter-diff" 3838 + version = "0.1.0" 3839 + source = "registry+https://github.com/rust-lang/crates.io-index" 3840 + checksum = "dfe1e5ca280a65dfe5ba4205c1bcc84edf486464fed315db53dee6da9a335889" 3841 + dependencies = [ 3842 + "cc", 3843 + "tree-sitter-language", 3844 + ] 3845 + 3846 + [[package]] 3847 + name = "tree-sitter-elixir" 3848 + version = "0.3.4" 3849 + source = "registry+https://github.com/rust-lang/crates.io-index" 3850 + checksum = "e45d444647b4fd53d8fd32474c1b8bedc1baa22669ce3a78d083e365fa9a2d3f" 3851 + dependencies = [ 3852 + "cc", 3853 + "tree-sitter-language", 3854 + ] 3855 + 3856 + [[package]] 3857 + name = "tree-sitter-elm" 3858 + version = "5.9.0" 3859 + source = "registry+https://github.com/rust-lang/crates.io-index" 3860 + checksum = "23840259bfc74d3fc7638047002703bac8624f4969fd73226d7ed516a1b91e9c" 3861 + dependencies = [ 3862 + "cc", 3863 + "tree-sitter-language", 3864 + ] 3865 + 3866 + [[package]] 3867 + name = "tree-sitter-embedded-template" 3868 + version = "0.25.0" 3869 + source = "registry+https://github.com/rust-lang/crates.io-index" 3870 + checksum = "833d528e8fcb4e49ddb04d4d6450ddb8ac08f282a58fec94ce981c9c5dbf7e3a" 3871 + dependencies = [ 3872 + "cc", 3873 + "tree-sitter-language", 3874 + ] 3875 + 3876 + [[package]] 3877 + name = "tree-sitter-erlang" 3878 + version = "0.15.0" 3879 + source = "registry+https://github.com/rust-lang/crates.io-index" 3880 + checksum = "f2091cce4eda19c03d77928c608ac6617445a6a25691dde1e93ac0102467a6be" 3881 + dependencies = [ 3882 + "cc", 3883 + "tree-sitter-language", 3884 + ] 3885 + 3886 + [[package]] 3887 + name = "tree-sitter-fsharp" 3888 + version = "0.1.0" 3889 + source = "registry+https://github.com/rust-lang/crates.io-index" 3890 + checksum = "f2db500a0948bf37c43febe2c3d67bfb9ad690b06aaa20780a5106da6f620b41" 3891 + dependencies = [ 3892 + "cc", 3893 + "tree-sitter-language", 3894 + ] 3895 + 3896 + [[package]] 3897 + name = "tree-sitter-gleam" 3898 + version = "1.0.0" 3899 + source = "registry+https://github.com/rust-lang/crates.io-index" 3900 + checksum = "f0175c53793bda5d444360dd5add25463d18d66afb7f521d6791e2fc61bf2fb3" 3901 + dependencies = [ 3902 + "cc", 3903 + "tree-sitter-language", 3904 + ] 3905 + 3906 + [[package]] 3907 + name = "tree-sitter-go" 3908 + version = "0.25.0" 3909 + source = "registry+https://github.com/rust-lang/crates.io-index" 3910 + checksum = "c8560a4d2f835cc0d4d2c2e03cbd0dde2f6114b43bc491164238d333e28b16ea" 3911 + dependencies = [ 3912 + "cc", 3913 + "tree-sitter-language", 3914 + ] 3915 + 3916 + [[package]] 3917 + name = "tree-sitter-haskell" 3918 + version = "0.23.1" 3919 + source = "registry+https://github.com/rust-lang/crates.io-index" 3920 + checksum = "977c51e504548cba13fc27cb5a2edab2124cf6716a1934915d07ab99523b05a4" 3921 + dependencies = [ 3922 + "cc", 3923 + "tree-sitter-language", 3924 + ] 3925 + 3926 + [[package]] 3927 + name = "tree-sitter-hcl" 3928 + version = "1.1.0" 3929 + source = "registry+https://github.com/rust-lang/crates.io-index" 3930 + checksum = "5a7b2cc3d7121553b84309fab9d11b3ff3d420403eef9ae50f9fd1cd9d9cf012" 3931 + dependencies = [ 3932 + "cc", 3933 + "tree-sitter-language", 3934 + ] 3935 + 3936 + [[package]] 3937 + name = "tree-sitter-heex" 3938 + version = "0.8.1" 3939 + source = "registry+https://github.com/rust-lang/crates.io-index" 3940 + checksum = "732a4d5994094920f52c4d74bc336cd3739536d68d6140939bc62194f04f4f00" 3941 + dependencies = [ 3942 + "cc", 3943 + "tree-sitter-language", 3944 + ] 3945 + 3946 + [[package]] 3947 + name = "tree-sitter-highlight" 3948 + version = "0.25.10" 3949 + source = "registry+https://github.com/rust-lang/crates.io-index" 3950 + checksum = "adc5f880ad8d8f94e88cb81c3557024cf1a8b75e3b504c50481ed4f5a6006ff3" 3951 + dependencies = [ 3952 + "regex", 3953 + "streaming-iterator", 3954 + "thiserror 2.0.17", 3955 + "tree-sitter", 3956 + ] 3957 + 3958 + [[package]] 3959 + name = "tree-sitter-html" 3960 + version = "0.23.2" 3961 + source = "registry+https://github.com/rust-lang/crates.io-index" 3962 + checksum = "261b708e5d92061ede329babaaa427b819329a9d427a1d710abb0f67bbef63ee" 3963 + dependencies = [ 3964 + "cc", 3965 + "tree-sitter-language", 3966 + ] 3967 + 3968 + [[package]] 3969 + name = "tree-sitter-java" 3970 + version = "0.23.5" 3971 + source = "registry+https://github.com/rust-lang/crates.io-index" 3972 + checksum = "0aa6cbcdc8c679b214e616fd3300da67da0e492e066df01bcf5a5921a71e90d6" 3973 + dependencies = [ 3974 + "cc", 3975 + "tree-sitter-language", 3976 + ] 3977 + 3978 + [[package]] 3979 + name = "tree-sitter-javascript" 3980 + version = "0.25.0" 3981 + source = "registry+https://github.com/rust-lang/crates.io-index" 3982 + checksum = "68204f2abc0627a90bdf06e605f5c470aa26fdcb2081ea553a04bdad756693f5" 3983 + dependencies = [ 3984 + "cc", 3985 + "tree-sitter-language", 3986 + ] 3987 + 3988 + [[package]] 3989 + name = "tree-sitter-json" 3990 + version = "0.24.8" 3991 + source = "registry+https://github.com/rust-lang/crates.io-index" 3992 + checksum = "4d727acca406c0020cffc6cf35516764f36c8e3dc4408e5ebe2cb35a947ec471" 3993 + dependencies = [ 3994 + "cc", 3995 + "tree-sitter-language", 3996 + ] 3997 + 3998 + [[package]] 3999 + name = "tree-sitter-language" 4000 + version = "0.1.5" 4001 + source = "registry+https://github.com/rust-lang/crates.io-index" 4002 + checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8" 4003 + 4004 + [[package]] 4005 + name = "tree-sitter-lua" 4006 + version = "0.2.0" 4007 + source = "registry+https://github.com/rust-lang/crates.io-index" 4008 + checksum = "5cdb9adf0965fec58e7660cbb3a059dbb12ebeec9459e6dcbae3db004739641e" 4009 + dependencies = [ 4010 + "cc", 4011 + "tree-sitter-language", 4012 + ] 4013 + 4014 + [[package]] 4015 + name = "tree-sitter-nix" 4016 + version = "0.3.0" 4017 + source = "registry+https://github.com/rust-lang/crates.io-index" 4018 + checksum = "4952a9733f3a98f6683a0ccd1035d84ab7a52f7e84eeed58548d86765ad92de3" 4019 + dependencies = [ 4020 + "cc", 4021 + "tree-sitter-language", 4022 + ] 4023 + 4024 + [[package]] 4025 + name = "tree-sitter-objc" 4026 + version = "3.0.2" 4027 + source = "registry+https://github.com/rust-lang/crates.io-index" 4028 + checksum = "9ca8bb556423fc176f0535e79d525f783a6684d3c9da81bf9d905303c129e1d2" 4029 + dependencies = [ 4030 + "cc", 4031 + "tree-sitter-language", 4032 + ] 4033 + 4034 + [[package]] 4035 + name = "tree-sitter-ocaml" 4036 + version = "0.24.2" 4037 + source = "registry+https://github.com/rust-lang/crates.io-index" 4038 + checksum = "7d19db582b3855f56b5f9ec484170fbfb9ee60b938ec7720d76d2ee788e8b640" 4039 + dependencies = [ 4040 + "cc", 4041 + "tree-sitter-language", 4042 + ] 4043 + 4044 + [[package]] 4045 + name = "tree-sitter-php" 4046 + version = "0.24.2" 4047 + source = "registry+https://github.com/rust-lang/crates.io-index" 4048 + checksum = "0d8c17c3ab69052c5eeaa7ff5cd972dd1bc25d1b97ee779fec391ad3b5df5592" 4049 + dependencies = [ 4050 + "cc", 4051 + "tree-sitter-language", 4052 + ] 4053 + 4054 + [[package]] 4055 + name = "tree-sitter-powershell" 4056 + version = "0.25.9" 4057 + source = "registry+https://github.com/rust-lang/crates.io-index" 4058 + checksum = "ae0e37101b110badaf99aa40460915a8797ceba15fc0ed22773280377a8dffb6" 4059 + dependencies = [ 4060 + "cc", 4061 + "tree-sitter-language", 4062 + ] 4063 + 4064 + [[package]] 4065 + name = "tree-sitter-proto" 4066 + version = "0.3.0" 4067 + source = "registry+https://github.com/rust-lang/crates.io-index" 4068 + checksum = "86fa4bcb3d87081d2d2741f80425f534d9892e4bd5362037d64357a823391119" 4069 + dependencies = [ 4070 + "cc", 4071 + "tree-sitter-language", 4072 + ] 4073 + 4074 + [[package]] 4075 + name = "tree-sitter-python" 4076 + version = "0.25.0" 4077 + source = "registry+https://github.com/rust-lang/crates.io-index" 4078 + checksum = "6bf85fd39652e740bf60f46f4cda9492c3a9ad75880575bf14960f775cb74a1c" 4079 + dependencies = [ 4080 + "cc", 4081 + "tree-sitter-language", 4082 + ] 4083 + 4084 + [[package]] 4085 + name = "tree-sitter-r" 4086 + version = "1.2.0" 4087 + source = "registry+https://github.com/rust-lang/crates.io-index" 4088 + checksum = "429133cbda9f8a46e03ef3aae6abb6c3d22875f8585cad472138101bfd517255" 4089 + dependencies = [ 4090 + "cc", 4091 + "tree-sitter-language", 4092 + ] 4093 + 4094 + [[package]] 4095 + name = "tree-sitter-regex" 4096 + version = "0.25.0" 4097 + source = "registry+https://github.com/rust-lang/crates.io-index" 4098 + checksum = "bd8a59be9f0ac131fd8f062eaaba14882b2fa5a6a7882a20134cb1d60df2e625" 4099 + dependencies = [ 4100 + "cc", 4101 + "tree-sitter-language", 4102 + ] 4103 + 4104 + [[package]] 4105 + name = "tree-sitter-ruby" 4106 + version = "0.23.1" 4107 + source = "registry+https://github.com/rust-lang/crates.io-index" 4108 + checksum = "be0484ea4ef6bb9c575b4fdabde7e31340a8d2dbc7d52b321ac83da703249f95" 4109 + dependencies = [ 4110 + "cc", 4111 + "tree-sitter-language", 4112 + ] 4113 + 4114 + [[package]] 4115 + name = "tree-sitter-rust" 4116 + version = "0.24.0" 4117 + source = "registry+https://github.com/rust-lang/crates.io-index" 4118 + checksum = "4b9b18034c684a2420722be8b2a91c9c44f2546b631c039edf575ccba8c61be1" 4119 + dependencies = [ 4120 + "cc", 4121 + "tree-sitter-language", 4122 + ] 4123 + 4124 + [[package]] 4125 + name = "tree-sitter-scala" 4126 + version = "0.24.0" 4127 + source = "registry+https://github.com/rust-lang/crates.io-index" 4128 + checksum = "7516aeb3d1f40ede8e3045b163e86993b3434514dd06c34c0b75e782d9a0b251" 4129 + dependencies = [ 4130 + "cc", 4131 + "tree-sitter-language", 4132 + ] 4133 + 4134 + [[package]] 4135 + name = "tree-sitter-sequel" 4136 + version = "0.3.11" 4137 + source = "registry+https://github.com/rust-lang/crates.io-index" 4138 + checksum = "9d198ad3c319c02e43c21efa1ec796b837afcb96ffaef1a40c1978fbdcec7d17" 4139 + dependencies = [ 4140 + "cc", 4141 + "tree-sitter-language", 4142 + ] 4143 + 4144 + [[package]] 4145 + name = "tree-sitter-svelte-ng" 4146 + version = "1.0.2" 4147 + source = "registry+https://github.com/rust-lang/crates.io-index" 4148 + checksum = "ef0a71f9cf5e94373cc86c64893630c8a29bb25d3390a248268d08af2165fa37" 4149 + dependencies = [ 4150 + "cc", 4151 + "tree-sitter-language", 4152 + ] 4153 + 4154 + [[package]] 4155 + name = "tree-sitter-swift" 4156 + version = "0.7.1" 4157 + source = "registry+https://github.com/rust-lang/crates.io-index" 4158 + checksum = "4ef216011c3e3df4fa864736f347cb8d509b1066cf0c8549fb1fd81ac9832e59" 4159 + dependencies = [ 4160 + "cc", 4161 + "tree-sitter-language", 4162 + ] 4163 + 4164 + [[package]] 4165 + name = "tree-sitter-toml-ng" 4166 + version = "0.7.0" 4167 + source = "registry+https://github.com/rust-lang/crates.io-index" 4168 + checksum = "e9adc2c898ae49730e857d75be403da3f92bb81d8e37a2f918a08dd10de5ebb1" 4169 + dependencies = [ 4170 + "cc", 4171 + "tree-sitter-language", 4172 + ] 4173 + 4174 + [[package]] 4175 + name = "tree-sitter-typescript" 4176 + version = "0.23.2" 4177 + source = "registry+https://github.com/rust-lang/crates.io-index" 4178 + checksum = "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff" 4179 + dependencies = [ 4180 + "cc", 4181 + "tree-sitter-language", 4182 + ] 4183 + 4184 + [[package]] 4185 + name = "tree-sitter-xml" 4186 + version = "0.7.0" 4187 + source = "registry+https://github.com/rust-lang/crates.io-index" 4188 + checksum = "e670041f591d994f54d597ddcd8f4ebc930e282c4c76a42268743b71f0c8b6b3" 4189 + dependencies = [ 4190 + "cc", 4191 + "tree-sitter-language", 4192 + ] 4193 + 4194 + [[package]] 4195 + name = "tree-sitter-yaml" 4196 + version = "0.7.2" 4197 + source = "registry+https://github.com/rust-lang/crates.io-index" 4198 + checksum = "53c223db85f05e34794f065454843b0668ebc15d240ada63e2b5939f43ce7c97" 4199 + dependencies = [ 4200 + "cc", 4201 + "tree-sitter-language", 4202 + ] 4203 + 4204 + [[package]] 4205 + name = "tree-sitter-zig" 4206 + version = "1.1.2" 4207 + source = "registry+https://github.com/rust-lang/crates.io-index" 4208 + checksum = "ab11fc124851b0db4dd5e55983bbd9631192e93238389dcd44521715e5d53e28" 4209 + dependencies = [ 4210 + "cc", 4211 + "tree-sitter-language", 4212 + ] 4213 + 4214 + [[package]] 3501 4215 name = "ttf-parser" 3502 4216 version = "0.24.1" 3503 4217 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3661 4375 checksum = "722b0d6dfd05aa5bb7da7f282586f624f452e3f285cd3a10ac0d7e99f3bc3048" 3662 4376 dependencies = [ 3663 4377 "az", 3664 - "bitflags 2.9.4", 4378 + "bitflags 2.10.0", 3665 4379 "bumpalo", 3666 4380 "chinese-number", 3667 4381 "ciborium", ··· 3827 4541 ] 3828 4542 3829 4543 [[package]] 4544 + name = "ucd-trie" 4545 + version = "0.1.7" 4546 + source = "registry+https://github.com/rust-lang/crates.io-index" 4547 + checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 4548 + 4549 + [[package]] 3830 4550 name = "uncased" 3831 4551 version = "0.9.10" 3832 4552 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3851 4571 checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" 3852 4572 dependencies = [ 3853 4573 "serde", 3854 - "tinystr 0.8.1", 4574 + "tinystr 0.8.2", 3855 4575 ] 3856 4576 3857 4577 [[package]] ··· 3880 4600 3881 4601 [[package]] 3882 4602 name = "unicode-ident" 3883 - version = "1.0.19" 4603 + version = "1.0.22" 3884 4604 source = "registry+https://github.com/rust-lang/crates.io-index" 3885 - checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 4605 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 4606 + 4607 + [[package]] 4608 + name = "unicode-linebreak" 4609 + version = "0.1.5" 4610 + source = "registry+https://github.com/rust-lang/crates.io-index" 4611 + checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 3886 4612 3887 4613 [[package]] 3888 4614 name = "unicode-math-class" ··· 3922 4648 version = "0.1.0" 3923 4649 source = "registry+https://github.com/rust-lang/crates.io-index" 3924 4650 checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" 4651 + 4652 + [[package]] 4653 + name = "unicode-width" 4654 + version = "0.1.14" 4655 + source = "registry+https://github.com/rust-lang/crates.io-index" 4656 + checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 4657 + 4658 + [[package]] 4659 + name = "unicode-width" 4660 + version = "0.2.2" 4661 + source = "registry+https://github.com/rust-lang/crates.io-index" 4662 + checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 3925 4663 3926 4664 [[package]] 3927 4665 name = "universal-hash" ··· 3997 4735 checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 3998 4736 3999 4737 [[package]] 4738 + name = "v_htmlescape" 4739 + version = "0.15.8" 4740 + source = "registry+https://github.com/rust-lang/crates.io-index" 4741 + checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" 4742 + 4743 + [[package]] 4000 4744 name = "vcpkg" 4001 4745 version = "0.2.15" 4002 4746 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4078 4822 4079 4823 [[package]] 4080 4824 name = "wasm-bindgen" 4081 - version = "0.2.104" 4825 + version = "0.2.105" 4082 4826 source = "registry+https://github.com/rust-lang/crates.io-index" 4083 - checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" 4827 + checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 4084 4828 dependencies = [ 4085 4829 "cfg-if", 4086 4830 "once_cell", ··· 4090 4834 ] 4091 4835 4092 4836 [[package]] 4093 - name = "wasm-bindgen-backend" 4094 - version = "0.2.104" 4095 - source = "registry+https://github.com/rust-lang/crates.io-index" 4096 - checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" 4097 - dependencies = [ 4098 - "bumpalo", 4099 - "log", 4100 - "proc-macro2", 4101 - "quote", 4102 - "syn", 4103 - "wasm-bindgen-shared", 4104 - ] 4105 - 4106 - [[package]] 4107 4837 name = "wasm-bindgen-macro" 4108 - version = "0.2.104" 4838 + version = "0.2.105" 4109 4839 source = "registry+https://github.com/rust-lang/crates.io-index" 4110 - checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" 4840 + checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 4111 4841 dependencies = [ 4112 4842 "quote", 4113 4843 "wasm-bindgen-macro-support", ··· 4115 4845 4116 4846 [[package]] 4117 4847 name = "wasm-bindgen-macro-support" 4118 - version = "0.2.104" 4848 + version = "0.2.105" 4119 4849 source = "registry+https://github.com/rust-lang/crates.io-index" 4120 - checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" 4850 + checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 4121 4851 dependencies = [ 4852 + "bumpalo", 4122 4853 "proc-macro2", 4123 4854 "quote", 4124 4855 "syn", 4125 - "wasm-bindgen-backend", 4126 4856 "wasm-bindgen-shared", 4127 4857 ] 4128 4858 4129 4859 [[package]] 4130 4860 name = "wasm-bindgen-shared" 4131 - version = "0.2.104" 4861 + version = "0.2.105" 4132 4862 source = "registry+https://github.com/rust-lang/crates.io-index" 4133 - checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" 4863 + checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 4134 4864 dependencies = [ 4135 4865 "unicode-ident", 4136 4866 ] ··· 4185 4915 source = "registry+https://github.com/rust-lang/crates.io-index" 4186 4916 checksum = "d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185" 4187 4917 dependencies = [ 4188 - "bitflags 2.9.4", 4918 + "bitflags 2.10.0", 4189 4919 "indexmap", 4190 4920 ] 4191 4921 4192 4922 [[package]] 4193 4923 name = "weezl" 4194 - version = "0.1.10" 4924 + version = "0.1.12" 4195 4925 source = "registry+https://github.com/rust-lang/crates.io-index" 4196 - checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" 4926 + checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" 4197 4927 4198 4928 [[package]] 4199 4929 name = "wildmatch" 4200 - version = "2.5.0" 4930 + version = "2.6.1" 4201 4931 source = "registry+https://github.com/rust-lang/crates.io-index" 4202 - checksum = "39b7d07a236abaef6607536ccfaf19b396dbe3f5110ddb73d39f4562902ed382" 4932 + checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68" 4203 4933 4204 4934 [[package]] 4205 4935 name = "winapi" ··· 4502 5232 4503 5233 [[package]] 4504 5234 name = "winnow" 4505 - version = "0.7.13" 5235 + version = "0.7.14" 4506 5236 source = "registry+https://github.com/rust-lang/crates.io-index" 4507 - checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 5237 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 4508 5238 dependencies = [ 4509 5239 "memchr", 4510 5240 ] ··· 4523 5253 4524 5254 [[package]] 4525 5255 name = "writeable" 4526 - version = "0.6.1" 5256 + version = "0.6.2" 4527 5257 source = "registry+https://github.com/rust-lang/crates.io-index" 4528 - checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 5258 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 4529 5259 4530 5260 [[package]] 4531 5261 name = "xmlparser" ··· 4562 5292 4563 5293 [[package]] 4564 5294 name = "yoke" 4565 - version = "0.8.0" 5295 + version = "0.8.1" 4566 5296 source = "registry+https://github.com/rust-lang/crates.io-index" 4567 - checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 5297 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 4568 5298 dependencies = [ 4569 - "serde", 4570 5299 "stable_deref_trait", 4571 - "yoke-derive 0.8.0", 5300 + "yoke-derive 0.8.1", 4572 5301 "zerofrom", 4573 5302 ] 4574 5303 ··· 4586 5315 4587 5316 [[package]] 4588 5317 name = "yoke-derive" 4589 - version = "0.8.0" 5318 + version = "0.8.1" 4590 5319 source = "registry+https://github.com/rust-lang/crates.io-index" 4591 - checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 5320 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 4592 5321 dependencies = [ 4593 5322 "proc-macro2", 4594 5323 "quote", ··· 4598 5327 4599 5328 [[package]] 4600 5329 name = "zerocopy" 4601 - version = "0.8.27" 5330 + version = "0.8.30" 4602 5331 source = "registry+https://github.com/rust-lang/crates.io-index" 4603 - checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 5332 + checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" 4604 5333 dependencies = [ 4605 5334 "zerocopy-derive", 4606 5335 ] 4607 5336 4608 5337 [[package]] 4609 5338 name = "zerocopy-derive" 4610 - version = "0.8.27" 5339 + version = "0.8.30" 4611 5340 source = "registry+https://github.com/rust-lang/crates.io-index" 4612 - checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 5341 + checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" 4613 5342 dependencies = [ 4614 5343 "proc-macro2", 4615 5344 "quote", ··· 4651 5380 4652 5381 [[package]] 4653 5382 name = "zerotrie" 4654 - version = "0.2.2" 5383 + version = "0.2.3" 4655 5384 source = "registry+https://github.com/rust-lang/crates.io-index" 4656 - checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 5385 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 4657 5386 dependencies = [ 4658 5387 "displaydoc", 4659 - "yoke 0.8.0", 5388 + "yoke 0.8.1", 4660 5389 "zerofrom", 4661 5390 ] 4662 5391 ··· 4674 5403 4675 5404 [[package]] 4676 5405 name = "zerovec" 4677 - version = "0.11.4" 5406 + version = "0.11.5" 4678 5407 source = "registry+https://github.com/rust-lang/crates.io-index" 4679 - checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 5408 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 4680 5409 dependencies = [ 4681 - "yoke 0.8.0", 5410 + "serde", 5411 + "yoke 0.8.1", 4682 5412 "zerofrom", 4683 - "zerovec-derive 0.11.1", 5413 + "zerovec-derive 0.11.2", 4684 5414 ] 4685 5415 4686 5416 [[package]] ··· 4696 5426 4697 5427 [[package]] 4698 5428 name = "zerovec-derive" 4699 - version = "0.11.1" 5429 + version = "0.11.2" 4700 5430 source = "registry+https://github.com/rust-lang/crates.io-index" 4701 - checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 5431 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 4702 5432 dependencies = [ 4703 5433 "proc-macro2", 4704 5434 "quote", ··· 4710 5440 version = "0.4.12" 4711 5441 source = "registry+https://github.com/rust-lang/crates.io-index" 4712 5442 checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" 5443 + 5444 + [[package]] 5445 + name = "zune-core" 5446 + version = "0.5.0" 5447 + source = "registry+https://github.com/rust-lang/crates.io-index" 5448 + checksum = "111f7d9820f05fd715df3144e254d6fc02ee4088b0644c0ffd0efc9e6d9d2773" 4713 5449 4714 5450 [[package]] 4715 5451 name = "zune-jpeg" ··· 4717 5453 source = "registry+https://github.com/rust-lang/crates.io-index" 4718 5454 checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" 4719 5455 dependencies = [ 4720 - "zune-core", 5456 + "zune-core 0.4.12", 5457 + ] 5458 + 5459 + [[package]] 5460 + name = "zune-jpeg" 5461 + version = "0.5.5" 5462 + source = "registry+https://github.com/rust-lang/crates.io-index" 5463 + checksum = "dc6fb7703e32e9a07fb3f757360338b3a567a5054f21b5f52a666752e333d58e" 5464 + dependencies = [ 5465 + "zune-core 0.5.0", 4721 5466 ]
+2 -1
Cargo.toml
··· 6 6 7 7 [dependencies] 8 8 chrono = { version = "0.4", features = ["serde"] } 9 - lol_html = "2.7.0" 10 9 maud = { version = "0.27", features = ["poem"] } 11 10 poem = { version = "3", features = ["static-files", "chrono", "cookie"] } 12 11 rand = "0.9" ··· 22 21 typst-render = "0.13.0" 23 22 typst-as-lib = { version = "0.14.0", features = ["typst-kit-fonts"] } 24 23 derive_typst_intoval = "0.5.0" 24 + autumnus = { version = "0.7", features = ["all-languages"]} 25 + makup = { git = "https://tangled.org/j0.lol/makup", version = "0.1.0" } 25 26 26 27 [build-dependencies] 27 28 vergen-git2 = { version = "1", features = ["build", "cargo", "rustc", "si"] }
+2 -95
bun.lock
··· 8 8 }, 9 9 "devDependencies": { 10 10 "@types/bun": "latest", 11 - "shiki": "^3.15.0", 12 11 }, 13 12 "peerDependencies": { 14 13 "typescript": "^5", ··· 16 15 }, 17 16 }, 18 17 "packages": { 19 - "@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], 20 - 21 - "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], 22 - 23 - "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], 24 - 25 - "@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], 26 - 27 - "@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], 28 - 29 - "@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], 30 - 31 - "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], 32 - 33 - "@types/bun": ["@types/bun@1.3.2", "", { "dependencies": { "bun-types": "1.3.2" } }, "sha512-t15P7k5UIgHKkxwnMNkJbWlh/617rkDGEdSsDbu+qNHTaz9SKf7aC8fiIlUdD5RPpH6GEkP0cK7WlvmrEBRtWg=="], 34 - 35 - "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], 36 - 37 - "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], 18 + "@types/bun": ["@types/bun@1.3.3", "", { "dependencies": { "bun-types": "1.3.3" } }, "sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g=="], 38 19 39 20 "@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], 40 21 41 - "@types/react": ["@types/react@19.2.5", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw=="], 42 - 43 - "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], 44 - 45 - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], 46 - 47 - "bun-types": ["bun-types@1.3.2", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-i/Gln4tbzKNuxP70OWhJRZz1MRfvqExowP7U6JKoI8cntFrtxg7RJK3jvz7wQW54UuvNC8tbKHHri5fy74FVqg=="], 48 - 49 - "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], 50 - 51 - "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], 52 - 53 - "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], 54 - 55 - "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], 56 - 57 - "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], 58 - 59 - "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], 60 - 61 - "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], 62 - 63 - "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], 64 - 65 - "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], 66 - 67 - "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], 68 - 69 - "mdast-util-to-hast": ["mdast-util-to-hast@13.2.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA=="], 70 - 71 - "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], 72 - 73 - "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], 74 - 75 - "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], 76 - 77 - "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], 78 - 79 - "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], 22 + "bun-types": ["bun-types@1.3.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ=="], 80 23 81 24 "modern-normalize": ["modern-normalize@3.0.1", "", {}, "sha512-VqlMdYi59Uch6fnUPxnpijWUQe+TW6zeWCvyr6Mb7JibheHzSuAAoJi2c71ZwIaWKpECpGpYHoaaBp6rBRr+/g=="], 82 25 83 - "oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="], 84 - 85 - "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="], 86 - 87 - "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], 88 - 89 - "regex": ["regex@6.0.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA=="], 90 - 91 - "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], 92 - 93 - "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], 94 - 95 - "shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], 96 - 97 - "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], 98 - 99 - "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], 100 - 101 - "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], 102 - 103 26 "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], 104 27 105 28 "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], 106 - 107 - "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], 108 - 109 - "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], 110 - 111 - "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], 112 - 113 - "unist-util-visit": ["unist-util-visit@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="], 114 - 115 - "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], 116 - 117 - "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], 118 - 119 - "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], 120 - 121 - "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], 122 29 } 123 30 }
+2 -3
package.json
··· 4 4 "type": "module", 5 5 "private": true, 6 6 "devDependencies": { 7 - "@types/bun": "latest", 8 - "shiki": "^3.15.0" 7 + "@types/bun": "latest" 9 8 }, 10 9 "peerDependencies": { 11 - "typescript": "^5" 10 + "typescript": "^5.9.3" 12 11 }, 13 12 "dependencies": { 14 13 "modern-normalize": "^3.0.1"
+3 -54
src/feed.rs
··· 1 1 use atom_syndication::{Content, Entry, EntryBuilder, FeedBuilder, Link, Person}; 2 2 use chrono::Utc; 3 - use lol_html::{RewriteStrSettings, comments, element, html_content::ContentType, rewrite_str}; 4 3 use poem::{IntoResponse, handler, web::Data}; 5 4 6 5 use crate::{ 7 6 D, W, 8 - post::fetch_all_posts, 9 - template::{SpeechCharacter, SpeechDetails, SpeechEmotion, render_speech}, 7 + post::{fetch_all_posts, render::render_post_nocss}, 10 8 }; 11 9 12 10 const HOST: &str = "https://j0.lol"; ··· 22 20 name: "Jo Null".to_owned(), 23 21 ..Default::default() 24 22 }; 23 + 25 24 #[allow(clippy::expect_used)] 26 - let contents = rewrite_str( 27 - &post.contents, 28 - RewriteStrSettings { 29 - element_content_handlers: vec![ 30 - element!("speech-box", |el| { 31 - let char = el.get_attribute("character").unwrap_or("deer".to_string()); 32 - let emotion = 33 - el.get_attribute("emotion").unwrap_or("neutral".to_string()); 34 - 35 - let SpeechDetails { class: _, alt, src } = render_speech( 36 - &match char.as_ref() { 37 - "you" => SpeechCharacter::You, 38 - _ => SpeechCharacter::Deer, 39 - }, 40 - &match emotion.as_ref() { 41 - "worried" => SpeechEmotion::Worried, 42 - "shocked" => SpeechEmotion::Shocked, 43 - "happy" => SpeechEmotion::Happy, 44 - _ => SpeechEmotion::Neutral, 45 - }, 46 - ); 47 - 48 - el.set_tag_name("div")?; 49 - el.before( 50 - &format!( 51 - r#" 52 - <table> 53 - <tbody> 54 - <td> 55 - <img width="120" height="120" src="{src}" alt="{alt}"> 56 - </td> 57 - <td> 58 - "# 59 - ), 60 - ContentType::Html, 61 - ); 62 - el.after("</td></tbody></table>", ContentType::Html); 63 - 64 - Ok(()) 65 - }), 66 - comments!("pre > code", |c| { 67 - // for prism.js html-in-comments 68 - c.replace(c.text().trim(), ContentType::Text); 69 - 70 - Ok(()) 71 - }), 72 - ], 73 - ..RewriteStrSettings::new() 74 - }, 75 - ) 76 - .expect("HTML rewriting should not fail for RSS feed generation"); 25 + let contents = render_post_nocss(&post.contents).expect("HTML parse fail in feed"); 77 26 78 27 entry 79 28 .link(Link {
-29
src/highlighter.js
··· 1 - import { codeToHtml } from 'shiki'; 2 - 3 - function normalizeSourceCode(str) { 4 - const trimmed = str.trim(); 5 - if (trimmed.startsWith("<!--") && trimmed.endsWith("-->")) { 6 - str = trimmed.replace(new RegExp('-->$'), "").replace(new RegExp('^<!--'), ""); 7 - } 8 - return str.trim(); 9 - } 10 - export function highlightAll() { 11 - document.querySelectorAll("pre > code").forEach(async (el) => { 12 - 13 - const lang = el.classList.values().filter((s) => s.startsWith("language-")).map((s) => s.replace("language-", "")).toArray()[0] ?? "plain"; 14 - 15 - const code = normalizeSourceCode(el.innerHTML); 16 - 17 - console.log(lang); 18 - 19 - const html = await codeToHtml(code, { 20 - lang: lang, 21 - themes: { 22 - light: 'min-light', 23 - dark: 'catppuccin-mocha', 24 - } 25 - }); 26 - 27 - el.parentElement.outerHTML = `<div class="code-block"><div class="code-language">${lang}</div>${html}</div>`; 28 - }); 29 - }
+1 -6
src/index.js
··· 1 - import { highlightAll } from './highlighter.js'; 2 - import './login.js'; 3 - 4 - highlightAll(); 5 - 6 - window.highlightAll = { highlightAll }; 1 + import "./login.js";
+12 -13
src/main.rs
··· 15 15 pub mod post; 16 16 pub mod template; 17 17 18 - use std::{ 19 - env, 20 - sync::{Arc, Mutex}, 21 - }; 22 - 23 - use poem::{ 24 - EndpointExt, Route, Server, endpoint::StaticFilesEndpoint, get, listener::TcpListener, 25 - middleware::CookieJarManager, web::Data, 26 - }; 27 - use rusqlite::Connection; 28 - 29 18 use crate::{ 30 19 feed::feed as feed_handler, 31 20 og_image::og_image_handler, 32 21 other_pages::{contact, index, projects}, 33 22 post::{ 34 - edit_post, list_posts, login, new_post, submit_edited_post, submit_new_post, update_draft, 35 - view_post, 23 + edit_post, list_posts, login, new_post, render_draft, submit_edited_post, submit_new_post, 24 + update_draft, view_post, 36 25 }, 26 + }; 27 + use poem::{ 28 + EndpointExt, Route, Server, endpoint::StaticFilesEndpoint, get, listener::TcpListener, 29 + middleware::CookieJarManager, web::Data, 30 + }; 31 + use rusqlite::Connection; 32 + use std::{ 33 + env, 34 + sync::{Arc, Mutex}, 37 35 }; 38 36 39 37 type WrappedConnection = Arc<Mutex<Connection>>; ··· 53 51 .at("/blog", get(list_posts)) 54 52 .at("/blog/new", get(new_post).post(submit_new_post)) 55 53 .at("/blog/new/sync", poem::post(update_draft)) 54 + .at("/blog/edit/render", poem::post(render_draft)) 56 55 .at("/blog/edit/:slug", get(edit_post).post(submit_edited_post)) 57 56 .at("/blog/:slug", get(view_post)) 58 57 .at("/og-image/:slug", get(og_image_handler))
+3
src/post.rs
··· 1 1 pub mod admin; 2 2 pub mod fetch; 3 3 pub mod list; 4 + pub mod render; 4 5 pub mod view; 5 6 6 7 use std::fs::read_to_string; 7 8 9 + pub use admin::render_draft; 8 10 pub use admin::{edit_post, login, new_post, submit_edited_post, submit_new_post, update_draft}; 9 11 use chrono::{DateTime, Datelike, FixedOffset, Local, NaiveDateTime, Utc}; 10 12 pub use fetch::fetch_all_posts; 11 13 pub use list::list_posts; 12 14 use maud::{Markup, html}; 15 + pub use render::render_post; 13 16 use serde::Deserialize; 14 17 pub use view::view_post; 15 18 const ISO8601_DATE: &str = "%Y-%m-%dT%H:%M";
+17 -2
src/post/admin.rs
··· 14 14 use crate::{ 15 15 D, W, 16 16 error::{AppError, Result}, 17 + post::render_post, 17 18 template::header_extra, 18 19 }; 19 20 ··· 43 44 pub category: Option<String>, 44 45 pub bsky_uri: Option<String>, 45 46 pub creation_datetime: String, 47 + } 48 + 49 + #[derive(Deserialize)] 50 + pub struct RenderDraftForm { 51 + pub contents: String, 46 52 } 47 53 48 54 #[derive(Deserialize)] ··· 222 228 223 229 let post_data = PostData { 224 230 title: form.title, 225 - contents: form.contents, 231 + contents: form.contents.clone(), 226 232 slug: form.slug, 227 233 subtitle: form.subtitle, 228 234 category: form.category, ··· 232 238 233 239 save_post(conn, &post_data, PostOperation::UpdateDraft)?; 234 240 235 - Ok("Draft saved".into_response()) 241 + let rendered = render_post(&form.contents)?; 242 + Ok(rendered.into_response()) 243 + } 244 + 245 + #[handler] 246 + pub fn render_draft(cookie_jar: &CookieJar, Json(form): Json<RenderDraftForm>) -> Result<Response> { 247 + check_auth(cookie_jar)?; 248 + 249 + let rendered = render_post(&form.contents)?; 250 + Ok(rendered.into_response()) 236 251 } 237 252 238 253 fn save_post(conn: &W, post_data: &PostData, operation: PostOperation) -> Result<()> {
+130
src/post/render.rs
··· 1 + #![allow(clippy::needless_pass_by_value)] 2 + 3 + use crate::template::{SpeechDetails, render_speech, speech}; 4 + use crate::{ 5 + error::{AppError, Result}, 6 + template::{SpeechCharacter, SpeechEmotion}, 7 + }; 8 + use autumnus::{formatter::Formatter, languages::Language}; 9 + use makup::Rewriter; 10 + use maud::{PreEscaped, html}; 11 + use std::collections::HashMap; 12 + 13 + fn speech_box(contents: &str, attrs: HashMap<&str, &str>) -> String { 14 + let char = attrs.get("character").unwrap_or(&"deer"); 15 + let emotion = attrs.get("emotion").unwrap_or(&"neutral"); 16 + 17 + speech( 18 + &match *char { 19 + "you" => SpeechCharacter::You, 20 + _ => SpeechCharacter::Deer, 21 + }, 22 + &match *emotion { 23 + "worried" => SpeechEmotion::Worried, 24 + "shocked" => SpeechEmotion::Shocked, 25 + "happy" => SpeechEmotion::Happy, 26 + _ => SpeechEmotion::Neutral, 27 + }, 28 + &html! { (PreEscaped(contents)) }, 29 + ) 30 + .into_string() 31 + } 32 + 33 + fn speech_box_nocss(contents: &str, attrs: HashMap<&str, &str>) -> String { 34 + let char = attrs.get("character").unwrap_or(&"deer"); 35 + let emotion = attrs.get("emotion").unwrap_or(&"neutral"); 36 + 37 + let SpeechDetails { class: _, alt, src } = render_speech( 38 + &match *char { 39 + "you" => SpeechCharacter::You, 40 + _ => SpeechCharacter::Deer, 41 + }, 42 + &match *emotion { 43 + "worried" => SpeechEmotion::Worried, 44 + "shocked" => SpeechEmotion::Shocked, 45 + "happy" => SpeechEmotion::Happy, 46 + _ => SpeechEmotion::Neutral, 47 + }, 48 + ); 49 + 50 + html! { 51 + table { 52 + tbody { 53 + td { 54 + img width="120" height="120" src=(src) alt=(alt); 55 + } 56 + td { 57 + span { (PreEscaped(contents))} 58 + } 59 + } 60 + } 61 + } 62 + .into_string() 63 + } 64 + // Safety: function is not allowed to error. Annoyingly. 65 + #[allow(clippy::expect_used, clippy::unwrap_used)] 66 + fn code_block(contents: &str, attrs: HashMap<&str, &str>) -> String { 67 + let lang = attrs 68 + .get("lang") 69 + .or_else(|| attrs.get("language")) 70 + .unwrap_or(&"plain"); 71 + 72 + let formatter = autumnus::HtmlInlineBuilder::new() 73 + .lang(Language::guess(lang, contents)) 74 + .source(contents) 75 + .theme(Some( 76 + autumnus::themes::get("catppuccin_mocha").expect("Built in!"), 77 + )) 78 + .build() 79 + .expect("i hope this doesnt crash!"); 80 + 81 + let mut output = Vec::new(); 82 + formatter.format(&mut output).unwrap(); 83 + 84 + String::from_utf8(output).unwrap() 85 + } 86 + 87 + fn code_block_nocss(contents: &str, attrs: HashMap<&str, &str>) -> String { 88 + let lang = attrs 89 + .get("lang") 90 + .or_else(|| attrs.get("language")) 91 + .unwrap_or(&"plain"); 92 + 93 + html! { 94 + figure { 95 + pre { 96 + code { 97 + (contents) 98 + } 99 + } 100 + figcaption { 101 + "Code block in " (lang) " language" 102 + } 103 + } 104 + } 105 + .into_string() 106 + } 107 + 108 + pub fn render_post(markup: &str) -> Result<String> { 109 + let mut rewriter = Rewriter::default(); 110 + rewriter.add_component("speech-box", speech_box); 111 + rewriter.add_component("code-block", code_block); 112 + 113 + let contents = rewriter 114 + .rewrite(markup) 115 + .map_err(|e| AppError::internal_server_error(e.to_string()))?; 116 + 117 + Ok(contents) 118 + } 119 + 120 + pub fn render_post_nocss(markup: &str) -> Result<String> { 121 + let mut rewriter = Rewriter::default(); 122 + rewriter.add_component("speech-box", speech_box_nocss); 123 + rewriter.add_component("code-block", code_block_nocss); 124 + 125 + let contents = rewriter 126 + .rewrite(markup) 127 + .map_err(|e| AppError::internal_server_error(e.to_string()))?; 128 + 129 + Ok(contents) 130 + }
+8 -42
src/post/view.rs
··· 1 - use lol_html::{RewriteStrSettings, element, html_content::ContentType, rewrite_str}; 1 + use super::{clock_icon, fetch::fetch_post, format_date}; 2 + use crate::{ 3 + D, W, 4 + error::Result, 5 + post::render_post, 6 + template::{footer, header_extra, navbar}, 7 + }; 2 8 use maud::{PreEscaped, html}; 3 9 use poem::{ 4 10 IntoResponse, Response, handler, 5 11 web::{Data, Path}, 6 12 }; 7 13 8 - use super::{clock_icon, fetch::fetch_post, format_date}; 9 - use crate::{ 10 - D, W, 11 - error::{AppError, Result}, 12 - template::{ 13 - SpeechCharacter, SpeechDetails, SpeechEmotion, footer, header_extra, navbar, render_speech, 14 - }, 15 - }; 16 - 17 14 #[handler] 18 15 pub fn view_post(Path(slug): Path<String>, Data(conn): D<&W>) -> Result<Response> { 19 16 let post = fetch_post(slug, conn)?; 20 - 21 - let contents = rewrite_str( 22 - &post.contents, 23 - RewriteStrSettings { 24 - element_content_handlers: vec![element!("speech-box", |el| { 25 - let char = el.get_attribute("character").unwrap_or("deer".to_string()); 26 - let emotion = el.get_attribute("emotion").unwrap_or("neutral".to_string()); 27 - 28 - let SpeechDetails { class, alt, src } = render_speech( 29 - &match char.as_ref() { 30 - "you" => SpeechCharacter::You, 31 - _ => SpeechCharacter::Deer, 32 - }, 33 - &match emotion.as_ref() { 34 - "worried" => SpeechEmotion::Worried, 35 - "shocked" => SpeechEmotion::Shocked, 36 - "happy" => SpeechEmotion::Happy, 37 - _ => SpeechEmotion::Neutral, 38 - }, 39 - ); 40 - 41 - el.set_tag_name("div")?; 42 - el.set_attribute("class", &format!("dialog speech {class}"))?; 43 - el.before(&format!(r#"<div class="dialog-box"> <img class="raw dialog profile" width="120" height="120" src="{src}" alt="{alt}"> "#), ContentType::Html); 44 - el.after("</div>", ContentType::Html); 45 - 46 - Ok(()) 47 - })], 48 - ..RewriteStrSettings::new() 49 - }, 50 - ) 51 - .map_err(|e| AppError::internal_server_error(e.to_string()))?; 17 + let contents = render_post(&post.contents)?; 52 18 53 19 let datestring = format_date(post.creation_datetime); 54 20
+9 -9
static/css/style.css
··· 635 635 } 636 636 637 637 @media (prefers-color-scheme: dark) { 638 - .shiki, 639 - .shiki span { 640 - color: var(--shiki-dark) !important; 641 - background-color: var(--shiki-dark-bg) !important; 642 - /* Optional, if you also want font styles */ 643 - font-style: var(--shiki-dark-font-style) !important; 644 - font-weight: var(--shiki-dark-font-weight) !important; 645 - text-decoration: var(--shiki-dark-text-decoration) !important; 646 - } 638 + .shiki, 639 + .shiki span { 640 + color: var(--shiki-dark) !important; 641 + background-color: var(--shiki-dark-bg) !important; 642 + /* Optional, if you also want font styles */ 643 + font-style: var(--shiki-dark-font-style) !important; 644 + font-weight: var(--shiki-dark-font-weight) !important; 645 + text-decoration: var(--shiki-dark-text-decoration) !important; 646 + } 647 647 } 648 648 649 649 div.code-block {
+30 -11
static/js/post-editor.js
··· 7 7 const editor = document.querySelector("#editor"); 8 8 const editorPreview = document.querySelector("#editorPreview"); 9 9 10 - function preview() { 10 + function preview(render) { 11 11 editorPreview.innerHTML = ` 12 12 <h1 class="blog-head">${inputTitle.value}</h1> 13 13 <span class="blog-subhead"><em>${inputSubtitle.value}</em></span> ··· 16 16 </p> 17 17 <hr class='frontmatter'> 18 18 `; 19 - editorPreview.innerHTML += editor.value; 19 + editorPreview.innerHTML += render; 20 20 } 21 21 22 22 // Enhanced editor features ··· 66 66 target.selectionEnd = selectionEnd + shiftAmount; 67 67 } 68 68 69 - preview?.(); 69 + updatePreview(false); 70 70 highlightAll(); 71 71 } 72 72 }); ··· 89 89 const caretPos = selectionStart + 1 + indent.length; 90 90 el.selectionStart = el.selectionEnd = caretPos; 91 91 92 - preview?.(); 92 + updatePreview(false); 93 93 highlightAll(); 94 94 }); 95 95 }; ··· 105 105 el.value = value.slice(0, selectionStart - 4) + value.slice(selectionEnd); 106 106 el.selectionStart = el.selectionEnd = selectionStart - 4; 107 107 108 - preview?.(); 108 + updatePreview(false); 109 109 highlightAll(); 110 110 } 111 111 }); ··· 181 181 customElements.define("speech-box", SpeechBoxElement); 182 182 183 183 async function syncDraft() { 184 - await fetch(`/blog/new/sync`, { 184 + const resp = await fetch(`/blog/new/sync`, { 185 185 method: "POST", 186 186 headers: { "Content-Type": "application/json" }, 187 187 body: JSON.stringify({ ··· 194 194 bsky_uri: inputBskyUri.value || null, 195 195 }), 196 196 }); 197 + 198 + return await resp.text(); 197 199 } 198 200 199 - function updatePreview(sync = false) { 200 - preview(); 201 - highlightAll(); 201 + 202 + async function renderDraft() { 203 + const resp = await fetch(`/blog/edit/render`, { 204 + method: "POST", 205 + headers: { "Content-Type": "application/json" }, 206 + body: JSON.stringify({ 207 + contents: editor.value, 208 + }), 209 + }); 210 + 211 + return await resp.text(); 212 + } 213 + 214 + async function updatePreview(sync = false) { 215 + if (sync) { 216 + let render = await syncDraft(); 217 + preview(render); 218 + } else { 219 + let render = await renderDraft(); 220 + preview(render); 221 + } 202 222 if (typeof createFootnotes === "function") createFootnotes(); 203 - if (sync) syncDraft(); 204 223 } 205 224 206 225 // --- Entry point --- ··· 213 232 el?.addEventListener("input", () => updatePreview(sync)), 214 233 ); 215 234 216 - preview(); 235 + updatePreview(false) 217 236 } 218 237 219 238 // Export the initializer