2 个版本
使用旧的Rust 2015
0.0.2 | 2016年12月16日 |
---|---|
0.0.1 | 2016年4月2日 |
#12 in #pulldown-cmark
12KB
223 行
cmark-hamlet
此crate提供从pulldown-cmark标签到hamlet标记的适配器,实际上是一个简单的markdown-to-html实现。
注意:正在进行中;尚未准备好使用。
lib.rs
:
此库提供从pulldown-cmark事件到hamlet标记的适配器。
注意:markdown中的块/内联html不会被解析为正确的hamlet标记。
示例
extern crate pulldown_cmark;
extern crate cmark_hamlet;
use std::fmt::Write;
use pulldown_cmark::Parser;
use cmark_hamlet::Adapter;
fn main() {
let md = "Ok, [google][ref]\n\n- - -\n\n\
```rust\n\
use hamlet;\n\
```\n\n\
[ref]: http://google.com";
let ada = Adapter::new(Parser::new(md), false);
let mut res = String::from("");
for token in ada {
write!(res, "{}", token).unwrap();
}
assert_eq!("<p>Ok, <a href=\"http://google.com\">google</a></p><hr />\
<pre data-lang=\"rust\"><code>use hamlet;\n</code></pre>",
res);
}
翻译
事件映射
pulldown_cmark 事件 |
动作 |
---|---|
开始(标签) |
上下文相关;见 标签映射 |
结束(标签) |
上下文相关 |
文本(文本) |
上下文相关;见 文本处理 |
HTML(HTML) |
标记::原始文本(HTML) |
内联HTML(HTML) |
标记::原始文本(HTML) |
软换行 |
"\n" (见 文本处理) |
硬换行 |
Token 表示 <br /> |
脚注引用(_) |
未实现! |
标签映射
pulldown_cmark 标签 |
HTML 标签名 |
---|---|
块引用 |
blockquote |
代码块(lang) |
pre 和 code (见 CodeBlock 处理) |
代码 |
code |
强调 |
em |
脚注定义(_) |
未实现! |
标题(级别) |
h{级别} |
图片(_, _) |
img |
项 |
li |
链接(_, _) |
a |
列表(无) |
ul |
列表(有的(_)) |
ol |
段落 |
p |
规则 |
hr |
强调 |
strong |
表格(_) |
table |
表格单元格 |
td 或 th |
表头 |
tr |
表格行 |
tr |
文本处理
所有后续的 Text
和 SoftBreak
事件被合并成一个单独的 hamlet::Text
标记,如果提供了 group_text
参数 则为 true
。
CodeBlock
处理
如果 lang
属性不为空,则会在 pre
标签上添加一个具有该值的 data-lang
属性。
依赖项
约1MB
约18K SLoC