Crates.io | html-escape |
lib.rs | html-escape |
version | 0.2.13 |
source | src |
created_at | 2020-06-26 13:17:14.021156 |
updated_at | 2022-12-23 15:54:00.817797 |
description | This library is for encoding/escaping special characters in HTML and decoding/unescaping HTML entities as well. |
homepage | https://magiclen.org/html-escape |
repository | https://github.com/magiclen/html-escape |
max_upload_size | |
id | 258381 |
size | 144,264 |
This library is for encoding/escaping special characters in HTML and decoding/unescaping HTML entities as well.
This crate provides some encode_*
functions to encode HTML text in different situations.
For example, to put a text between a start tag <foo>
and an end tag </foo>
, use the encode_text
function to escape every &
, <
, and >
in the text.
assert_eq!("a > b && a < c", html_escape::encode_text("a > b && a < c"));
The functions suffixed with _to_writer
, _to_vec
or _to_string
are useful to generate HTML.
let mut html = String::from("<input value=");
assert_eq!("Hello world!", html_escape::encode_unquoted_attribute_to_string("Hello world!", &mut html));
html.push_str(" placeholder=\"");
assert_eq!("The default value is "Hello world!".", html_escape::encode_double_quoted_attribute_to_string("The default value is \"Hello world!\".", &mut html));
html.push_str("\"/><script>alert('");
assert_eq!(r"<script>\'s end tag is <\/script>", html_escape::encode_script_single_quoted_text_to_string("<script>'s end tag is </script>", &mut html));
html.push_str("');</script>");
assert_eq!("<input value=Hello world! placeholder=\"The default value is "Hello world!".\"/><script>alert(\'<script>\\\'s end tag is <\\/script>\');</script>", html);
assert_eq!("Hello world!", html_escape::decode_html_entities("Hello world!"));
assert_eq!("alert('<script></script>);'", html_escape::decode_script(r"alert('<script><\/script>);'"));
Disable the default features to compile this crate without std.
[dependencies.html-escape]
version = "*"
default-features = false
cargo bench
https://crates.io/crates/html-escape