html-to-markdown 2.27.2 → 2.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +8 -8
- data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
- data/ext/html-to-markdown-rb/native/src/conversion/mod.rs +6 -0
- data/ext/html-to-markdown-rb/native/src/conversion/tables.rs +71 -0
- data/ext/html-to-markdown-rb/native/src/lib.rs +27 -1
- data/lib/html_to_markdown/version.rb +1 -1
- data/lib/html_to_markdown.rb +29 -0
- data/rust-vendor/getrandom/.cargo-checksum.json +1 -1
- data/rust-vendor/getrandom/.cargo_vcs_info.json +1 -1
- data/rust-vendor/getrandom/CHANGELOG.md +62 -43
- data/rust-vendor/getrandom/Cargo.lock +49 -56
- data/rust-vendor/getrandom/Cargo.toml +2 -2
- data/rust-vendor/getrandom/Cargo.toml.orig +2 -2
- data/rust-vendor/getrandom/src/backends/efi_rng.rs +8 -10
- data/rust-vendor/getrandom/src/backends/getentropy.rs +13 -4
- data/rust-vendor/getrandom/src/backends/linux_android_with_fallback.rs +10 -25
- data/rust-vendor/getrandom/src/backends/netbsd.rs +17 -25
- data/rust-vendor/getrandom/src/backends/rdrand.rs +15 -9
- data/rust-vendor/getrandom/src/backends/rndr.rs +2 -1
- data/rust-vendor/getrandom/src/backends/vxworks.rs +7 -3
- data/rust-vendor/getrandom/src/backends/windows.rs +21 -5
- data/rust-vendor/getrandom/src/utils/lazy_bool.rs +39 -0
- data/rust-vendor/getrandom/src/utils/lazy_ptr.rs +57 -0
- data/rust-vendor/html-to-markdown-rs/Cargo.toml +2 -2
- data/rust-vendor/html-to-markdown-rs/README.md +29 -0
- data/rust-vendor/html-to-markdown-rs/src/convert_api.rs +368 -0
- data/rust-vendor/html-to-markdown-rs/src/converter/main.rs +10 -5
- data/rust-vendor/html-to-markdown-rs/src/converter/text_node.rs +2 -1
- data/rust-vendor/html-to-markdown-rs/src/lib.rs +3 -0
- data/rust-vendor/html-to-markdown-rs/src/prelude.rs +3 -0
- data/rust-vendor/html-to-markdown-rs/tests/issue_216_217_regressions.rs +82 -0
- data/rust-vendor/quote/.cargo-checksum.json +1 -1
- data/rust-vendor/quote/.cargo_vcs_info.json +1 -1
- data/rust-vendor/quote/.github/workflows/ci.yml +2 -2
- data/rust-vendor/quote/Cargo.lock +21 -21
- data/rust-vendor/quote/Cargo.toml +2 -2
- data/rust-vendor/quote/Cargo.toml.orig +2 -2
- data/rust-vendor/quote/README.md +0 -1
- data/rust-vendor/quote/src/lib.rs +1 -1
- data/rust-vendor/quote/src/to_tokens.rs +7 -0
- data/rust-vendor/quote/tests/ui/not-quotable.stderr +1 -1
- data/rust-vendor/quote/tests/ui/not-repeatable.stderr +3 -11
- data/rust-vendor/r-efi/.cargo-checksum.json +1 -1
- data/rust-vendor/r-efi/.cargo_vcs_info.json +1 -1
- data/rust-vendor/r-efi/AUTHORS +1 -0
- data/rust-vendor/r-efi/Cargo.lock +1 -1
- data/rust-vendor/r-efi/Cargo.toml +1 -3
- data/rust-vendor/r-efi/Cargo.toml.orig +1 -5
- data/rust-vendor/r-efi/NEWS.md +16 -0
- data/rust-vendor/r-efi/src/base.rs +1 -1
- data/rust-vendor/r-efi/src/lib.rs +27 -12
- data/rust-vendor/r-efi/src/protocols/absolute_pointer.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/block_io.rs +8 -8
- data/rust-vendor/r-efi/src/protocols/bus_specific_driver_override.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/debug_support.rs +10 -10
- data/rust-vendor/r-efi/src/protocols/debugport.rs +8 -8
- data/rust-vendor/r-efi/src/protocols/decompress.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/device_path_from_text.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/device_path_to_text.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/device_path_utilities.rs +16 -16
- data/rust-vendor/r-efi/src/protocols/disk_io.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/disk_io2.rs +8 -8
- data/rust-vendor/r-efi/src/protocols/driver_binding.rs +6 -6
- data/rust-vendor/r-efi/src/protocols/driver_diagnostics2.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/driver_family_override.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/file.rs +28 -28
- data/rust-vendor/r-efi/src/protocols/graphics_output.rs +6 -6
- data/rust-vendor/r-efi/src/protocols/hii_database.rs +24 -24
- data/rust-vendor/r-efi/src/protocols/hii_font.rs +8 -8
- data/rust-vendor/r-efi/src/protocols/hii_font_ex.rs +10 -10
- data/rust-vendor/r-efi/src/protocols/hii_string.rs +10 -10
- data/rust-vendor/r-efi/src/protocols/ip4.rs +16 -16
- data/rust-vendor/r-efi/src/protocols/ip6.rs +18 -18
- data/rust-vendor/r-efi/src/protocols/load_file.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/loaded_image.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/managed_network.rs +16 -16
- data/rust-vendor/r-efi/src/protocols/memory_attribute.rs +6 -6
- data/rust-vendor/r-efi/src/protocols/mp_services.rs +15 -15
- data/rust-vendor/r-efi/src/protocols/pci_io.rs +26 -26
- data/rust-vendor/r-efi/src/protocols/platform_driver_override.rs +6 -6
- data/rust-vendor/r-efi/src/protocols/rng.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/service_binding.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/shell.rs +81 -81
- data/rust-vendor/r-efi/src/protocols/shell_dynamic_command.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/simple_file_system.rs +2 -2
- data/rust-vendor/r-efi/src/protocols/simple_network.rs +26 -26
- data/rust-vendor/r-efi/src/protocols/simple_text_input.rs +4 -4
- data/rust-vendor/r-efi/src/protocols/simple_text_input_ex.rs +11 -11
- data/rust-vendor/r-efi/src/protocols/simple_text_output.rs +18 -18
- data/rust-vendor/r-efi/src/protocols/tcp4.rs +20 -20
- data/rust-vendor/r-efi/src/protocols/tcp6.rs +18 -18
- data/rust-vendor/r-efi/src/protocols/timestamp.rs +3 -3
- data/rust-vendor/r-efi/src/protocols/udp4.rs +16 -16
- data/rust-vendor/r-efi/src/protocols/udp6.rs +14 -14
- data/rust-vendor/r-efi/src/system.rs +115 -115
- data/rust-vendor/r-efi/src/vendor/intel/console_control.rs +6 -6
- data/rust-vendor/r-efi-5.3.0/.cargo-checksum.json +1 -0
- data/rust-vendor/r-efi-5.3.0/.cargo_vcs_info.json +6 -0
- data/rust-vendor/r-efi-5.3.0/.github/workflows/publish.yml +39 -0
- data/rust-vendor/r-efi-5.3.0/.github/workflows/rust-tests.yml +125 -0
- data/rust-vendor/r-efi-5.3.0/AUTHORS +74 -0
- data/rust-vendor/r-efi-5.3.0/Cargo.lock +16 -0
- data/rust-vendor/r-efi-5.3.0/Cargo.toml +70 -0
- data/rust-vendor/r-efi-5.3.0/Cargo.toml.orig +51 -0
- data/rust-vendor/r-efi-5.3.0/Makefile +85 -0
- data/rust-vendor/r-efi-5.3.0/NEWS.md +301 -0
- data/rust-vendor/r-efi-5.3.0/README.md +99 -0
- data/rust-vendor/r-efi-5.3.0/examples/freestanding.rs +34 -0
- data/rust-vendor/r-efi-5.3.0/examples/gop-query.rs +188 -0
- data/rust-vendor/r-efi-5.3.0/examples/hello-world.rs +55 -0
- data/rust-vendor/r-efi-5.3.0/src/base.rs +993 -0
- data/rust-vendor/r-efi-5.3.0/src/hii.rs +1300 -0
- data/rust-vendor/r-efi-5.3.0/src/lib.rs +182 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/absolute_pointer.rs +69 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/block_io.rs +70 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/bus_specific_driver_override.rs +32 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/debug_support.rs +835 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/debugport.rs +42 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/decompress.rs +37 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/device_path.rs +82 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_from_text.rs +26 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_to_text.rs +30 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_utilities.rs +63 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io.rs +40 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io2.rs +58 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/driver_binding.rs +42 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/driver_diagnostics2.rs +38 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/driver_family_override.rs +23 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/file.rs +183 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/graphics_output.rs +103 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/hii_database.rs +299 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font.rs +87 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font_ex.rs +107 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/hii_package_list.rs +14 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/hii_string.rs +71 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/ip4.rs +202 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/ip6.rs +264 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/load_file.rs +26 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/load_file2.rs +15 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image.rs +39 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image_device_path.rs +13 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/managed_network.rs +147 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/memory_attribute.rs +40 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/mp_services.rs +121 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/pci_io.rs +203 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/platform_driver_override.rs +46 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/rng.rs +83 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/service_binding.rs +20 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/shell.rs +295 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/shell_dynamic_command.rs +33 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/shell_parameters.rs +23 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/simple_file_system.rs +26 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/simple_network.rs +196 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input.rs +38 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input_ex.rs +85 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_output.rs +86 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/tcp4.rs +224 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/tcp6.rs +202 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/timestamp.rs +32 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/udp4.rs +151 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols/udp6.rs +137 -0
- data/rust-vendor/r-efi-5.3.0/src/protocols.rs +54 -0
- data/rust-vendor/r-efi-5.3.0/src/system.rs +1130 -0
- data/rust-vendor/r-efi-5.3.0/src/vendor/intel/console_control.rs +37 -0
- data/rust-vendor/r-efi-5.3.0/src/vendor.rs +10 -0
- data/rust-vendor/tokio/.cargo-checksum.json +1 -1
- data/rust-vendor/tokio/.cargo_vcs_info.json +1 -1
- data/rust-vendor/tokio/CHANGELOG.md +94 -0
- data/rust-vendor/tokio/Cargo.lock +1549 -0
- data/rust-vendor/tokio/Cargo.toml +96 -83
- data/rust-vendor/tokio/Cargo.toml.orig +7 -7
- data/rust-vendor/tokio/README.md +1 -1
- data/rust-vendor/tokio/src/fs/open_options.rs +4 -1
- data/rust-vendor/tokio/src/fs/read.rs +4 -1
- data/rust-vendor/tokio/src/fs/write.rs +4 -1
- data/rust-vendor/tokio/src/io/async_write.rs +3 -4
- data/rust-vendor/tokio/src/io/poll_evented.rs +23 -1
- data/rust-vendor/tokio/src/io/stderr.rs +15 -1
- data/rust-vendor/tokio/src/io/stdout.rs +14 -0
- data/rust-vendor/tokio/src/io/util/async_write_ext.rs +2 -2
- data/rust-vendor/tokio/src/io/util/write_buf.rs +11 -2
- data/rust-vendor/tokio/src/lib.rs +12 -28
- data/rust-vendor/tokio/src/macros/select.rs +6 -8
- data/rust-vendor/tokio/src/net/tcp/socket.rs +25 -1
- data/rust-vendor/tokio/src/net/tcp/stream.rs +40 -1
- data/rust-vendor/tokio/src/process/unix/pidfd_reaper.rs +1 -41
- data/rust-vendor/tokio/src/runtime/blocking/pool.rs +18 -14
- data/rust-vendor/tokio/src/runtime/builder.rs +10 -4
- data/rust-vendor/tokio/src/runtime/handle.rs +3 -2
- data/rust-vendor/tokio/src/runtime/io/driver/uring.rs +49 -61
- data/rust-vendor/tokio/src/runtime/io/driver.rs +6 -5
- data/rust-vendor/tokio/src/runtime/mod.rs +20 -1
- data/rust-vendor/tokio/src/runtime/runtime.rs +71 -1
- data/rust-vendor/tokio/src/runtime/scheduler/current_thread/mod.rs +24 -8
- data/rust-vendor/tokio/src/runtime/scheduler/multi_thread/worker.rs +5 -0
- data/rust-vendor/tokio/src/runtime/task/core.rs +1 -0
- data/rust-vendor/tokio/src/runtime/task/join.rs +7 -3
- data/rust-vendor/tokio/src/runtime/task/list.rs +5 -3
- data/rust-vendor/tokio/src/runtime/task/mod.rs +0 -5
- data/rust-vendor/tokio/src/runtime/tests/loom_blocking.rs +39 -1
- data/rust-vendor/tokio/src/signal/mod.rs +6 -17
- data/rust-vendor/tokio/src/signal/registry.rs +1 -1
- data/rust-vendor/tokio/src/signal/unix.rs +24 -44
- data/rust-vendor/tokio/src/signal/windows/sys.rs +52 -64
- data/rust-vendor/tokio/src/signal/windows.rs +35 -23
- data/rust-vendor/tokio/src/sync/mpsc/mod.rs +3 -1
- data/rust-vendor/tokio/src/sync/oneshot.rs +13 -0
- data/rust-vendor/tokio/src/sync/rwlock.rs +4 -5
- data/rust-vendor/tokio/src/sync/tests/loom_oneshot.rs +27 -1
- data/rust-vendor/tokio/src/task/blocking.rs +16 -1
- data/rust-vendor/tokio/src/task/builder.rs +2 -2
- data/rust-vendor/tokio/src/task/mod.rs +1 -1
- data/rust-vendor/tokio/src/task/spawn.rs +8 -3
- data/rust-vendor/tokio/src/task/yield_now.rs +13 -23
- data/rust-vendor/tokio/src/time/clock.rs +62 -0
- data/rust-vendor/tokio/src/util/memchr.rs +32 -4
- data/rust-vendor/tokio/src/util/sharded_list.rs +6 -4
- data/rust-vendor/tokio/tests/fs_link.rs +54 -0
- data/rust-vendor/tokio/tests/io_async_fd_memory_leak.rs +209 -0
- data/rust-vendor/tokio/tests/io_write_buf.rs +56 -0
- data/rust-vendor/tokio/tests/process_issue_7144.rs +8 -0
- data/rust-vendor/tokio/tests/rt_basic.rs +41 -0
- data/rust-vendor/tokio/tests/rt_common_before_park.rs +92 -0
- data/rust-vendor/tokio/tests/rt_metrics.rs +1 -1
- data/rust-vendor/tokio/tests/rt_panic.rs +12 -0
- data/rust-vendor/tokio/tests/rt_shutdown_err.rs +82 -0
- data/rust-vendor/tokio/tests/rt_threaded.rs +49 -1
- data/rust-vendor/tokio/tests/rt_unstable_metrics.rs +32 -0
- data/rust-vendor/tokio/tests/tcp_connect.rs +2 -3
- data/rust-vendor/tokio/tests/tcp_shutdown.rs +1 -3
- data/rust-vendor/tokio/tests/tcp_socket.rs +3 -4
- data/rust-vendor/tokio/tests/tcp_stream.rs +3 -0
- data/sig/html_to_markdown.rbs +46 -0
- data/spec/convert_with_tables_spec.rb +194 -0
- metadata +80 -3
- data/rust-vendor/getrandom/src/utils/lazy.rs +0 -64
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ee40f54b9f0a1b031a8a4c6a75caac7797e452dfb2fa076d79a6b69fdcd6093d
|
|
4
|
+
data.tar.gz: dd1fbfbcc08e4a562a4c096c7530104104054eb3546acbb8fbf265941ab381a7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bef90afd805e6d0333d76fbec1c2698b62ca2f3260c4d5566d638d3950d606e2fd6b1f85c02f2c40fa39279929951ba8e8e666fde9e09ad6d0e2753c2d730e7
|
|
7
|
+
data.tar.gz: adf885b78edf97063b30e9285f2f33d3e1cee2a657e282e50d6f548fe13b686b0e3c4f4008248482d78f686ddf0041d4e1581ddfcd02bdb37a3bc66fdb88310a
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
html-to-markdown (2.
|
|
4
|
+
html-to-markdown (2.28.0)
|
|
5
5
|
rb_sys (>= 0.9, < 1.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -49,7 +49,7 @@ GEM
|
|
|
49
49
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
50
50
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
51
51
|
logger (1.7.0)
|
|
52
|
-
mcp (0.
|
|
52
|
+
mcp (0.8.0)
|
|
53
53
|
json-schema (>= 4.1)
|
|
54
54
|
minitest (6.0.2)
|
|
55
55
|
drb (~> 2.0)
|
|
@@ -60,7 +60,7 @@ GEM
|
|
|
60
60
|
ast (~> 2.4.1)
|
|
61
61
|
racc
|
|
62
62
|
prism (1.9.0)
|
|
63
|
-
public_suffix (7.0.
|
|
63
|
+
public_suffix (7.0.5)
|
|
64
64
|
racc (1.8.1)
|
|
65
65
|
rainbow (3.1.1)
|
|
66
66
|
rake (13.3.1)
|
|
@@ -89,7 +89,7 @@ GEM
|
|
|
89
89
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
90
90
|
rspec-support (~> 3.13.0)
|
|
91
91
|
rspec-support (3.13.7)
|
|
92
|
-
rubocop (1.85.
|
|
92
|
+
rubocop (1.85.1)
|
|
93
93
|
json (~> 2.3)
|
|
94
94
|
language_server-protocol (~> 3.17.0.2)
|
|
95
95
|
lint_roller (~> 1.1.0)
|
|
@@ -172,7 +172,7 @@ CHECKSUMS
|
|
|
172
172
|
ffi (1.17.3-x86_64-darwin) sha256=1f211811eb5cfaa25998322cdd92ab104bfbd26d1c4c08471599c511f2c00bb5
|
|
173
173
|
ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f
|
|
174
174
|
fileutils (1.8.0) sha256=8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02
|
|
175
|
-
html-to-markdown (2.
|
|
175
|
+
html-to-markdown (2.28.0)
|
|
176
176
|
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
|
|
177
177
|
json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
|
|
178
178
|
json-schema (6.1.0) sha256=6bf70a2cfb6dfd5a06da28093fa8190f324c88eabd36a7f47097f227321dc702
|
|
@@ -180,13 +180,13 @@ CHECKSUMS
|
|
|
180
180
|
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
181
181
|
listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2
|
|
182
182
|
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
183
|
-
mcp (0.
|
|
183
|
+
mcp (0.8.0) sha256=ae8bd146bb8e168852866fd26f805f52744f6326afb3211e073f78a95e0c34fb
|
|
184
184
|
minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d
|
|
185
185
|
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
|
186
186
|
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
|
|
187
187
|
parser (3.3.10.2) sha256=6f60c84aa4bdcedb6d1a2434b738fe8a8136807b6adc8f7f53b97da9bc4e9357
|
|
188
188
|
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
189
|
-
public_suffix (7.0.
|
|
189
|
+
public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
|
|
190
190
|
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
191
191
|
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
192
192
|
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
|
|
@@ -202,7 +202,7 @@ CHECKSUMS
|
|
|
202
202
|
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
203
203
|
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
|
|
204
204
|
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
205
|
-
rubocop (1.85.
|
|
205
|
+
rubocop (1.85.1) sha256=3dbcf9e961baa4c376eeeb2a03913dca5e3987033b04d38fa538aa1e7406cc77
|
|
206
206
|
rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
|
|
207
207
|
rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
|
|
208
208
|
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
@@ -5,7 +5,13 @@ pub mod inline_images;
|
|
|
5
5
|
#[cfg(feature = "metadata")]
|
|
6
6
|
pub mod metadata;
|
|
7
7
|
|
|
8
|
+
#[cfg(feature = "visitor")]
|
|
9
|
+
pub mod tables;
|
|
10
|
+
|
|
8
11
|
pub use inline_images::*;
|
|
9
12
|
|
|
10
13
|
#[cfg(feature = "metadata")]
|
|
11
14
|
pub use metadata::*;
|
|
15
|
+
|
|
16
|
+
#[cfg(feature = "visitor")]
|
|
17
|
+
pub use tables::*;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//! Table extraction conversion functions for Ruby bindings.
|
|
2
|
+
|
|
3
|
+
use html_to_markdown_rs::{ConversionWithTables, TableData};
|
|
4
|
+
use magnus::prelude::*;
|
|
5
|
+
use magnus::{Error, Ruby, Value};
|
|
6
|
+
|
|
7
|
+
#[cfg(feature = "metadata")]
|
|
8
|
+
use super::metadata::extended_metadata_to_ruby;
|
|
9
|
+
|
|
10
|
+
fn table_data_to_ruby(ruby: &Ruby, table: TableData) -> Result<Value, Error> {
|
|
11
|
+
let hash = ruby.hash_new();
|
|
12
|
+
|
|
13
|
+
// cells: Array[Array[String]]
|
|
14
|
+
let cells_array = ruby.ary_new();
|
|
15
|
+
for row in table.cells {
|
|
16
|
+
let row_array = ruby.ary_new();
|
|
17
|
+
for cell in row {
|
|
18
|
+
row_array.push(cell)?;
|
|
19
|
+
}
|
|
20
|
+
cells_array.push(row_array)?;
|
|
21
|
+
}
|
|
22
|
+
hash.aset(ruby.intern("cells"), cells_array)?;
|
|
23
|
+
|
|
24
|
+
// markdown: String
|
|
25
|
+
hash.aset(ruby.intern("markdown"), table.markdown)?;
|
|
26
|
+
|
|
27
|
+
// is_header_row: Array[bool]
|
|
28
|
+
let header_array = ruby.ary_new();
|
|
29
|
+
for is_header in table.is_header_row {
|
|
30
|
+
header_array.push(is_header)?;
|
|
31
|
+
}
|
|
32
|
+
hash.aset(ruby.intern("is_header_row"), header_array)?;
|
|
33
|
+
|
|
34
|
+
Ok(hash.as_value())
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// Convert a `ConversionWithTables` result to a Ruby Hash.
|
|
38
|
+
///
|
|
39
|
+
/// Returns a Hash with keys `:content`, `:metadata`, `:tables`.
|
|
40
|
+
pub fn tables_result_to_ruby(ruby: &Ruby, result: ConversionWithTables) -> Result<Value, Error> {
|
|
41
|
+
let hash = ruby.hash_new();
|
|
42
|
+
|
|
43
|
+
// content: String
|
|
44
|
+
hash.aset(ruby.intern("content"), result.content)?;
|
|
45
|
+
|
|
46
|
+
// metadata: Hash or nil
|
|
47
|
+
#[cfg(feature = "metadata")]
|
|
48
|
+
{
|
|
49
|
+
match result.metadata {
|
|
50
|
+
Some(metadata) => {
|
|
51
|
+
hash.aset(ruby.intern("metadata"), extended_metadata_to_ruby(ruby, metadata)?)?;
|
|
52
|
+
}
|
|
53
|
+
None => {
|
|
54
|
+
hash.aset(ruby.intern("metadata"), ruby.qnil())?;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
#[cfg(not(feature = "metadata"))]
|
|
59
|
+
{
|
|
60
|
+
hash.aset(ruby.intern("metadata"), ruby.qnil())?;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// tables: Array[Hash]
|
|
64
|
+
let tables_array = ruby.ary_new();
|
|
65
|
+
for table in result.tables {
|
|
66
|
+
tables_array.push(table_data_to_ruby(ruby, table)?)?;
|
|
67
|
+
}
|
|
68
|
+
hash.aset(ruby.intern("tables"), tables_array)?;
|
|
69
|
+
|
|
70
|
+
Ok(hash.as_value())
|
|
71
|
+
}
|
|
@@ -8,6 +8,9 @@ use html_to_markdown_rs::{
|
|
|
8
8
|
#[cfg(feature = "visitor")]
|
|
9
9
|
use html_to_markdown_rs::convert_with_visitor as convert_with_visitor_inner;
|
|
10
10
|
|
|
11
|
+
#[cfg(feature = "visitor")]
|
|
12
|
+
use html_to_markdown_rs::convert_with_tables as convert_with_tables_inner;
|
|
13
|
+
|
|
11
14
|
#[cfg(feature = "metadata")]
|
|
12
15
|
use html_to_markdown_rs::convert_with_metadata as convert_with_metadata_inner;
|
|
13
16
|
|
|
@@ -26,6 +29,9 @@ use types::{arg_error, runtime_error};
|
|
|
26
29
|
#[cfg(feature = "metadata")]
|
|
27
30
|
use conversion::{build_metadata_config, extended_metadata_to_ruby};
|
|
28
31
|
|
|
32
|
+
#[cfg(feature = "visitor")]
|
|
33
|
+
use conversion::tables_result_to_ruby;
|
|
34
|
+
|
|
29
35
|
#[cfg(feature = "visitor")]
|
|
30
36
|
use visitor::RubyVisitorWrapper;
|
|
31
37
|
|
|
@@ -138,6 +144,23 @@ fn convert_with_metadata_handle_fn(ruby: &Ruby, args: &[Value]) -> Result<Value,
|
|
|
138
144
|
Ok(array.as_value())
|
|
139
145
|
}
|
|
140
146
|
|
|
147
|
+
#[cfg(feature = "visitor")]
|
|
148
|
+
fn convert_with_tables_fn(ruby: &Ruby, args: &[Value]) -> Result<Value, Error> {
|
|
149
|
+
let parsed = scan_args::<(String,), (Option<Value>, Option<Value>), (), (), (), ()>(args)?;
|
|
150
|
+
let html = parsed.required.0;
|
|
151
|
+
let options = build_conversion_options(ruby, parsed.optional.0)?;
|
|
152
|
+
|
|
153
|
+
#[cfg(feature = "metadata")]
|
|
154
|
+
let metadata_config = Some(build_metadata_config(ruby, parsed.optional.1)?);
|
|
155
|
+
#[cfg(not(feature = "metadata"))]
|
|
156
|
+
let metadata_config: Option<()> = None;
|
|
157
|
+
|
|
158
|
+
let result =
|
|
159
|
+
guard_panic(|| convert_with_tables_inner(&html, Some(options), metadata_config)).map_err(conversion_error)?;
|
|
160
|
+
|
|
161
|
+
tables_result_to_ruby(ruby, result)
|
|
162
|
+
}
|
|
163
|
+
|
|
141
164
|
#[cfg(feature = "visitor")]
|
|
142
165
|
fn convert_with_visitor_fn(ruby: &Ruby, args: &[Value]) -> Result<String, Error> {
|
|
143
166
|
let parsed = scan_args::<(String,), (Option<Value>, Option<Value>), (), (), (), ()>(args)?;
|
|
@@ -227,7 +250,10 @@ fn init(ruby: &Ruby) -> Result<(), Error> {
|
|
|
227
250
|
}
|
|
228
251
|
|
|
229
252
|
#[cfg(feature = "visitor")]
|
|
230
|
-
|
|
253
|
+
{
|
|
254
|
+
module.define_singleton_method("convert_with_visitor", function!(convert_with_visitor_fn, -1))?;
|
|
255
|
+
module.define_singleton_method("convert_with_tables", function!(convert_with_tables_fn, -1))?;
|
|
256
|
+
}
|
|
231
257
|
|
|
232
258
|
#[cfg(feature = "profiling")]
|
|
233
259
|
{
|
data/lib/html_to_markdown.rb
CHANGED
|
@@ -18,6 +18,7 @@ module HtmlToMarkdown
|
|
|
18
18
|
alias native_convert_with_metadata convert_with_metadata
|
|
19
19
|
alias native_convert_with_metadata_handle convert_with_metadata_handle
|
|
20
20
|
alias native_convert_with_visitor convert_with_visitor
|
|
21
|
+
alias native_convert_with_tables convert_with_tables
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
module_function
|
|
@@ -179,4 +180,32 @@ module HtmlToMarkdown
|
|
|
179
180
|
def convert_with_metadata_handle(html, options_handle, metadata_config = nil)
|
|
180
181
|
native_convert_with_metadata_handle(html.to_s, options_handle, metadata_config)
|
|
181
182
|
end
|
|
183
|
+
|
|
184
|
+
# Convert HTML to Markdown with table extraction.
|
|
185
|
+
#
|
|
186
|
+
# Performs HTML-to-Markdown conversion while extracting structured table data
|
|
187
|
+
# (cells, markdown representation, header row flags) in a single pass.
|
|
188
|
+
#
|
|
189
|
+
# @param html [String] HTML string to convert.
|
|
190
|
+
# @param options [Hash, nil] Optional conversion configuration.
|
|
191
|
+
# @param metadata_config [Hash, nil] Optional metadata extraction configuration.
|
|
192
|
+
#
|
|
193
|
+
# @return [Hash] A hash with keys:
|
|
194
|
+
# - :content [String] The converted Markdown output
|
|
195
|
+
# - :metadata [Hash, nil] Extended metadata (if metadata extraction was configured)
|
|
196
|
+
# - :tables [Array<Hash>] Extracted tables, each with:
|
|
197
|
+
# - :cells [Array<Array<String>>] Table cells organized as rows x columns
|
|
198
|
+
# - :markdown [String] Complete rendered table in Markdown format
|
|
199
|
+
# - :is_header_row [Array<Boolean>] Per-row flag indicating header rows
|
|
200
|
+
#
|
|
201
|
+
# @raise [StandardError] If conversion fails or invalid configuration
|
|
202
|
+
#
|
|
203
|
+
# @example Basic usage
|
|
204
|
+
# html = '<table><thead><tr><th>Name</th></tr></thead><tbody><tr><td>Alice</td></tr></tbody></table>'
|
|
205
|
+
# result = HtmlToMarkdown.convert_with_tables(html)
|
|
206
|
+
# puts result[:tables].length # => 1
|
|
207
|
+
# puts result[:tables][0][:cells] # => [["Name"], ["Alice"]]
|
|
208
|
+
def convert_with_tables(html, options = nil, metadata_config = nil)
|
|
209
|
+
native_convert_with_tables(html.to_s, options, metadata_config)
|
|
210
|
+
end
|
|
182
211
|
end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"files":{".cargo_vcs_info.json":"
|
|
1
|
+
{"files":{".cargo_vcs_info.json":"b8458668d98047d4fcbd7f1ccffb0edf72a20c485832450ca8a59bbf6f363b3b","CHANGELOG.md":"ffa0395680034d5493e9a96737f5e393630fc1bd1622c1c6463a85b3bb9c119f","Cargo.lock":"70c549d961ff245cef65753b2ef43260e44ca34dc0a6fbe7e6be7d736eb7595b","Cargo.toml":"002ff7c091117de52e339a38db3e3ce6356caec3d693e6f427e02d129278b36b","Cargo.toml.orig":"4e21a017f5918f5c250abeed112a49fb17900f062f26786659c0295436fdb50e","LICENSE-APACHE":"aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf","LICENSE-MIT":"523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b","README.md":"dc7c2f0442f08fd633b5ad1cce52f0c10d36cb92965f72bf22b3151525862753","SECURITY.md":"816ea79f8c7937888ab5a972a1efb270c4bada028b448953a195359fe11d526e","benches/buffer.rs":"c417c98f7fed41c2f97d3f3ee1a12cb2d311add0866207e8b96074e4b2665510","build.rs":"662faa06d7b2a9c5bea2c17a127a90e00b9f9b31105b0360da516e47cf816e95","src/backends.rs":"b918d1ccebc13d484129b05638346f5f3de489b357f12aca92f6070b94d0f1e7","src/backends/apple_other.rs":"f8fa784588f347cfd7c2b5f37a96b23d446f95c3157668069d7146e281fa783b","src/backends/custom.rs":"448b44a9800b3be95f91a85e35f1f313894bbd4e64e3751afaecf15b3f3532b3","src/backends/efi_rng.rs":"b22e505a5e85eadf1bc0bab8f7e96f226109a5cd3fb289dee06e7ed5a36ac1ef","src/backends/esp_idf.rs":"98d4997dcf7c0869883a617f8b5f341f9c97f4e21365c68de97db783215ae864","src/backends/extern_impl.rs":"0a13d8e059ee5203cf414101017a92d9f7289f86451a23d872c471b24279ece1","src/backends/fuchsia.rs":"4404823618bf1ac30f998a080cf46712596871de954fc0681cd8328b2e598e78","src/backends/getentropy.rs":"10f9486239aea0506eedcb13b553ed064addf27a902d8e19728a811a763dbcc7","src/backends/getrandom.rs":"da934695a424479f4eb80ba3a2aab97316f3bb6ed158523160eae1e3670e2b40","src/backends/hermit.rs":"f485c6431111c0867b1ebb76ce592a8502c4d88f07ea1a9c0650d235298518af","src/backends/linux_android_with_fallback.rs":"78a5c62a17d654cccb66bc0772c7017e57b0b6451e0d7135f834917456f343fb","src/backends/linux_raw.rs":"94f6a494edd6ab99eca1989294b1064b58ba502f401b642aedbc3b97e98c0bf7","src/backends/netbsd.rs":"a4fe488579d20976d4288a18d7059cc2d6cf662f55a95ab369e9866ef8ed8ce6","src/backends/rdrand.rs":"013c90b04f882ea82a73cc82b8d282227e2cfe9fe7d4f8eae9020a1b17aeb3b1","src/backends/rndr.rs":"edded389094deef0207fdf08acdf9c2e10d9ae8576cc64f7af21333cab0d0448","src/backends/solaris.rs":"8f3e51f90f56b64c4c1376cdd5399f1fcac5a19d3a88c7ec04f355c1b543bcaa","src/backends/solid.rs":"c89c809996aa656e2ef13b0753e7c7f742a047b9e72174806467d27946d88385","src/backends/unsupported.rs":"a531ab9883b7d7b584c6f37a5c13543ec63d25d3acc36608d57d5d82ef44cbff","src/backends/use_file.rs":"37dfc2ed2a454064196a2a268fc3bc90318ea1db11a9e24a77d53474c5001d70","src/backends/vxworks.rs":"2e10e1c1039e353353cf7bbeab8c9b2b33368ca28a0b1b1557e8a86e1b705471","src/backends/wasi_p1.rs":"5bf346a3f2e654243bddab1a323f7aa07dee2636d35308d5fac9038ac862bf17","src/backends/wasi_p2_3.rs":"f31b7dee49f2265ad71e4fd5aaaaefa9236a6a4cd950ccd9aa64d80d907d3b2f","src/backends/wasm_js.rs":"d4bedab6a161b545232f751565426ef9bcf604a154eaff49fbd5d68f8d0823f5","src/backends/windows.rs":"814c83c3142e521b5d1d1f03743585328ffe385373b6cdcca58ee11b693b3fb8","src/backends/windows_legacy.rs":"d4619333768daf09c1abf28b08a972a9c6c1e2e57dca9c153821e27feb62b9ed","src/error.rs":"529e5d8e3b119bc8f1cb1cde844c667a321d7f2cda764e5a1b7459d75c7050a3","src/error_std_impls.rs":"32a3469b0a1291f2182d9bd98b9bdb6232ed259b7747b3665cbe8c3124483957","src/lib.rs":"68bd1f2daa0aec1b55da25c07744869728a8be25d7c7d127bc788cd50fd8687b","src/sys_rng.rs":"ff110b2095252c34270d1c88b600e261eb4c2e96cb79b6e6512b41c37529d7eb","src/util.rs":"b1f6bb46c35e1bc71faed96aaaac82be99df636b2e6bdcd676e898a669dee37f","src/utils/get_errno.rs":"d5afe0e5e41a32a85105fb5242156fc1c15096fd0ebb20363cb3368a5e63c7b2","src/utils/lazy_bool.rs":"573d5575c859c816262f44875f36c6aa8c58ecd5b2b1cf484d2415a6a41957d7","src/utils/lazy_ptr.rs":"5c0c29f1d636f303f65be626c998f0ef7f3e3329d6be1696479af07e53370920","src/utils/sanitizer.rs":"f9db2840b940d620efef7c5b6ab3a25ba24c46a15fdb5aecb37a22ed249d4bad","src/utils/sys_fill_exact.rs":"d18e26399844e96b0a8e6ff0e82a9d7d3ee315e97e31eb51498430b201cb768c","tests/mod.rs":"661415759db1e22017b4a7be13e3141a750032c61a85a2721cd19fd5319e7a66","tests/sys_rng.rs":"25aab3742e8c927a2f15a668d5d0808d4fd54cf69c07be9ea794d5bf30f66466"},"package":"0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"}
|