Add basic README

This commit is contained in:
Tyler Hallada 2020-04-26 01:17:06 -04:00
parent 6bdb5f97ea
commit aa582ee33d
2 changed files with 31 additions and 0 deletions

30
README.md Normal file
View File

@ -0,0 +1,30 @@
# chela: HTML & CSS Sanitizer and Transformer
![chela](img/chela.svg)
chela (/ˈkiːlə/ — KEE-LUH) is a program that prunes untrusted HTML and CSS using
a whitelist of rules. It is also a library for general-purpose HTML and CSS
transforming that allows users to define custom functions that modify the parsed
HTML tree node-by-node as it is traversed.
**This is still an experimental project. Use in production environments at your
own risk.**
chela is heavily inspired by the Ruby project
[sanitize](https://github.com/rgrove/sanitize). The goal of chela is to match
the ease and usability of sanitize but with the performance and reliability of
Rust under the hood. The browser-grade
[html5ever](https://github.com/servo/html5ever) HTML parser and
[rust-cssparser](https://github.com/servo/rust-cssparser) are used to parse HTML
and CSS respectively.
## Why chela?
At the time of writing, [ammonia](https://github.com/rust-ammonia/ammonia) is
the most popular and battle-tested HTML sanitization library written in Rust. In
most cases, it should be used over this library. However, chela provides
sanitization of CSS in addition to HTML, which ammonia does not support. Also,
chela allows users to write custom functions to perform more complex
transformations that simple whitelist rules cannot support. In this way, chela
is more than a sanitization library, but a tool to rapidly perform
transformations on HTML and CSS inputs.

1
img/chela.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100" viewBox="0 0 100 100"><g transform="translate(50 50) scale(0.69 0.69) rotate(-15) translate(-50 -50)" style="fill:#d14e21"><svg fill="#d14e21" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 64 64" x="0px" y="0px"><title>crab-claw-shell-animal-aquatic-cuisine</title><path d="M34.972,29.382l3.589,2.87,5.594-12.9a9.554,9.554,0,0,0-1.228-9.638l-8.9,18.911Z"></path><polygon points="42.986 54 41.5 54 37 60 42.907 60 42.986 54"></polygon><polygon points="39.776 52.964 35.952 47.191 27.225 47.191 35.059 59.255 39.776 52.964"></polygon><path d="M25.821,45.191h10.04a22.492,22.492,0,0,0,2.1-9.455v-1.4l-5.8-4.636a.962.962,0,0,1-.2-.224.716.716,0,0,1-.046-.08.957.957,0,0,1-.082-.2c-.008-.029-.018-.057-.024-.086a1,1,0,0,1-.019-.29v-.009l2.358-24.77A14.756,14.756,0,0,0,24.037,9.159L22.776,10.63A24,24,0,0,0,23.342,42.5ZM28.739,7.785,29.761,9.5a10.761,10.761,0,0,0-2.686,2.259l-1.519-1.3A12.75,12.75,0,0,1,28.739,7.785ZM24.3,11.932l1.517,1.3a20.068,20.068,0,0,0-2.774,4.217l-1.8-.881A21.991,21.991,0,0,1,24.3,11.932ZM19,23h2v2H19Zm0,4h2v2H19Zm4,6H21V31h2Zm0-8h2v2H23Z"></path></svg></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB