6 releases (stable)

1.2.1 Sep 21, 2020
1.1.1 Sep 21, 2020
1.0.1 Sep 17, 2020
0.1.1 Sep 16, 2020
0.1.0 Sep 16, 2020

#656 in Text processing

Download history 11135/week @ 2024-01-22 10214/week @ 2024-01-29 9127/week @ 2024-02-05 11013/week @ 2024-02-12 8932/week @ 2024-02-19 9187/week @ 2024-02-26 5792/week @ 2024-03-04 8497/week @ 2024-03-11 7693/week @ 2024-03-18 8795/week @ 2024-03-25 5791/week @ 2024-04-01 4658/week @ 2024-04-08 7470/week @ 2024-04-15 7699/week @ 2024-04-22 6255/week @ 2024-04-29 7933/week @ 2024-05-06

29,554 downloads per month
Used in journal_entry

MIT license

34KB
960 lines

markdown-gen

Rust crate for generating Markdown files

Usage

let file = File::create("test.md").unwrap();
let mut md = Markdown::new(file);

md.write("Heading".heading(1)).unwrap();
md.write("Subheading".italic().heading(2)).unwrap();

md.write("bold".bold()).unwrap();

md.write("first paragraph").unwrap();
md.write(
    "Links: ".paragraph()
    .append("Rust".bold().link_to("https://rust-lang.org"))
    .append(", ")
    .append("Google".italic().link_to("https://google.com"))
).unwrap();

md.write(
    List::new(true)
        .title("numbered list")
        .item("item 1")
        .item("bold".bold())
        .item(
                List::new(false)
                    .title("nested bullet list")
                    .item(
                        "bold".bold()
                            .paragraph().append(
                            "italic".italic()
                        )
                    )
           )
).unwrap();

md.write("quote".quote()).unwrap();

This produces the following Markdown document

# Heading
## *Subheading*
**bold**

first paragraph

Links: [**Rust**](https://rust\-lang\.org), [*Google*](https://google\.com)

numbered list
   1. item 1
   1. **bold**
   1. nested bullet list
      * **bold***italic*
>quote

You can also generate Markdown to Vec<u8>:

let mut md = Markdown::new(Vec::new());

md.write("test".heading(1)).unwrap();

let vec = md.into_inner();
assert_eq!(String::from_utf8(vec).unwrap(), "# test\n");

No runtime deps