Packages
html_to_markdown
3.6.19
3.9.0
3.8.3
3.8.2
3.8.1
3.8.0
3.8.0-rc.2
3.8.0-rc.1
3.7.2
3.7.1
3.7.0
3.6.21
3.6.20
3.6.19
3.6.18
3.6.17
3.6.16
3.6.15
3.6.14
3.6.13
3.6.11
3.6.10
3.6.9
3.6.8
3.6.3
3.6.1
3.6.0
3.6.0-rc.25
3.6.0-rc.23
3.6.0-rc.22
3.6.0-rc.21
3.6.0-rc.20
3.6.0-rc.17
3.6.0-rc.16
3.6.0-rc.14
3.6.0-rc.13
3.6.0-rc.12
3.6.0-rc.11
3.6.0-rc.10
3.6.0-rc.9
3.6.0-rc.7
3.6.0-rc.3
3.6.0-rc.2
3.6.0-rc.1
3.5.7
3.5.5
3.5.3
3.5.2
3.5.1
3.5.0
3.5.0-rc.1
3.4.0
3.4.0-rc.45
3.4.0-rc.44
3.4.0-rc.42
3.4.0-rc.41
3.4.0-rc.40
3.4.0-rc.25
3.4.0-rc.24
3.4.0-rc.23
3.4.0-rc.21
3.4.0-rc.20
3.4.0-rc.18
3.4.0-rc.16
3.4.0-rc.15
3.4.0-rc.14
3.4.0-rc.13
3.4.0-rc.12
3.4.0-rc.11
3.4.0-rc.9
3.4.0-rc.8
3.4.0-rc.2
3.4.0-rc.1
3.3.2
3.2.4
3.2.2
3.2.1
3.2.0
3.1.0
3.0.2
3.0.1
3.0.0
2.30.0
2.29.0
2.28.6
2.28.5
2.28.4
2.28.3
2.28.2
2.28.1
2.28.0
2.27.3
2.27.2
2.27.1
2.27.0
2.26.3
2.26.2
2.26.1
2.25.1
2.25.0
2.24.6
2.24.5
2.24.4
2.24.3
2.24.1
2.23.4
2.23.3
2.23.2
2.23.1
2.23.0
2.22.5
2.22.2
2.22.1
2.22.0
2.21.1
2.20.0
2.19.8
2.19.7
2.19.6
2.19.5
2.19.4
2.19.3
2.19.2
2.19.1
2.19.0
2.18.0
2.16.1
2.16.0
2.15.0
2.14.11
2.14.10
2.14.9
2.14.8
2.14.7
2.14.6
2.14.3
2.14.2
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.4
2.11.3
2.11.1
2.10.1
2.9.2
2.9.1
2.9.0
2.8.3
High-performance HTML to Markdown converter
Current section
Files
Jump to
Current section
Files
lib/html_to_markdown/native.ex
# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:585c7ebe9e143ecddb26d8c355cfffd7a24a39547485dcb8ef6b8ba2316e8d41
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule HtmlToMarkdown.Native do
@moduledoc false
use RustlerPrecompiled,
otp_app: :html_to_markdown,
crate: "html_to_markdown_nif",
base_url: "https://github.com/kreuzberg-dev/html-to-markdown/releases/download/v#{Mix.Project.config()[:version]}",
version: Mix.Project.config()[:version],
targets: [
"aarch64-apple-darwin",
"aarch64-unknown-linux-gnu",
"x86_64-unknown-linux-gnu",
"x86_64-pc-windows-gnu"
],
nif_versions: ["2.16", "2.17"],
force_build: System.get_env("HTML_TO_MARKDOWN_BUILD") in ["1", "true"] or Mix.env() in [:dev]
@doc """
Convert HTML to Markdown, Djot, or plain text.
Returns a [`ConversionResult`] with converted content plus optional metadata,
document structure, table data, inline images, and warnings depending on the
enabled features and conversion options.
# Arguments
* `html` — the HTML string to convert.
* `options` — conversion options. Rust accepts bare [`ConversionOptions`],
`Some(options)`, or `None`. Language bindings expose the same option
fields through native constructors or optional parameters.
# Example
```
use html_to_markdown_rs::{convert, ConversionOptions};
let html = "<h1>Hello World</h1>";
// Bare options — most ergonomic.
let result = convert(html, ConversionOptions::default()).unwrap();
assert!(result.content.as_deref().unwrap_or("").contains("Hello World"));
// `None` falls back to defaults.
let result = convert(html, None).unwrap();
assert!(result.content.as_deref().unwrap_or("").contains("Hello World"));
```
# Errors
Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
"""
def convert(_html, _options), do: :erlang.nif_error(:nif_not_loaded)
def convert_with_visitor(_html, _options, _visitor), do: :erlang.nif_error(:nif_not_loaded)
def visitor_reply(_ref_id, _result), do: :erlang.nif_error(:nif_not_loaded)
def complete_trait_call(_reply_id, _result_json), do: :erlang.nif_error(:nif_not_loaded)
def fail_trait_call(_reply_id, _error_message), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Validate that the header level is within valid range (1-6).
# Returns
`true` if level is 1-6, `false` otherwise.
# Examples
```
let valid = HeaderMetadata {
level: 3,
text: "Title".to_string(),
id: None,
depth: 2,
html_offset: 100,
};
assert!(valid.is_valid());
let invalid = HeaderMetadata {
level: 7, // Invalid
text: "Title".to_string(),
id: None,
depth: 2,
html_offset: 100,
};
assert!(!invalid.is_valid());
```
"""
def headermetadata_is_valid(_obj), do: :erlang.nif_error(:nif_not_loaded)
def conversionoptions_default, do: :erlang.nif_error(:nif_not_loaded)
def preprocessingoptions_default, do: :erlang.nif_error(:nif_not_loaded)
@doc """
Return a reference to the attribute map.
If the context was built with [`NodeContext::with_lazy_attributes`], the
map is materialized on the first call and cached for subsequent calls.
If this method is never called, no allocation occurs for attributes.
"""
def nodecontext_attributes(_obj), do: :erlang.nif_error(:nif_not_loaded)
@doc """
Construct a `NodeContext` with an owned attribute map.
Use this when the caller already has materialized attributes.
"""
def nodecontext_with_owned_attributes(_node_type, _tag_name, _attributes, _depth, _index_in_parent, _parent_tag, _is_inline),
do: :erlang.nif_error(:nif_not_loaded)
@doc "Promote any borrowed fields into owned storage so the context can outlive `'a`."
def nodecontext_into_owned(_obj), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def document_metadata_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def header_metadata_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def link_metadata_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def image_metadata_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def structured_data_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def html_metadata_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def conversion_options_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def preprocessing_options_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def image_dimensions_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def document_structure_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def document_node_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def text_annotation_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def metadata_entry_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def conversion_result_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def table_grid_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def grid_cell_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def table_data_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def processing_warning_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
@doc false
def node_context_from_json(_json), do: :erlang.nif_error(:nif_not_loaded)
end