Packages
mdex
0.13.2
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
Current section
Files
Jump to
Current section
Files
examples/sigil_md.livemd
<!-- livebook:{"persist_outputs":true} -->
# ~MD Sigil
```elixir
Mix.install([
{:mdex, "~> 0.12"},
{:lumis, "~> 0.1"},
{:kino, "~> 0.16"}
],
config: [mdex_native: [syntax_highlighter: :lumis]]
)
```
## Intro
The `~MD` sigil provides a convenient way to write Markdown directly in your Elixir code. It supports multiple output formats and can be customized with options passed to `use MDEx`.
More info at [MDEx.Sigil](https://hexdocs.pm/mdex/MDEx.Sigil.html)
## Examples
With no options, the sigil uses sensible defaults with most extensions enabled:
````elixir
defmodule DefaultExample do
use MDEx
def render do
~MD"""
This is a **bold** statement with ~strikethrough~ and ^superscript^.
- [x] Task completed
- [ ] Task pending
```elixir
def greet(name), do: "Hello, #{name}!"
```
"""HTML
end
end
DefaultExample.render()
|> Kino.HTML.new()
````
You can pass options to `use MDEx` to customize the sigil behavior. Options are merged with the defaults:
````elixir
defmodule CustomOptsExample do
use MDEx,
extension: [strikethrough: false],
syntax_highlight: [engine: :lumis, opts: [formatter: {:html_inline, theme: "gruvbox_light"}]]
def render do
~MD"""
Notice ~this~ is not rendered as strikethrough because we disabled it.
```elixir
defmodule Fibonacci do
def fib(0), do: 0
def fib(1), do: 1
def fib(n), do: fib(n - 1) + fib(n - 2)
end
```
"""HTML
end
end
CustomOptsExample.render()
|> Kino.HTML.new()
````