etch 0.4.2

Not just a text formatter, don't mark it down, etch it.
Documentation
In etch paragraphs are marked by two or more new lines.

For example, this is a new paragraph.

[some, tags]
You can also tag paragraphs and other block level elements by placing a
tags section on the previous line.

You can tag words by appending[a tag] a tags section following the word and
you can tag multiple words by [wrapping them with square brackets][a tag]
followed by a tags section.

You can also mark multiple words with *emphasis* or **strong emphasis** by
wrapping them with one or two asterisk characters.
You can also *tag them*[a tag].

You can also mark inline quotes with "double quotation marks", but not
single quotation characters as those are reserved for apostrophies. And don't
forget, you can also "tag them"[a tag].

You can also mark inline preformatted words with `single`, ``double`` or
```triple``` backtick characters. This is useful in situations where you have
a backtick in your code sample.

Headings can be written by prefixing your test with one to six `#` characters:

# This is my section
## This is my state.

You can write bulleted lists with either a dash:

    -   First item,
    -   Second item!

And list items can contain any other block level element, so long as it is
indented to the same depth:

    -   My list

        -   Is quite

            -   # Deep!

                It even contains paragraphs!

Numbered lists can be written using an asterisk:

    *   Now how am I supposed to breathe,
    *   When there is no air?

You can write figures using three or more equal signs as a prefix and suffix:

    ===
    This is a figure, it can contain any block level elements.
    ===

Figures may also have captions:

    ===
    This is a figure,

    ---
    And this is a caption.
    ===

Quotations are very similar to figures but using double quotation marks:

    """
    This is a quotation, it can contain any block level elements,

    ---
    This is a citation.
    """

You can of course write preformatted sections using three or more backticks:

    ```
    This is preformatted and will not be processed.
    ```

You and don't forget, you can mark any block level element with tags:

    [rs]
    ```
    fn main() { ... }
    ```

Finally, you can define your tags using attributes, the following attributes
define the `some` and `tags` tags as classes:

#[some: .some]
#[tags: .tags]

You can also use tags to link to other documents or set element attributes:

#[a tag: @href https://example.com]

Tags can be predefined by the etch processor. For example, this is used for
implementing syntax highlighting with the `rs` tag.

Attributes can also be used to specify metadata about a document:

#meta[title: An introduction to writing with Etch]
#meta[date: 2019/05/26]

You can also import other documents into the current document:

#import[footer.etch]

You can also import other files as preformatted text:

[rs]
#import[example.rs]