discord-md
Parser and generator for Discord's markdown, written in Rust
Example
Parsing
use *;
use parse;
Generating
use MarkdownDocument;
use *;
Features
- Minimal dependencies (only nom and derive_more)
- Supports the following syntax:
- Italics (
*italics*,_italics_) - Bold (
**bold**) - Underline (
__underline__) - Strikethrough (
~~strikethrough~~) - Spoiler (
||spoiler||) - One line code (
`one line code`) - Multi line code
```sh echo "multi line" echo "code" ``` - Block Quote (generator only)
> block quote > some text
- Italics (
Installation
Add the following to your Cargo.toml file:
[]
= "3.0.0"
Documentation
Parser limitations
The parser tries to mimic the behavior of the official Discord client's markdown parser, but it's not perfect. The following is the list of known limitations.
- Block quotes are not parsed.
>will be treated as plain text. - Nested emphasis, like
*italics **bold italics** italics*, may not be parsed properly. - Intraword emphasis may not be handled properly. The parser treats
foo_bar_bazas emphasis, while Discord's parser does not. - Escaping sequence will be treated as plain text.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.