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.
Warning
🚧 This package is still heavily under construction 🚧
- ✅ - Completed
- 🚧 - In Progress
- ❌ - Unsupported
The current version of CommonMark targetted is 0.31.2.
- ✅ Thematic breaks
- ✅ ATX headings
- ✅ Setext headings
- ✅ Indented code blocks
- ✅ Fenced code blocks
- ❌ Link reference definitions
- ✅ Paragraphs
- ✅ Block quotes
- 🚧 Ordered lists
- 🚧 Unordered lists
- ✅ Code spans
- 🚧 Emphasis and strong emphasis
- 🚧 Links
- 🚧 Images
- ✅ Autolinks
- ✅ Hard line breaks
- ✅ Soft line breaks
Raw HTML features will be tackled last as the potential security issues around this need to be considered.
- ❌ HTML blocks
- ❌ Inline HTML
The current version of GFM targetted is 0.29-gfm.
- ❌ Tables
- ✅ Strikethrough
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:
commonmark/commonmark
is a CommonMark renderer, useful if you want to generate an AST and write out a document based on it.commonmark/html
is a HTML renderer included as part of this package.
gleam test # Run the tests
gleam shell # Run an Erlang shell
cd tools/
gleam run -m benchmark # Run the benchmarks
gleam run -m codegen # Run the codegen tasks (these are committed in the repo)