Tabsets, callouts, and code filenames are currently implemented as Quarto Lua filters that emit HTML and CSS directly. This means they only work in .qmd posts.
To support these features in .md posts too, each should follow the same pattern used for videos:
- Create a Hugo shortcode that owns the rendering logic (HTML + CSS)
- Simplify the Lua filter to just translate Quarto's native syntax into calls to the shortcode
This gives .md authors access to these features via shortcode syntax, while .qmd authors keep using the native Quarto syntax they already know.
Features
- Tabsets — Quarto's
::: {.panel-tabset} → {{</* tabset */>}} shortcode
- Callouts — Quarto's
::: {.callout-note} etc. → {{</* callout */>}} shortcode
- Code filenames — Quarto's
{filename="doc.qmd"} → shortcode or render hook that adds a filename label
Related
Tabsets, callouts, and code filenames are currently implemented as Quarto Lua filters that emit HTML and CSS directly. This means they only work in
.qmdposts.To support these features in
.mdposts too, each should follow the same pattern used for videos:This gives
.mdauthors access to these features via shortcode syntax, while.qmdauthors keep using the native Quarto syntax they already know.Features
::: {.panel-tabset}→{{</* tabset */>}}shortcode::: {.callout-note}etc. →{{</* callout */>}}shortcode{filename="doc.qmd"}→ shortcode or render hook that adds a filename labelRelated