mork

Package Version Hex Docs

MÖRK is a Markdown parser written in pure Gleam, with the ambition to be 100% spec compliant with Commonmark and eventually to implement all of the GFM Markdown extensions as well.

All Commonmark tests from the spec test suite are now passing.

NOTE: This is a very early release of a new implementation of the Commonmark spec, not using the C or javascript implementations at all. As such, it is guaranteed to have bugs, differences in output and poor performance. Buyer beware.

Example

gleam add mork@1
import simplifile
import mork

pub fn main() -> Nil {
  let readme = "./README.md"
  let assert Ok(markdown) = simplifile.read(from: readme)
  let html = markdown |> mork.parse |> mork.to_html
  let assert Ok(_) = html |> simplifile.write(to: "README.html")
}

Further documentation can be found at https://hexdocs.pm/mork.

Development

gleam run   # Run the project
gleam test  # Run the tests
gleam test tabs # Run only the Tabs section of tests
gleam test tabs 9 # Run only example number 9 from the test section
gleam test custom # Run only extra tests (not from the spec)

Requirements

The goal is to run on the Javascript target as well, but I haven’t tested this yet and the regular expressions work differently there so it is unlikely to work right now.

Search Document