Expand description
HTML-to-Markdown conversion focused on readable Markdown output.
The crate exposes a reusable HtmlToMarkdown converter for repeated work,
plus convenience functions for one-off translations.
§Examples
Convert a single HTML fragment with the default configuration:
use skymark::translate;
let markdown = translate("<p>Hello, <strong>world</strong>!</p>");
assert_eq!(markdown.trim(), "Hello, **world**!");Reuse a configured converter when translating multiple documents with the same options:
use skymark::{CodeBlockStyle, HtmlToMarkdown, Options};
let mut options = Options::default();
options.code_block_style = CodeBlockStyle::Indented;
options.bullet_marker = "-".to_owned();
let converter = HtmlToMarkdown::with_options(options);
let markdown = converter.translate("<ul><li>One</li><li>Two</li></ul>");
assert_eq!(markdown.trim(), "- One\n- Two");Translate many named HTML inputs and keep the results in deterministic key order:
use skymark::translate_many;
let converted = translate_many([
("guide", "<h1>Guide</h1>"),
("intro", "<p>Welcome</p>"),
]);
assert_eq!(converted["guide"].trim(), "# Guide");
assert_eq!(converted["intro"].trim(), "Welcome");Structs§
- Html
ToMarkdown - Reusable HTML-to-Markdown converter.
- Options
- Re-exported code block rendering styles used by
Options. Converter options. - Translator
Config - Re-exported translator override types used by
HtmlToMarkdown::with_options_and_translators. Static translator configuration for one or more tags.
Enums§
- Code
Block Style - Re-exported code block rendering styles used by
Options. Code block rendering style. - Surrounding
Newlines - Re-exported translator override types used by
HtmlToMarkdown::with_options_and_translators. Newlines added around a translated node.
Functions§
- translate
- Converts HTML to Markdown with default options.
- translate_
many - Converts named HTML inputs to Markdown in deterministic key order.
- translate_
with_ options - Converts HTML to Markdown with custom
Options.