├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── menu.html ├── src ├── cli.rs ├── exec.rs ├── main.rs └── pipeline.rs └── test.html /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ahash" 7 | version = "0.7.6" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" 10 | dependencies = [ 11 | "getrandom 0.2.3", 12 | "once_cell", 13 | "version_check", 14 | ] 15 | 16 | [[package]] 17 | name = "aho-corasick" 18 | version = "0.7.18" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" 21 | dependencies = [ 22 | "memchr", 23 | ] 24 | 25 | [[package]] 26 | name = "atty" 27 | version = "0.2.14" 28 | source = "registry+https://github.com/rust-lang/crates.io-index" 29 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 30 | dependencies = [ 31 | "hermit-abi", 32 | "libc", 33 | "winapi", 34 | ] 35 | 36 | [[package]] 37 | name = "autocfg" 38 | version = "1.0.1" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" 41 | 42 | [[package]] 43 | name = "bitflags" 44 | version = "1.3.2" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 47 | 48 | [[package]] 49 | name = "byteorder" 50 | version = "1.4.3" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 53 | 54 | [[package]] 55 | name = "cfg-if" 56 | version = "1.0.0" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 59 | 60 | [[package]] 61 | name = "clap" 62 | version = "3.0.0-beta.5" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "feff3878564edb93745d58cf63e17b63f24142506e7a20c87a5521ed7bfb1d63" 65 | dependencies = [ 66 | "atty", 67 | "bitflags", 68 | "clap_derive", 69 | "indexmap", 70 | "lazy_static", 71 | "os_str_bytes", 72 | "strsim", 73 | "termcolor", 74 | "textwrap", 75 | "unicase", 76 | ] 77 | 78 | [[package]] 79 | name = "clap_derive" 80 | version = "3.0.0-beta.5" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "8b15c6b4f786ffb6192ffe65a36855bc1fc2444bcd0945ae16748dcd6ed7d0d3" 83 | dependencies = [ 84 | "heck", 85 | "proc-macro-error", 86 | "proc-macro2", 87 | "quote", 88 | "syn", 89 | ] 90 | 91 | [[package]] 92 | name = "convert_case" 93 | version = "0.4.0" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 96 | 97 | [[package]] 98 | name = "cssparser" 99 | version = "0.27.2" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" 102 | dependencies = [ 103 | "cssparser-macros", 104 | "dtoa-short", 105 | "itoa", 106 | "matches", 107 | "phf", 108 | "proc-macro2", 109 | "quote", 110 | "smallvec", 111 | "syn", 112 | ] 113 | 114 | [[package]] 115 | name = "cssparser-macros" 116 | version = "0.6.0" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" 119 | dependencies = [ 120 | "quote", 121 | "syn", 122 | ] 123 | 124 | [[package]] 125 | name = "derive_more" 126 | version = "0.99.16" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" 129 | dependencies = [ 130 | "convert_case", 131 | "proc-macro2", 132 | "quote", 133 | "rustc_version", 134 | "syn", 135 | ] 136 | 137 | [[package]] 138 | name = "dtoa" 139 | version = "0.4.8" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" 142 | 143 | [[package]] 144 | name = "dtoa-short" 145 | version = "0.3.3" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" 148 | dependencies = [ 149 | "dtoa", 150 | ] 151 | 152 | [[package]] 153 | name = "encoding_rs" 154 | version = "0.8.29" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746" 157 | dependencies = [ 158 | "cfg-if", 159 | ] 160 | 161 | [[package]] 162 | name = "fxhash" 163 | version = "0.2.1" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 166 | dependencies = [ 167 | "byteorder", 168 | ] 169 | 170 | [[package]] 171 | name = "getrandom" 172 | version = "0.1.16" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 175 | dependencies = [ 176 | "cfg-if", 177 | "libc", 178 | "wasi 0.9.0+wasi-snapshot-preview1", 179 | ] 180 | 181 | [[package]] 182 | name = "getrandom" 183 | version = "0.2.3" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" 186 | dependencies = [ 187 | "cfg-if", 188 | "libc", 189 | "wasi 0.10.2+wasi-snapshot-preview1", 190 | ] 191 | 192 | [[package]] 193 | name = "hashbrown" 194 | version = "0.11.2" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 197 | dependencies = [ 198 | "ahash", 199 | ] 200 | 201 | [[package]] 202 | name = "heck" 203 | version = "0.3.3" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 206 | dependencies = [ 207 | "unicode-segmentation", 208 | ] 209 | 210 | [[package]] 211 | name = "hermit-abi" 212 | version = "0.1.19" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 215 | dependencies = [ 216 | "libc", 217 | ] 218 | 219 | [[package]] 220 | name = "hq" 221 | version = "0.1.0" 222 | dependencies = [ 223 | "clap", 224 | "lol_html", 225 | "minijinja", 226 | "regex", 227 | "serde", 228 | ] 229 | 230 | [[package]] 231 | name = "indexmap" 232 | version = "1.7.0" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" 235 | dependencies = [ 236 | "autocfg", 237 | "hashbrown", 238 | ] 239 | 240 | [[package]] 241 | name = "itoa" 242 | version = "0.4.8" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" 245 | 246 | [[package]] 247 | name = "lazy_static" 248 | version = "1.4.0" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 251 | 252 | [[package]] 253 | name = "lazycell" 254 | version = "1.3.0" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 257 | 258 | [[package]] 259 | name = "libc" 260 | version = "0.2.108" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119" 263 | 264 | [[package]] 265 | name = "log" 266 | version = "0.4.14" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" 269 | dependencies = [ 270 | "cfg-if", 271 | ] 272 | 273 | [[package]] 274 | name = "lol_html" 275 | version = "0.3.0" 276 | source = "git+https://github.com/mitsuhiko/lol-html?branch=feature/on-after-end-tag#ae820a129e81b4a173896bffdb5d64ca75aa37e6" 277 | dependencies = [ 278 | "bitflags", 279 | "cfg-if", 280 | "cssparser", 281 | "encoding_rs", 282 | "hashbrown", 283 | "lazy_static", 284 | "lazycell", 285 | "memchr", 286 | "safemem", 287 | "selectors", 288 | "thiserror", 289 | ] 290 | 291 | [[package]] 292 | name = "matches" 293 | version = "0.1.9" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" 296 | 297 | [[package]] 298 | name = "memchr" 299 | version = "2.4.1" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" 302 | 303 | [[package]] 304 | name = "minijinja" 305 | version = "0.8.2" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | checksum = "1c8de52c925a3f40bd30cb2041440eb3d11658b9a2b8564c1d66fba41c890dc6" 308 | dependencies = [ 309 | "serde", 310 | "serde_json", 311 | ] 312 | 313 | [[package]] 314 | name = "nodrop" 315 | version = "0.1.14" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 318 | 319 | [[package]] 320 | name = "once_cell" 321 | version = "1.8.0" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" 324 | 325 | [[package]] 326 | name = "os_str_bytes" 327 | version = "4.2.0" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "addaa943333a514159c80c97ff4a93306530d965d27e139188283cd13e06a799" 330 | dependencies = [ 331 | "memchr", 332 | ] 333 | 334 | [[package]] 335 | name = "pest" 336 | version = "2.1.3" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" 339 | dependencies = [ 340 | "ucd-trie", 341 | ] 342 | 343 | [[package]] 344 | name = "phf" 345 | version = "0.8.0" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 348 | dependencies = [ 349 | "phf_macros", 350 | "phf_shared", 351 | "proc-macro-hack", 352 | ] 353 | 354 | [[package]] 355 | name = "phf_codegen" 356 | version = "0.8.0" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 359 | dependencies = [ 360 | "phf_generator", 361 | "phf_shared", 362 | ] 363 | 364 | [[package]] 365 | name = "phf_generator" 366 | version = "0.8.0" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 369 | dependencies = [ 370 | "phf_shared", 371 | "rand", 372 | ] 373 | 374 | [[package]] 375 | name = "phf_macros" 376 | version = "0.8.0" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" 379 | dependencies = [ 380 | "phf_generator", 381 | "phf_shared", 382 | "proc-macro-hack", 383 | "proc-macro2", 384 | "quote", 385 | "syn", 386 | ] 387 | 388 | [[package]] 389 | name = "phf_shared" 390 | version = "0.8.0" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 393 | dependencies = [ 394 | "siphasher", 395 | ] 396 | 397 | [[package]] 398 | name = "ppv-lite86" 399 | version = "0.2.15" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" 402 | 403 | [[package]] 404 | name = "precomputed-hash" 405 | version = "0.1.1" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 408 | 409 | [[package]] 410 | name = "proc-macro-error" 411 | version = "1.0.4" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 414 | dependencies = [ 415 | "proc-macro-error-attr", 416 | "proc-macro2", 417 | "quote", 418 | "syn", 419 | "version_check", 420 | ] 421 | 422 | [[package]] 423 | name = "proc-macro-error-attr" 424 | version = "1.0.4" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 427 | dependencies = [ 428 | "proc-macro2", 429 | "quote", 430 | "version_check", 431 | ] 432 | 433 | [[package]] 434 | name = "proc-macro-hack" 435 | version = "0.5.19" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" 438 | 439 | [[package]] 440 | name = "proc-macro2" 441 | version = "1.0.32" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" 444 | dependencies = [ 445 | "unicode-xid", 446 | ] 447 | 448 | [[package]] 449 | name = "quote" 450 | version = "1.0.10" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" 453 | dependencies = [ 454 | "proc-macro2", 455 | ] 456 | 457 | [[package]] 458 | name = "rand" 459 | version = "0.7.3" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 462 | dependencies = [ 463 | "getrandom 0.1.16", 464 | "libc", 465 | "rand_chacha", 466 | "rand_core", 467 | "rand_hc", 468 | "rand_pcg", 469 | ] 470 | 471 | [[package]] 472 | name = "rand_chacha" 473 | version = "0.2.2" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 476 | dependencies = [ 477 | "ppv-lite86", 478 | "rand_core", 479 | ] 480 | 481 | [[package]] 482 | name = "rand_core" 483 | version = "0.5.1" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 486 | dependencies = [ 487 | "getrandom 0.1.16", 488 | ] 489 | 490 | [[package]] 491 | name = "rand_hc" 492 | version = "0.2.0" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 495 | dependencies = [ 496 | "rand_core", 497 | ] 498 | 499 | [[package]] 500 | name = "rand_pcg" 501 | version = "0.2.1" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 504 | dependencies = [ 505 | "rand_core", 506 | ] 507 | 508 | [[package]] 509 | name = "regex" 510 | version = "1.5.4" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" 513 | dependencies = [ 514 | "aho-corasick", 515 | "memchr", 516 | "regex-syntax", 517 | ] 518 | 519 | [[package]] 520 | name = "regex-syntax" 521 | version = "0.6.25" 522 | source = "registry+https://github.com/rust-lang/crates.io-index" 523 | checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" 524 | 525 | [[package]] 526 | name = "rustc_version" 527 | version = "0.3.3" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 530 | dependencies = [ 531 | "semver", 532 | ] 533 | 534 | [[package]] 535 | name = "ryu" 536 | version = "1.0.5" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" 539 | 540 | [[package]] 541 | name = "safemem" 542 | version = "0.3.3" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 545 | 546 | [[package]] 547 | name = "selectors" 548 | version = "0.22.0" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" 551 | dependencies = [ 552 | "bitflags", 553 | "cssparser", 554 | "derive_more", 555 | "fxhash", 556 | "log", 557 | "matches", 558 | "phf", 559 | "phf_codegen", 560 | "precomputed-hash", 561 | "servo_arc", 562 | "smallvec", 563 | "thin-slice", 564 | ] 565 | 566 | [[package]] 567 | name = "semver" 568 | version = "0.11.0" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 571 | dependencies = [ 572 | "semver-parser", 573 | ] 574 | 575 | [[package]] 576 | name = "semver-parser" 577 | version = "0.10.2" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 580 | dependencies = [ 581 | "pest", 582 | ] 583 | 584 | [[package]] 585 | name = "serde" 586 | version = "1.0.130" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" 589 | 590 | [[package]] 591 | name = "serde_json" 592 | version = "1.0.72" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" 595 | dependencies = [ 596 | "itoa", 597 | "ryu", 598 | "serde", 599 | ] 600 | 601 | [[package]] 602 | name = "servo_arc" 603 | version = "0.1.1" 604 | source = "registry+https://github.com/rust-lang/crates.io-index" 605 | checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" 606 | dependencies = [ 607 | "nodrop", 608 | "stable_deref_trait", 609 | ] 610 | 611 | [[package]] 612 | name = "siphasher" 613 | version = "0.3.7" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" 616 | 617 | [[package]] 618 | name = "smallvec" 619 | version = "1.7.0" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" 622 | 623 | [[package]] 624 | name = "stable_deref_trait" 625 | version = "1.2.0" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 628 | 629 | [[package]] 630 | name = "strsim" 631 | version = "0.10.0" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 634 | 635 | [[package]] 636 | name = "syn" 637 | version = "1.0.82" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" 640 | dependencies = [ 641 | "proc-macro2", 642 | "quote", 643 | "unicode-xid", 644 | ] 645 | 646 | [[package]] 647 | name = "termcolor" 648 | version = "1.1.2" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" 651 | dependencies = [ 652 | "winapi-util", 653 | ] 654 | 655 | [[package]] 656 | name = "textwrap" 657 | version = "0.14.2" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" 660 | dependencies = [ 661 | "unicode-width", 662 | ] 663 | 664 | [[package]] 665 | name = "thin-slice" 666 | version = "0.1.1" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" 669 | 670 | [[package]] 671 | name = "thiserror" 672 | version = "1.0.30" 673 | source = "registry+https://github.com/rust-lang/crates.io-index" 674 | checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" 675 | dependencies = [ 676 | "thiserror-impl", 677 | ] 678 | 679 | [[package]] 680 | name = "thiserror-impl" 681 | version = "1.0.30" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" 684 | dependencies = [ 685 | "proc-macro2", 686 | "quote", 687 | "syn", 688 | ] 689 | 690 | [[package]] 691 | name = "ucd-trie" 692 | version = "0.1.3" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" 695 | 696 | [[package]] 697 | name = "unicase" 698 | version = "2.6.0" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 701 | dependencies = [ 702 | "version_check", 703 | ] 704 | 705 | [[package]] 706 | name = "unicode-segmentation" 707 | version = "1.8.0" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" 710 | 711 | [[package]] 712 | name = "unicode-width" 713 | version = "0.1.9" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" 716 | 717 | [[package]] 718 | name = "unicode-xid" 719 | version = "0.2.2" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" 722 | 723 | [[package]] 724 | name = "version_check" 725 | version = "0.9.3" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" 728 | 729 | [[package]] 730 | name = "wasi" 731 | version = "0.9.0+wasi-snapshot-preview1" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 734 | 735 | [[package]] 736 | name = "wasi" 737 | version = "0.10.2+wasi-snapshot-preview1" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" 740 | 741 | [[package]] 742 | name = "winapi" 743 | version = "0.3.9" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 746 | dependencies = [ 747 | "winapi-i686-pc-windows-gnu", 748 | "winapi-x86_64-pc-windows-gnu", 749 | ] 750 | 751 | [[package]] 752 | name = "winapi-i686-pc-windows-gnu" 753 | version = "0.4.0" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 756 | 757 | [[package]] 758 | name = "winapi-util" 759 | version = "0.1.5" 760 | source = "registry+https://github.com/rust-lang/crates.io-index" 761 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 762 | dependencies = [ 763 | "winapi", 764 | ] 765 | 766 | [[package]] 767 | name = "winapi-x86_64-pc-windows-gnu" 768 | version = "0.4.0" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 771 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "hq" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | clap = "3.0.0-beta.5" 10 | lol_html = { git = "https://github.com/mitsuhiko/lol-html", branch = "feature/on-after-end-tag" } 11 | minijinja = { version = "0.8.2", features = ["json"] } 12 | regex = "1.5.4" 13 | serde = "1.0.130" 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # hq 2 | 3 | The idea of this tool is to be a bit like jq but for HTML. I tried building 4 | this on top of lol-html but ran into a few limitations and (temporarily) lost 5 | motivation. 6 | -------------------------------------------------------------------------------- /menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |