RobertDober/eardown

Eardown is a Markdown Parser with a non line based parsing approach. It is meant to be EarmarkParser v2.

★ 0Forks 0ElixirGitHub ↗Compare

README

Eardown

CI Coverage Status Hex.pm Hex.pm Hex.pm Eardown is a Markdown Parser with a non line based parsing approach. It is meant to be EarmarkParser v2.

Synopsis

Eardown is meant to replace EarmarkParser.

It shall parse Markdown files and transform them into an AST, just as EarmarkParser does.

What are the reasons for this new library?

  • I found EarmarkParser difficult to extend and even maintain

  • I believe that line based parsing, although widely recommended, is not necesserily the simplest approach (for me at least), therefore Eardown uses a character based parsing approach.

  • I believe that parsing large Markdown documents in parallel, with an heuristic splitting of the input by, say lines starting with # and a fallback strategy should not be too complicated with the character based approach, but we will see.

  • Markdown itself has evolved and while Dave Thomas, aka pragdave has created a marvellous product in an incredible short time by also including popular extensions and Commonmark, nowadays almost everone and her best friend assume that GFM is supported.

    Eardown will try to do this from the beginning.

Installation

If available in Hex, the package can be installed by adding eardown to your list of dependencies in mix.exs:

def deps do
  [
    {:eardown, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/eardown.

Contributing

Pull Requests are happily accepted.

Author

Copyright © 2024 Robert Dober [email protected]

LICENSE

Same as Elixir, which is Apache License v2.0. Please refer to LICENSE for details.

Contributors

RobertDober

Issues