html2text-0.12.6/.cargo_vcs_info.json0000644000000001360000000000100130550ustar { "git": { "sha1": "aae3edfde5983be53798842c4f4bdfc8a4fe2bf1" }, "path_in_vcs": "" }html2text-0.12.6/.circleci/config.yml000064400000000000000000000034611046102023000154740ustar 00000000000000version: 2.1 orbs: win: circleci/windows@2.2.0 jobs: build-stable: docker: - image: cimg/rust:1.73 steps: - checkout - run: cargo --version - run: cargo build - run: cargo test - run: name: Install tools command: | rustup component add rustfmt clippy - run: name: Check formatting command: | cargo fmt --all -- --check --color=auto - run: name: Clippy command: | cargo clippy build-css: docker: - image: cimg/rust:1.73 steps: - checkout - run: cargo --version - run: cargo build --features=css - run: cargo test --features=css build-1-63: docker: - image: cimg/rust:1.63 steps: - checkout - run: cargo --version - run: cargo build # - run: cargo test build-windows: executor: name: win/default size: medium shell: bash.exe environment: PATHk steps: - checkout - run: name: Install Rust command: | curl https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe --output rustup-init.exe ./rustup-init.exe -y - run: name: Update PATH and cargo config command: | echo "[net]" >> $USERPROFILE/.cargo/config echo "git-fetch-with-cli = true" >> $USERPROFILE/.cargo/config echo 'export PATH=$USERPROFILE/.cargo/bin:$PATH' >> $BASH_ENV - run: name: Build command: | cargo build - run: name: Tests command: | cargo test workflows: version: 2 build: jobs: - "build-stable" - "build-css" - "build-1-63" - "build-windows" html2text-0.12.6/.github/dependabot.yml000064400000000000000000000002251046102023000160340ustar 00000000000000version: 2 updates: - package-ecosystem: "cargo" directory: "/" schedule: interval: "weekly" day: "friday" rebase-strategy: "disabled" html2text-0.12.6/.github/workflows/ci.yml000064400000000000000000000010621046102023000163570ustar 00000000000000name: CI on: pull_request: push: branches: - main env: CARGO_TERM_COLOR: always jobs: test-action: name: Check semver compatibility runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v1 with: version-tag-prefix: '' html2text-0.12.6/.gitignore000064400000000000000000000000221046102023000136270ustar 00000000000000target Cargo.lock html2text-0.12.6/CHANGELOG.md000064400000000000000000000173301046102023000134620ustar 00000000000000# Changelog Possible log types: - `[added]` for new features. - `[changed]` for changes in existing functionality. - `[deprecated]` for once-stable features removed in upcoming releases. - `[removed]` for deprecated features removed in this release. - `[fixed]` for any bug fixes. - `[security]` to invite users to upgrade in case of vulnerabilities. ### 0.12.6 - [fixed] Table rows with colours would disappear. (thanks tkapias) - [fixed] A re-introduced panic on some empty tables (thanks sftse) - [fixed] Out of memory panic with crazy colspans (thanks pycui) ### 0.12.5 - [changed] Updated some dependencies - [added] The `html2text` example now has `--ignore-css-colour`, which ignores CSS colour information but still uses `display: none`, for example. - [added] The `html2text` example now has `--only-css` option, to not use default colours when CSS colours are being used. - [fixed] Make the dummy `dashmap` depenency optional so it's not included unnecessarily when CSS isn't enabled (thanks xmakro) ### 0.12.4 - [changed] Update the previous `max-height: 0` to also look at `height: 0` and require `overflow: hidden` as well. This helps with a hack some e-mail senders use for e-mail previews. (thanks tkapias) ### 0.12.3 - [changed] Treat `max-height: 0` as if it's `display: none` when CSS is enabled. This helps with a hack some e-mail senders use for e-mail previews. (thanks tkapias) ### 0.12.2 - [changed] Bump version of lightningcss dependency to fix build failures. ### 0.12.1 - [fixed] Fix a case where Err(TooNarrow) was returned unnecessarily. (thanks sftse) - [added] Add new rendering options `Config::raw_mode()` and `Config::no_table_borders()` (thanks sftse) - [changed] Formatting, clippy and other tidy-ups (thanks sftse) - [changed] Cargo fmt now enforced in CI ### 0.12.0 - [changed] Updated termion dev-dependency - [added] Support `` HTML elements - [added] Export `RcDom` publically. It was already returned by a pub function. - [added] Update handling of width overflow: With `Config::allow_width_overflow()`, prefer returning output wider than requested, instead of returning `Err(TooNarrow)`. `Config::min_wrap_width()` sets the minimum text wrap width (default 3). The minimum width (before overflow or `TooNarrow`) is now handled more cleanly. - [added] CSS: use color/bgcolor attributes on elements. ### 0.11.0 - [fixed] CSS: rules marked !important were ignored. - [changed] html\_trace feature now uses the `log` crate. - [changed] Bumped MSRV to 1.63 (matching Debian stable) due to some dependencies. ### 0.10.3 - [fixed] A panic on some unlucky text wrapping coincidences. - [fixed] Use dep:backtrace in Cargo.toml to avoid implicit feature. ### 0.10.2 - [fixed] CSS: Ignore transparent colours. ### 0.10.1 - [fixed] `max_width` was not working with some render methods. ### 0.10.0 - [added] Simple support for ``, ``, and `` (thanks sgtatham) - [added] Added background-color support - [fixed] CSS support didn't work in some places, such as `` elements. - [added] Add support for `style` attributes. - [added] Styles apply to table borders - [changed] Update some dependencies - [fixed] Fix a few places which caused excess blank lines or empty tables ### 0.9.4 - [changed] Updated the termion dev-dependency to 2.0. ### 0.9.3 - [changed] Added cargo categories and update to 2021 edition. ### 0.9.2 - [fixed] CSS didn't work inside `
    ` or `
      `. - [added] Add methods to get and use the intermediate HTML DOM and RenderTree from Config. - [fixed] Removed some clones which are no longer necessary now that Box works. ### 0.9.1 - [fixed] Various documentation issues (thanks sgtatham) - [changed] CSS color rules now work for elements other than span. ### 0.9.0 - [changed] `Config::add_css` now returns `Result` instead of panicking on CSS parse errors. Errors from parsing document CSS are ignored. - [added] Support `` when CSS is enabled. - [added] `Config::max_wrap_width()` to wrap text to a norrower width than the overal size available. - [added] Add --wrap-width and --css options to html2text example. ### 0.8.0 - [added] CSS: Support more extensive selectors - [changed] CSS handling defaults to off; use `Config::use_doc_css()` or `Config::add_css` to use CSS. ### 0.7.1 - [added] Now recognised CSS `display:none` - [added] Can now add extra CSS rules via `Config::add_css`. - [changed] StyleData::coloured is no longer public. ### 0.7.0 - [changed] Remove some noisy stderr output when encoutering control chars (thanks sftse) - [added] A builder-based config API. - [changed] Updated MSRV to 1.60 - [fixed] Fixed #88: panic when a width of zero passed in (thanks bingen13) - [fixed] Fixed #90: Fixed a divide-by-zero panic with colspan=0 (thanks mtorromeo) - [added] Add very basic CSS colour support (under the css feature flag) - [changed] Removed ansi\_colours feature (from\_read\_coloured is always available) - [changed] Overhauled error handling. Internally (and in the lower level API) errors (mainly "TooNarrow") are passed around with `Result`. Fixed some panics and infinite loops. (Thanks WIZeaz for fuzzing) ### 0.6.0 - [changed] Improve layout of tables thanks to sftse: - Table column size estimates have been improved when the source HTML has a lot of unnecessary whitespace. - Move the URL footnotes out to the top level, also improving layout of tables containing links. - [changed] Some APIs have slightly changed as part of the table improvements, though most users should not be affeted. ### 0.5.1 - [fixed] Some tables were rendered too wide. ### 0.5.0 - [changed] Rich Image annotations now include the src attirbute (thanks spencerwi). ### 0.4.5 - [fixed] Preserve empty lines in pre blocks (thanks kpagacz). ### 0.4.4 - [fixed] Fix some panics when enumerated lists are in tables (thanks sfts). - [fixed] Impove table size estimation to include links. ### 0.4.3 - [changed] MSRV is now 1.56. - [fixed] Fix some panics when very large widths are used with tables. ### 0.4.2 - [changed] Moved the rcdom module directly into src/ ### 0.4.1 (unpublished) - [changed] rcdom now vendored as a module. ### 0.4.0 (unpublished) - [changed] Update html5ever to v0.26. - [changed] MSRV is now 1.49. ### 0.3.1 - [changed] Update the build badges to reflect the updated CI configuration. ### 0.3.0 - [added] New experimental `from_read_coloured()` (under `ansi_colours` feature). - [added] Add `into_tagged_strings` and `tagged_strings` methods to `TaggedLine` (thanks Robin Krahl) - [added] Add `width` method to `TaggedString` (thanks Robin Krahl) - [changed] Keep annotations in `TextRenderer::into_lines` (thanks Robin Krahl) - [fixed] Add colon to reference style link (thanks zakaluka) - [added] Allow text decorators to customise block prefix strings (thanks SardineFish) - [fixed] Fixed some problems rendering some complicated tables, including a panic and near-infinite loops. - [changed] Tables which are too wide to possibly render in the given width are now arranged vertically instead (with `///`) lines. - [changed] A number of small table rendering improvements. - [changed] MSRV is now 1.41. ### 0.2.1 - [added] New entry points - split HTML parsing from rendering the output, thanks Robin Krahl. - [fixed] Decorators weren't being used for preformatted text. ### 0.2.0 - [added] Support `` strikeout text. ### 0.1.14 (2020-08-07) - [fixed] A table with an `id` attribute on `` would be hidden. ### 0.1.13 (2020-07-21) - [changed] Run cargo fmt (thanks crunchyjesus) - [added] CHANGELOG.md - [fixed] Some text near a fragment start (`id="foo"` attribute) could be lost if it needed breaking across lines. - [added] Experimentally add dependabot configuration. html2text-0.12.6/Cargo.lock0000644000001047250000000000100110410ustar # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "addr2line" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] [[package]] name = "adler" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ "getrandom", "once_cell", "version_check", ] [[package]] name = "ahash" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", "once_cell", "version_check", "zerocopy", ] [[package]] name = "aho-corasick" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "argparse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f8ebf5827e4ac4fd5946560e6a99776ea73b596d80898f357007317a7141e47" [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", ] [[package]] name = "base64-simd" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" dependencies = [ "simd-abstraction", ] [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "bitvec" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", "tap", "wyz", ] [[package]] name = "bytecheck" version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" dependencies = [ "bytecheck_derive", "ptr_meta", "simdutf8", ] [[package]] name = "bytecheck_derive" version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "cc" version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "const-str" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21077772762a1002bb421c3af42ac1725fa56066bfc53d9a55bb79905df2aaf3" dependencies = [ "const-str-proc-macro", ] [[package]] name = "const-str-proc-macro" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1e0fdd2e5d3041e530e1b21158aeeef8b5d0e306bc5c1e3d6cf0930d10e25a" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "convert_case" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" dependencies = [ "unicode-segmentation", ] [[package]] name = "crossbeam-deque" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "cssparser" version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9be934d936a0fbed5bcdc01042b770de1398bf79d0e192f49fa7faea0e99281e" dependencies = [ "cssparser-macros", "dtoa-short", "itoa", "phf 0.11.2", "smallvec", ] [[package]] name = "cssparser-color" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "556c099a61d85989d7af52b692e35a8d68a57e7df8c6d07563dc0778b3960c9f" dependencies = [ "cssparser", ] [[package]] name = "cssparser-macros" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", "syn 2.0.64", ] [[package]] name = "dashmap" version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ "cfg-if", "hashbrown", "lock_api", "once_cell", "parking_lot_core", ] [[package]] name = "data-encoding" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-url" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193" dependencies = [ "matches", ] [[package]] name = "dtoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dtoa-short" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" dependencies = [ "dtoa", ] [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "env_logger" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", "log", "regex", "termcolor", ] [[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futf" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" dependencies = [ "mac", "new_debug_unreachable", ] [[package]] name = "fxhash" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" dependencies = [ "byteorder", ] [[package]] name = "getrandom" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", "wasi", ] [[package]] name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash 0.7.8", ] [[package]] name = "hermit-abi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "html2text" version = "0.12.6" dependencies = [ "argparse", "backtrace", "dashmap", "env_logger", "html5ever", "lightningcss", "log", "markup5ever", "tendril", "termion", "thiserror", "unicode-width", ] [[package]] name = "html5ever" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" dependencies = [ "log", "mac", "markup5ever", "proc-macro2", "quote", "syn 2.0.64", ] [[package]] name = "humantime" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "is-terminal" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ "hermit-abi", "libc", "windows-sys", ] [[package]] name = "itertools" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libredox" version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ "bitflags 2.4.1", "libc", "redox_syscall", ] [[package]] name = "lightningcss" version = "1.0.0-alpha.59" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53e225b3fa0a8bd5562c8833b1a32afa88761c4e661d3177b8cdc4e13cbf078e" dependencies = [ "ahash 0.8.11", "bitflags 2.4.1", "const-str", "cssparser", "cssparser-color", "dashmap", "data-encoding", "getrandom", "itertools", "lazy_static", "lightningcss-derive", "parcel_selectors", "parcel_sourcemap", "paste", "pathdiff", "rayon", "serde", "smallvec", ] [[package]] name = "lightningcss-derive" version = "1.0.0-alpha.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c12744d1279367caed41739ef094c325d53fb0ffcd4f9b84a368796f870252" dependencies = [ "convert_case", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "lock_api" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "log" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "mac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "markup5ever" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" dependencies = [ "log", "phf 0.11.2", "phf_codegen 0.11.2", "string_cache", "string_cache_codegen", "tendril", ] [[package]] name = "matches" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "memchr" version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "miniz_oxide" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "new_debug_unreachable" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" [[package]] name = "numtoa" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" [[package]] name = "object" version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] [[package]] name = "once_cell" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "outref" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" [[package]] name = "parcel_selectors" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f4d26c18a8377a64728c04bf3b2e48ec43b0c77e687a18e03eb837d65e08a14" dependencies = [ "bitflags 2.4.1", "cssparser", "fxhash", "log", "phf 0.10.1", "phf_codegen 0.10.0", "precomputed-hash", "smallvec", ] [[package]] name = "parcel_sourcemap" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "485b74d7218068b2b7c0e3ff12fbc61ae11d57cb5d8224f525bd304c6be05bbb" dependencies = [ "base64-simd", "data-url", "rkyv", "serde", "serde_json", "vlq", ] [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", "windows-targets 0.48.5", ] [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "phf" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ "phf_shared 0.10.0", ] [[package]] name = "phf" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_macros", "phf_shared 0.11.2", ] [[package]] name = "phf_codegen" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", ] [[package]] name = "phf_codegen" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" dependencies = [ "phf_generator 0.11.2", "phf_shared 0.11.2", ] [[package]] name = "phf_generator" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" dependencies = [ "phf_shared 0.10.0", "rand", ] [[package]] name = "phf_generator" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ "phf_shared 0.11.2", "rand", ] [[package]] name = "phf_macros" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator 0.11.2", "phf_shared 0.11.2", "proc-macro2", "quote", "syn 2.0.64", ] [[package]] name = "phf_shared" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ "siphasher", ] [[package]] name = "phf_shared" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" dependencies = [ "siphasher", ] [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "precomputed-hash" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "proc-macro2" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "ptr_meta" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" dependencies = [ "ptr_meta_derive", ] [[package]] name = "ptr_meta_derive" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "quote" version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] [[package]] name = "radium" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", ] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] [[package]] name = "rayon" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", ] [[package]] name = "rayon-core" version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] [[package]] name = "redox_syscall" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_termios" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20145670ba436b55d91fc92d25e71160fbfbdd57831631c8d7d36377a476f1cb" [[package]] name = "regex" version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rend" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" dependencies = [ "bytecheck", ] [[package]] name = "rkyv" version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", "bytes", "hashbrown", "ptr_meta", "rend", "rkyv_derive", "seahash", "tinyvec", "uuid", ] [[package]] name = "rkyv_derive" version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "rustc-demangle" version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "seahash" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "serde" version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", "syn 2.0.64", ] [[package]] name = "serde_json" version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", "ryu", "serde", ] [[package]] name = "simd-abstraction" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" dependencies = [ "outref", ] [[package]] name = "simdutf8" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "smallvec" version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "string_cache" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" dependencies = [ "new_debug_unreachable", "once_cell", "parking_lot", "phf_shared 0.10.0", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", "proc-macro2", "quote", ] [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "syn" version = "2.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tendril" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" dependencies = [ "futf", "mac", "utf-8", ] [[package]] name = "termcolor" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "termion" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "417813675a504dfbbf21bfde32c03e5bf9f2413999962b479023c02848c1c7a5" dependencies = [ "libc", "libredox", "numtoa", "redox_termios", ] [[package]] name = "thiserror" version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", "syn 2.0.64", ] [[package]] name = "tinyvec" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] [[package]] name = "tinyvec_macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-segmentation" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "utf-8" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "uuid" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vlq" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65dd7eed29412da847b0f78bcec0ac98588165988a8cfe41d4ea1d429f8ccfff" [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "winapi-util" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ "windows-sys", ] [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets 0.52.5", ] [[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm 0.48.5", "windows_aarch64_msvc 0.48.5", "windows_i686_gnu 0.48.5", "windows_i686_msvc 0.48.5", "windows_x86_64_gnu 0.48.5", "windows_x86_64_gnullvm 0.48.5", "windows_x86_64_msvc 0.48.5", ] [[package]] name = "windows-targets" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ "windows_aarch64_gnullvm 0.52.5", "windows_aarch64_msvc 0.52.5", "windows_i686_gnu 0.52.5", "windows_i686_gnullvm", "windows_i686_msvc 0.52.5", "windows_x86_64_gnu 0.52.5", "windows_x86_64_gnullvm 0.52.5", "windows_x86_64_msvc 0.52.5", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" [[package]] name = "windows_i686_gnullvm" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "wyz" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ "tap", ] [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", "syn 2.0.64", ] html2text-0.12.6/Cargo.toml0000644000000037100000000000100110540ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.63" name = "html2text" version = "0.12.6" authors = ["Chris Emerson "] build = false autobins = false autoexamples = false autotests = false autobenches = false description = "Render HTML as plain text." documentation = "https://docs.rs/html2text/" readme = "README.md" keywords = [ "html", "text", ] categories = ["text-processing"] license = "MIT" repository = "https://github.com/jugglerchris/rust-html2text/" [lib] name = "html2text" path = "src/lib.rs" [[example]] name = "html2term" path = "examples/html2term.rs" [[example]] name = "html2text" path = "examples/html2text.rs" [[bench]] name = "tables" path = "benches/tables.rs" [dependencies.backtrace] version = "0.3" optional = true [dependencies.dashmap] version = "~5.4" optional = true [dependencies.html5ever] version = "0.27.0" [dependencies.lightningcss] version = "1.0.0-alpha.54" optional = true [dependencies.log] version = "0.4.20" optional = true [dependencies.markup5ever] version = "0.12.0" [dependencies.tendril] version = "0.4" [dependencies.thiserror] version = "1.0.50" [dependencies.unicode-width] version = "=0.1.13" [dev-dependencies.argparse] version = "0.2.2" [dev-dependencies.env_logger] version = "0.10.1" [dev-dependencies.log] version = "0.4.20" [features] css = ["dep:lightningcss"] default = [] html_trace = ["dep:log"] html_trace_bt = [ "html_trace", "dep:backtrace", ] [target."cfg(unix)".dev-dependencies.termion] version = "3.0" html2text-0.12.6/Cargo.toml.orig000064400000000000000000000022321046102023000145330ustar 00000000000000[package] name = "html2text" version = "0.12.6" authors = ["Chris Emerson "] description = "Render HTML as plain text." repository = "https://github.com/jugglerchris/rust-html2text/" readme = "README.md" documentation = "https://docs.rs/html2text/" edition = "2021" rust-version = "1.63" categories = ["text-processing"] keywords = ["html", "text"] license = "MIT" [dependencies] html5ever = "0.27.0" markup5ever = "0.12.0" tendril = "0.4" # unicode-width 0.1.14 increased MSRV unicode-width = "=0.1.13" backtrace = { version = "0.3", optional=true } thiserror = "1.0.50" lightningcss = { version = "1.0.0-alpha.54", optional=true } # Keep dashmap back; 5.5 has a higher MSRV. dashmap = { version = "~5.4", optional=true } log = { version = "0.4.20", optional = true } [features] html_trace = ["dep:log"] html_trace_bt = ["html_trace", "dep:backtrace"] default = [] css = ["dep:lightningcss"] [[example]] name = "html2term" path = "examples/html2term.rs" [[example]] name = "html2text" path = "examples/html2text.rs" [dev-dependencies] env_logger = "0.10.1" argparse = "0.2.2" log = "0.4.20" [target.'cfg(unix)'.dev-dependencies] termion = "3.0" html2text-0.12.6/LICENSE000064400000000000000000000020571046102023000126560ustar 00000000000000MIT License Copyright (c) 2016 Chris Emerson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. html2text-0.12.6/README.md000064400000000000000000000071441046102023000131320ustar 00000000000000[![jugglerchris](https://circleci.com/gh/jugglerchris/rust-html2text.svg?branch=master&style=svg)](https://app.circleci.com/pipelines/github/jugglerchris/rust-html2text?filter=all) # html2text html2text is a [Rust](http://www.rust-lang.org/) crate which converts HTML to plain text. It makes use of the [Servo project](https://github.com/servo/servo)'s HTML parser, [html5ever](https://github.com/servo/html5ever/), using the DOM to generate text (which can optionally include annotations for some features such as hyperlinks). The project aims to do a reasonable job of rendering reasonable HTML in a terminal or other places where HTML needs to be converted to text (for example the text/plain fallback in HTML e-mails). With features (see below) some CSS/colour support is available. ## Examples The simple functions like `from_read()` return formatted text (in various formats including plain text). ```rust use html2text::from_read; let html = b"
      • Item one
      • Item two
      • Item three
      "; assert_eq!(from_read(&html[..], 20), "\ * Item one * Item two * Item three "); ``` A lower level API gives a bit more control. This give the same result (except for returning errors as Result instead of panicking): ```rust use html2text::config; let html = b"
      • Item one
      • Item two
      • Item three
      "; assert_eq!( config::plain() .string_from_read(&html[..], 20) .unwrap(), "\ * Item one * Item two * Item three "); ``` A couple of simple demonstration programs are included as examples: ### html2text The simplest example uses `from_read` to convert HTML on stdin into plain text: ```sh $ cargo run --example html2text < foo.html [...] ``` ### html2term A very simple example of using the rich interface (`from_read_rich`) for a slightly interactive console HTML viewer is provided as `html2term`. ```sh $ cargo run --example html2term foo.html [...] ``` Note that this example takes the HTML file as a parameter so that it can read keys from stdin. ## Cargo Features |Feature| Description| |-------|------------| |css | Limited handling of CSS, adding Coloured nodes to the render tree. | |html\_trace| Add verbose internal logging (not recommended) | |html\_trace\_bt| Add backtraces to the verbose internal logging | ### CSS support When the `css` feature is enabled, some simple CSS handling is available. Style rules are taken from: * If `Config::use_doc_css()` is called, then style from the document: * `

      Hello

      Ignore

      There

      "#, r#"Hello There "#, 20, ); // Same as above, but style supplied separately. test_html_style( br#"

      Hello

      Ignore

      There

      "#, " .hide { display: none; }", r#"Hello There "#, 20, ); } #[test] fn test_selector_elementname() { test_html_css( br#"

      Hello

      Ignore

      There

      "#, r#"Hello There "#, 20, ); } #[test] fn test_selector_aoc() { test_html_css( br#"

      Hello

      Ok

      Span1Span2

      Span1Span2

      There

      "#, r#"Hello Ok Span1 Span1 There "#, 20, ); } #[test] fn test_coloured_a() { test_html_coloured( br##"

      Test red

      "##, r#"Test red "#, 20, ); } #[test] fn test_bgcoloured() { test_html_coloured( br##"

      Test red

      "##, r#"Test red "#, 20, ); } #[test] fn test_bgcoloured2() { test_html_coloured( br##"

      Test red and green

      "##, r#"Test red and green "#, 20, ); } #[test] fn test_coloured_element() { test_html_coloured( br##"

      Test red

      "##, r#"Test red "#, 20, ); } #[test] fn test_color_attr() { test_html_coloured( br##"

      Test red

      "##, r#"Test red "#, 20, ); } #[test] fn test_css_lists() { test_html_coloured( br##"
      • Line one
      • Line two
      "##, r#"* Line one * Line two "#, 20, ); test_html_coloured( br##"
      1. Line one
      2. Line two
"##, r#"1. Line one 2. Line two "#, 20, ); } #[test] fn test_coloured_multi() { use super::test_colour_map; let config = crate::config::rich().use_doc_css(); let dom = config .parse_html( &br##"

Test paragraph with red text

"##[..], ) .unwrap(); let rt = config.dom_to_render_tree(&dom).unwrap(); assert_eq!( config .render_coloured(rt.clone(), 10, test_colour_map) .unwrap(), r#"Test paragraph with red text "# ); assert_eq!( config .render_coloured(rt.clone(), 100, test_colour_map) .unwrap(), r#"Test paragraph with red text "# ); } #[test] fn test_coloured_important() { use super::test_colour_map; let config = crate::config::rich().use_doc_css(); let dom = config .parse_html( &br##"

Test paragraph with red text

"##[..], ) .unwrap(); let rt = config.dom_to_render_tree(&dom).unwrap(); assert_eq!( config .render_coloured(rt.clone(), 10, test_colour_map) .unwrap(), r#"Test paragraph with red text "# ); assert_eq!( config .render_coloured(rt.clone(), 100, test_colour_map) .unwrap(), r#"Test paragraph with red text "# ); } #[test] fn test_wrap_word_boundaries() { let html = br#" Hello *there* boo"#; test_html_coloured(html, "Hello *there* boo\n", 20); test_html_coloured(html, "Hello *there*\nboo\n", 15); test_html_coloured(html, "Hello *there*\nboo\n", 14); test_html_coloured(html, "Hello *there*\nboo\n", 13); test_html_coloured(html, "Hello\n*there* boo\n", 12); test_html_coloured(html, "Hello\n*there* boo\n", 11); test_html_coloured(html, "Hello\n*there*\nboo\n", 10); test_html_coloured(html, "Hello\n*there*\nboo\n", 7); test_html_coloured(html, "Hello\n*there\n* boo\n", 6); test_html_coloured(html, "Hello\n*ther\ne*\nboo\n", 5); test_html_coloured(html, "Hell\no\n*the\nre*\nboo\n", 4); test_html_coloured(html, "H\ne\nl\nl\no\n*\nt\nh\ne\nr\ne\n*\nb\no\no\n", 1); } #[test] fn test_max_height_0() { test_html_css( br#"
This should be hidden

Hello

"#, r#"Hello "#, 20, ); } #[test] fn test_height_0() { test_html_css( br#"
This should be hidden

Hello

"#, r#"Hello "#, 20, ); } #[test] fn test_colour_row() { test_html_coloured( br#"
RowOne
RowTwo
RowThree
"#, r#"───┬───── Row│One ───┼───── RowTwo ───┼───── Row│Three ───┴───── "#, 20, ); } }