Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/magiclen/html-escape

This library is for encoding/escaping special characters in HTML and decoding/unescaping HTML entities as well.
https://github.com/magiclen/html-escape

escape html rust

Last synced: 3 months ago
JSON representation

This library is for encoding/escaping special characters in HTML and decoding/unescaping HTML entities as well.

Awesome Lists containing this project

README

        

HTML Escape
====================

[![CI](https://github.com/magiclen/html-escape/actions/workflows/ci.yml/badge.svg)](https://github.com/magiclen/html-escape/actions/workflows/ci.yml)

This library is for encoding/escaping special characters in HTML and decoding/unescaping HTML entities as well.

## Usage

### Encoding

This crate provides some `encode_*` functions to encode HTML text in different situations.

For example, to put a text between a start tag `` and an end tag ``, use the `encode_text` function to escape every `&`, `<`, and `>` in the text.

```rust
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.

```rust
let mut html = String::from("alert('");
assert_eq!(r"<script>\'s end tag is <\/script>", html_escape::encode_script_single_quoted_text_to_string("<script>'s end tag is ", &mut html));
html.push_str("');");

assert_eq!("alert(\'<script>\\\'s end tag is <\\/script>\');", html);
```

### Decoding

```rust
assert_eq!("Hello world!", html_escape::decode_html_entities("Hello world!"));
```

```rust
assert_eq!("alert(');'", html_escape::decode_script(r"alert('<\/script>);'"));
```

## No Std

Disable the default features to compile this crate without std.

```toml
[dependencies.html-escape]
version = "*"
default-features = false
```

## Benchmark

```bash
cargo bench
```

## Crates.io

https://crates.io/crates/html-escape

## Documentation

https://docs.rs/html-escape

## License

[MIT](LICENSE)