<!-- livebook:{"persist_outputs":true} -->
# ~MD Sigil
```elixir
Mix.install([
{:mdex, ">= 0.11.2"},
{:kino, "~> 0.16"}
])
```
## 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: [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()
````