# `MDEx.Callout`
[🔗](https://github.com/leandrocp/mdex/blob/v0.14.5/lib/mdex/document.ex#L3660)

An Obsidian callout, enabled with `extension: [ofm_callouts: true]`.

The type is normalized (`My Type` becomes `my-type`). Metadata preserves text
after `|`. The optional first child is a `MDEx.CalloutTitle`; remaining children
form the body. `fold` is `:none`, `:expanded` (`+`), or `:collapsed` (`-`).

HTML exposes these fields as `data-callout`, `data-callout-metadata`, and
`data-callout-fold`. Folding needs application CSS/JavaScript. Slack and Delta
flatten the explicit title and body, without fold state or metadata.

# `t`

```elixir
@type t() :: %MDEx.Callout{
  callout_type: String.t(),
  fold: :none | :expanded | :collapsed,
  metadata: String.t() | nil,
  nodes: [MDEx.Document.md_node()],
  sourcepos: term()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
