19 releases

0.5.4 Oct 4, 2021
0.5.3 Mar 27, 2021
0.4.4 Mar 7, 2021
0.4.0 Feb 24, 2021
0.3.3 Jan 27, 2021

#170 in Parser implementations

Download history 57/week @ 2021-10-06 121/week @ 2021-10-13 15/week @ 2021-10-20 21/week @ 2021-10-27 37/week @ 2021-11-03 8/week @ 2021-11-10 27/week @ 2021-11-17 15/week @ 2021-11-24 32/week @ 2021-12-01 39/week @ 2021-12-08 31/week @ 2021-12-15 27/week @ 2021-12-22 22/week @ 2021-12-29 72/week @ 2022-01-05 28/week @ 2022-01-12 62/week @ 2022-01-19

200 downloads per month
Used in 3 crates (via visdom)

MIT license

260KB
7.5K SLoC

rphtml

一个用 rust 编写的 html 文档解析器,0.4.0 版本前通过 wasm-pack/wasm-bindgen 提供 npm 包。

npm version Build Status codecov

如何使用

use rphtml::parser::{ Doc, ParseOptions, RenderOptions, HResult };
fn main()->HResult{
  let doc = Doc::parse("<div id='content'>rpthml</div>", ParseOptions{
    case_sensitive_tagname: false, // 解析时标签区分大小写,`<div>` 和 `<DIV>` 将被视作不同标签,不建议开启
    allow_self_closing: false, // 允许非替换元素使用自闭合的写法,如 `<div class='' />`
    auto_fix_unclosed_tag: true, // 自动修复没有结束的标签,注意这里只是简单的将标签闭合
    auto_fix_unexpected_endtag: true, // 自动修复不正确的结束标签,如 "<div></p></div>" 会被修复为 "<div></div>"
    auto_fix_unescaped_lt: true, // 自动修复没有实体转译的左尖括号 '<', 比如`<div>a<b</div>`会被修复为`<div>a&lt;b</div>`
  })?;
  // 获取root根节点
  let root = doc.get_root_node();
  let render_html = doc.render(&RenderOptions{
    ..Default::default() // RenderOptions的参数定义可以在wiki中查看
  });
}

License

MIT License.

Dependencies

~0.4–0.8MB
~22K SLoC