Crate jotdown

Source
Expand description

A pull parser for Djot.

The main entry is through Parser which constructs an Iterator of Events. The events can then be processed before rendering them via the Render trait. This crate provides an html module that implements an HTML renderer.

§Feature flags

  • html (default): build the html module and a binary that converts djot to HTML.

§Examples

Generate HTML from Djot input:

let djot_input = "hello *world*!";
let events = jotdown::Parser::new(djot_input);
let html = jotdown::html::render_to_string(events);
assert_eq!(html, "<p>hello <strong>world</strong>!</p>\n");

Apply some filter to a specific type of element:

let events =
    jotdown::Parser::new("a [link](https://example.com)").map(|e| match e {
        Event::Start(Link(dst, ty), attrs) => {
            Event::Start(Link(dst.replace(".com", ".net").into(), ty), attrs)
        }
        e => e,
    });
let html = jotdown::html::render_to_string(events);
assert_eq!(html, "<p>a <a href=\"https://example.net\">link</a></p>\n");

Modules§

  • An HTML renderer that takes an iterator of Events and emits HTML.

Structs§

Enums§

Traits§