Current section

Files

Jump to
html_to_markdown lib html_to_markdown native.ex
Raw

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