dmc-parser 0.3.6

Typed AST parser for the dmc MDX compiler
Documentation
<p align="center">
  <img src="../public/logo-dark.svg" alt="dmc-parser" width="120"/>
</p>

<h1 align="center">dmc-parser</h1>

<p align="center">
  Typed AST parser for the dmc MDX compiler.
</p>

<p align="center">
  <a href="../LICENSE">MIT</a> -
  <a href="../CHANGELOG.md">Changelog</a> -
  <a href="../CONTRIBUTING.md">Contributing</a> -
  <a href="https://crates.io/crates/dmc-parser">crates.io</a> -
  <a href="https://docs.rs/dmc-parser">docs.rs</a>
</p>

<p align="center">
  <a href="https://crates.io/crates/dmc-parser"><img src="https://img.shields.io/crates/v/dmc-parser.svg" alt="crates.io"/></a>
  <a href="https://docs.rs/dmc-parser"><img src="https://docs.rs/dmc-parser/badge.svg" alt="docs.rs"/></a>
  <a href="../LICENSE"><img src="https://img.shields.io/crates/l/dmc-parser.svg" alt="MIT"/></a>
</p>

---

Typed Markdown/MDX parser for the `dmc` AST.

## Public API

- `dmc_parser::parse(&str) -> Document`
- `dmc_parser::parse_with(&str, ParseOptions) -> Document`
- `dmc_parser::parse_inline_str(&str) -> Vec<Node>`
- `dmc_parser::Parser` for manual token-stream parsing
- `dmc_parser::ast`, `refs`, `Slugger`, `github_slugify`

## Dialect flags

- `ParseOptions::cm_strict_html_blocks`
- `ParseOptions::gfm_autolinks`
- `ParseOptions::legacy_gfm_emphasis`

## Compliance

- CommonMark: `652/652`
- GFM: `670/670`

The parser resolves reference links and footnotes in a two-pass parse,
and the end-to-end spec status is checked through `dmc-parser` +
`dmc-codegen`.

## Spec suites

```sh
cargo test -p dmc-parser --test commonmark_spec commonmark_spec_no_regression -- --nocapture
cargo test -p dmc-parser --test gfm_spec gfm_spec_no_regression -- --nocapture
```