Skip to main content

Crate ironmark

Crate ironmark 

Source
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:

SyntaxHTMLOption
~~text~~<del>enable_strikethrough
==text==<mark>enable_highlight
++text++<u>enable_underline
| table |<table>enable_tables
- [x] taskcheckboxenable_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§

ast

Structs§

ParseOptions
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.