1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
mod block;
mod span;
#[allow(missing_docs)]
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct OrderedListType(pub String);
#[allow(missing_docs)]
#[derive(Debug, PartialEq, Clone)]
pub enum Block {
Header(Vec<Span>, usize),
Paragraph(Vec<Span>),
Blockquote(Vec<Block>),
CodeBlock(Option<String>, String),
OrderedList(Vec<ListItem>, OrderedListType),
UnorderedList(Vec<ListItem>),
LinkReference(String, String, Option<String>),
Raw(String),
Hr,
}
#[allow(missing_docs)]
#[derive(Debug, PartialEq, Clone)]
pub enum ListItem {
Simple(Vec<Span>),
Paragraph(Vec<Block>),
}
#[allow(missing_docs)]
#[derive(Debug, PartialEq, Clone)]
pub enum Span {
Break,
Text(String),
Code(String),
Link(String, String, Option<String>),
ReferenceLink(String, String),
Image(String, String, Option<String>),
Emphasis(Vec<Span>),
Strong(Vec<Span>),
}
pub fn parse(md: &str) -> Vec<Block> {
block::parse_blocks(md)
}