3 个版本
使用旧的 Rust 2015
0.0.3 | 2016 年 11 月 8 日 |
---|---|
0.0.2 | 2016 年 11 月 8 日 |
0.0.1 | 2016 年 11 月 5 日 |
#10 in #strings
22 每月下载量
10KB
143 行
escapade - 类型辅助 HTML 安全性
escapade
受 ActiveSupports SafeBuffer 的启发。
escapade
提供字符串连接和写入功能,但在过程中会自动转义数据中的任何 HTML,这可以防止意外地将未转义的字符串写入输出。
该库提供了一种用于 HTML 安全连接的 String 类型和一个包装实现 Write
的 writer。
该库与任何实现 AsRef<str>
的类型一起工作。
您可能希望为模板语言使用此库 ;).
使用方法
将以下内容放入您的 dependencies
部分的 Cargo.toml
escapade = "0.0.2"
写入模式
使用 SafeWriter
结构体将任何实现 Write
的类型转换为 HTML 安全。
extern crate escapade;
use escapade::EscapedWriter;
use escapade::EscapedWrite;
fn main() {
let mut buffer = EscapedWriter::new(vec![]);
buffer.write_str("<hello>&world</hello>").expect("write should not fail");
assert_eq!("<hello>&world</hello>", String::from_utf8(buffer.into_inner()).unwrap());
}
字符串模式
将未转义的字符串追加到任何转义字符串中会转义第二个字符串。
extern crate escapade;
use escapade::Append;
use escapade::Escapable;
fn main() {
let mut s = String::from("<hello>").escape();
s.append_str(String::from("&world</hello>"));
assert_eq!("<hello>&world</hello>", s.into_inner());
}
转义字符串不能追加到普通字符串。
选择安全性
有时,您确定某个字符串是安全的(例如,您手动创建了它)。在这种情况下,您可以选择进入安全性,以避免转义
extern crate escapade;
use escapade::Escapable;
use escapade::EscapedWriter;
use escapade::EscapedWrite;
fn main() {
let mut buffer = EscapedWriter::new(vec![]);
buffer.write_str("<hello>&world</hello>".safe()).expect("write should not fail");
assert_eq!("<hello>&world</hello>", String::from_utf8(buffer.into_inner()).unwrap());
}
待办事项
- 再考虑一下接口
- 升级到 1.0.0
许可证
MIT
致谢
编码功能来自 rust-htmlescape,由 Viktor Dahl 提供,许可证为 MIT。
无运行时依赖
~150KB