Packages
mdex
0.11.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.5
retired
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Fast and extensible Markdown for Elixir
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
examples/gfm.livemd
<!-- livebook:{"persist_outputs":true} -->
# GitHub Flavored Markdown
```elixir
Mix.install([
{:mdex, "~> 0.8"},
{:mdex_gfm, "~> 0.1"},
{:kino, "~> 0.16"},
{:req, "~> 0.5"}
])
```
## Setup
````elixir
markdown = """
# GitHub Flavored Markdown :eyes:
| Feature | Status |
| ------- | ------ |
| Fast | :white_check_mark: |
| GFM | :white_check_mark: |
- [x] Task A
- [x] Task B
- [ ] Task C
```elixir
def deps do
[
{:mdex, "~> 0.8"}
]
end
```
Check out the spec at https://github.github.com/gfm
"""
````
<!-- livebook:{"output":true} -->
````
"# GitHub Flavored Markdown :eyes:\n\n| Feature | Status |\n| ------- | ------ |\n| Fast | :white_check_mark: |\n| GFM | :white_check_mark: |\n\n- [x] Task A\n- [x] Task B\n- [ ] Task C\n\n```elixir\ndef deps do\n [\n {:mdex, \"~> 0.8\"}\n ]\nend\n```\n\nCheck out the spec at https://github.github.com/gfm\n"
````
You can either use the [mdex_gfm](https://hex.pm/packages/mdex_gfm) plugin or set the options yourself. You can find either approaches below.
## Plugin
```elixir
MDEx.new(markdown: markdown)
|> MDExGFM.attach()
|> MDEx.to_html!(syntax_highlight: [formatter: {:html_inline, theme: "github_light"}])
|> Kino.HTML.new()
```
## Manual
```elixir
options = [
extension: [
alerts: true,
autolink: true,
footnotes: true,
shortcodes: true,
strikethrough: true,
table: true,
tagfilter: true,
tasklist: true
],
parse: [
relaxed_autolinks: true,
relaxed_tasklist_matching: true
],
render: [
github_pre_lang: true,
full_info_string: true,
unsafe: true
],
syntax_highlight: [
formatter: {:html_inline, theme: "github_light"}
]
]
markdown
|> MDEx.to_html!(options)
|> Kino.HTML.new()
```