This library provides an adapter from pulldown-cmark events to hamlet tokens.
Note that block/inline html within markdown is not parsed into proper hamlet tokens.
Example
extern crate pulldown_cmark;
extern crate cmark_hamlet;
use Write;
use Parser;
use Adapter;
Translation
Event mapping
pulldown_cmark event |
Action |
---|---|
Start(tag) |
Context dependent; see Tag mapping |
End(tag) |
Context dependent |
Text(text) |
Context dependent; see Text handling |
Html(html) |
Token::RawText(html) |
InlineHtml(html) |
Token::RawText(html) |
SoftBreak |
"\n" (see Text handling) |
HardBreak |
Token representing <br /> |
FootnoteReference(_) |
unimplemented! |
Tag mapping
pulldown_cmark tag |
Html tag name |
---|---|
BlockQuote |
blockquote |
CodeBlock(lang) |
pre and code (see CodeBlock handling) |
Code |
code |
Emphasis |
em |
FootnoteDefinition(_) |
unimplemented! |
Header(level) |
h{level} |
Image(_, _) |
img |
Item |
li |
Link(_, _) |
a |
List(None) |
ul |
List(Some(_)) |
ol |
Paragraph |
p |
Rule |
hr |
Strong |
strong |
Table(_) |
table |
TableCell |
td or th |
TableHead |
tr |
TableRow |
tr |
Text handling
All successive Text
and SoftBreak
events are clumped together to form a
single hamlet::Text
token, if group_text
argument provided was true
.
CodeBlock
handling
If lang
attribute is not empty, then a data-lang
attribute is added to
the pre
tag with that value.