Expand description
§ironmark
A fast, CommonMark 0.31.2 compliant Markdown-to-HTML parser with extensions.
§Usage
use ironmark::{parse, ParseOptions};
// With defaults (all extensions enabled)
let html = parse("# Hello, **world**!", &ParseOptions::default());
// Disable specific extensions
let opts = ParseOptions {
enable_strikethrough: false,
enable_tables: false,
..Default::default()
};
let html = parse("Plain CommonMark only.", &opts);§Security
When rendering untrusted input, enable these options:
use ironmark::{parse, ParseOptions};
let opts = ParseOptions {
disable_raw_html: true, // escape HTML blocks & inline HTML
max_input_size: 1_000_000, // limit input to 1 MB
..Default::default()
};
let html = parse("<script>alert(1)</script>", &opts);
assert!(!html.contains("<script>"));Additionally, javascript:, vbscript:, and data: URIs (except data:image/…)
are always stripped from link and image destinations regardless of options.
§Extensions
All extensions are enabled by default via ParseOptions:
| Syntax | HTML | Option |
|---|---|---|
~~text~~ | <del> | enable_strikethrough |
==text== | <mark> | enable_highlight |
++text++ | <u> | enable_underline |
| table | | <table> | enable_tables |
- [x] task | checkbox | enable_task_lists |
| bare URLs | <a> | enable_autolink |
| newlines | <br /> | hard_breaks |
Re-exports§
pub use ast::Block;pub use ast::ListKind;pub use ast::TableAlignment;pub use ast::TableData;
Modules§
Structs§
- Parse
Options - Options for customizing Markdown parsing behavior.
Functions§
- parse
- Parse a Markdown string and return the rendered HTML.
- parse_
to_ ast - Parse a Markdown string and return the block-level AST.