rustextile 1.0.0

Textile markup language parser for Rust
Documentation
# Rustextile - Rust Textile parser

Rustextile is a parser of a popular [Textile][1] markup language written in pure Rust.
It is a port of two libraries: the [python-textile][2] library
and the "canonical" [PHP Textile][3] implementation
(on which the python-textile library is based too).

## Functionality

This port passes the same automated tests as the original libraries do,
and supports the same full set of functionality, including

* Decorated text spans
* Images
* Tables
* Ordered/unordered lists
* Definition lists
* Complex quotations
* Code blocks
* CSS styles, classes and ID attributes
* Raw HTML inserts
* Footnotes and references
* "Restricted" parsing for untrusted user input and other safety perks
* Rendering in either XHTML or HTML5
* and [more...][1]

There is another similar Rust library called [textile-rs][4],
which was written from scratch, but sadly supports only basic capabilities of Textile
and is not fully compatible with documents created for more advanced canonical parser.

This implementation is a direct port of the canonical PHP parser. It uses a similar code structure, the same regular expressions, mostly the same variable names and the same tests fixtures.
This makes it not only more compatible, but also allows to back-port new features and fixes from still actively developing PHP version.

For me this was also a good demonstration that one can rewrite a PHP or Python code in Rust without sacrificing brevity and readability typical for such high-level interpreted languages.

[1]:https://textile-lang.com/
[2]:https://github.com/textile/python-textile
[3]:https://github.com/textile/php-textile
[4]:https://crates.io/crates/textile