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:e67924a4e20ae3baa3063a960ef4248e2ea060e7985280e4f28255482661bdd8
# 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, returning a [`ConversionResult`] with content, metadata, images,
and warnings.
# Arguments
* `html` — the HTML string to convert.
* `options` — conversion options. The parameter bound is
`impl Into<Option<ConversionOptions>>`, so any of the following call shapes are accepted:
- `convert(html, ConversionOptions::default())` — bare options.
- `convert(html, opts)` — bare options.
- `convert(html, Some(opts))` — explicit `Option`.
- `convert(html, None)` — fall back to [`ConversionOptions::default`].
# 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 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)
end