Callouts just got a lot more flexible in the latest release of Apex. I now support Quarto, Pandoc, Obsidian/Bear, and Python Markdown flavors of callouts.

Obsidian and Bear style still works

The original blockquote-style syntax is still first-class:

> [!NOTE] Heads up
> This is a note.

That still renders to Apex callout HTML with type-aware classes and optional collapsible behavior using + and -.

Python Markdown callouts are now supported (behind a flag)

If you want Python-style callouts, enable them explicitly with --py-callouts.

!!! tip "Tip title"
    Tip body

NOTE: Label-style note body

>? NOTE: Collapsed label-style note
> Body line for collapsed callout

This mode is opt-in on purpose so normal Markdown content is not accidentally interpreted as callouts.

Quarto callouts are also supported (behind a flag)

Quarto-style fenced callouts are available with --quarto-callouts:

::: {.callout-tip}
## Tip title

Tip body
:::

One important caveat: Quarto callouts use the same ::: fence family as Pandoc divs, so enabling --quarto-callouts disables Pandoc div processing for that run to avoid syntax conflicts.

Full syntax details

For complete examples, supported variants, and behavior notes, check the wiki page:

Other fixes

Alongside callout work, I also fixed a nasty table-preprocessing edge case: pipe-heavy shell commands inside fenced code blocks could trigger phantom table separators like ---|---|---|.

In short, code blocks with pipelines now stay code blocks, and no longer get accidental table artifacts.

You can get the latest release from GitHub, or if you’ve tapped my formula repo, just use brew update && brew install apex. See the wiki install instructions for more details.