2个版本

0.1.1 2021年5月10日
0.1.0 2019年8月16日

1400解析器实现 中排名

Download history 603/week @ 2024-03-17 659/week @ 2024-03-24 1778/week @ 2024-03-31 775/week @ 2024-04-07 712/week @ 2024-04-14 811/week @ 2024-04-21 1207/week @ 2024-04-28 1100/week @ 2024-05-05 1445/week @ 2024-05-12 1145/week @ 2024-05-19 787/week @ 2024-05-26 869/week @ 2024-06-02 452/week @ 2024-06-09 685/week @ 2024-06-16 426/week @ 2024-06-23 401/week @ 2024-06-30

每月下载量 2,007
14 仓库中使用 (直接使用 11 个)

Apache-2.0 / MIT / MPL-2.0

57KB
426

Rust的HTML实体编码库

crates.io version TravisCI build status Docs License

示例用法

所有示例都假设存在 extern crate escaper;use escaper::{此处相关的函数};

编码

escaper::encode_minimal() 使用最小集的HTML实体对输入字符串进行编码。

let title = "Cats & dogs";
let tag = format!("<title>{}</title>", encode_minimal(title));
assert_eq!(tag.as_slice(), "<title>Cats &amp; dogs</title>");

还有一个用于将字符串编码为HTML属性值的函数 escaper::encode_attribute()

解码

escaper::decode_html() 解码编码的字符串,将HTML实体替换为相应的字符。支持命名、十六进制和十进制实体。返回一个 Result 值,其中包含 Ok 中的解码字符串或 Err 中的错误。

let encoded = "Cats&#x20;&amp;&#32;dogs";
let decoded = match decode_html(encoded) {
  Err(reason) => panic!("Error {:?} at character {}", reason.kind, reason.position),
  Ok(s) => s
};
assert_eq!(decoded.as_slice(), "Cats & dogs");

避免分配

编码和解码函数都有接受 Writer 作为输出而不是返回 String 的形式。这些版本可以用于避免分配和复制,如果返回的 String 只需被写入 Writer

许可证

MIT 或 Apache 2.0

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交给pgp的任何贡献,都将双重许可如上所述,没有任何附加条款或条件。

依赖项