Home

Awesome

commonmark

Package Version Hex Docs Erlang-compatible JavaScript-compatible

gleam add commonmark
import commonmark/html as commonmark
import gleam/io

pub fn main() {
  "# Hello, Gleam!

This is a test."
  |> commonmark.render_to_html
  |> io.println
  // -> "<h1>Hello, Gleam!</h1>\n<p>This is a test.</p>\n"
}

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

You can view this README as an AST here.

There is also an interactive demo which you can use to test how this library interacts with your documents.

Syntax support

[!WARNING] šŸš§ This package is still heavily under construction šŸš§

Legend

CommonMark

The current version of CommonMark targetted is 0.31.2.

Raw HTML features will be tackled last as the potential security issues around this need to be considered.

Github Flavoured Markdown

The current version of GFM targetted is 0.29-gfm.

Other extensions

Project structure

The commonmark package is just the parser as well as a simple HTML renderer which returns a string, mostly to facilitate checking CommonMark spec compliance. Most likely you want a specialised render for whatever framework you're using though.

Known renderer projects:

Development

gleam test              # Run the tests
gleam shell             # Run an Erlang shell

Tools

cd tools/
gleam run -m benchmark  # Run the benchmarks
gleam run -m codegen    # Run the codegen tasks (these are committed in the repo)