Mickaël CANOUIL, Ph.D.'s Avatar

Mickaël CANOUIL, Ph.D.

@mickael.canouil.fr

Quarto Extension Creator & R Package Developer | Biostatistics, Ph.D.

272
Followers
56
Following
253
Posts
17.11.2024
Joined
Posts Following

Latest posts by Mickaël CANOUIL, Ph.D. @mickael.canouil.fr

Accessibility standards do not make documents accessible.
If you set "image" as alternative text for all your images, you will pass.
There are also various and numerous standards, so support for all of them is not complete.

09.03.2026 23:02 👍 2 🔁 0 💬 0 📌 0
Comparison infographic titled "localtime vs quarto-now — Two Quarto extensions, two different jobs."
Two side-by-side cards summarise each extension:
EllaKaye/localtime (blue) converts event times to the reader's local timezone in the browser using Lua, JavaScript, and client-side rendering, with the shortcode `{{< localtime 2026-04-01 15:00 CET >}}`; it works with HTML output only and requires Quarto >= 1.2.0.
gadenbuie/quarto-now (orange) inserts the current render time or file last-modified date using Lua and server-side rendering, with shortcodes `{{< now >}}` and `{{< modified >}}`; it works with any output format and requires Quarto >= 1.4.0.
A green "What they share" section notes both are Lua-based, support custom formatting, use Quarto shortcode syntax, and have zero open issues.
A feature comparison table shows: both support custom date/time formatting; only localtime supports timezone conversion (50+ zones, DST) and locale-aware output via the browser Intl API; only quarto-now supports current render timestamp, file modification timestamp, and working without a browser; localtime has a JS-disabled fallback while quarto-now does not apply; cross-platform `modified` support is macOS/Linux only for quarto-now.
A dark verdict box concludes: use localtime for event datetimes in readers' timezones (HTML output); use quarto-now for "rendered on" or "last modified" stamps (any output format); both can coexist in the same document.

Comparison infographic titled "localtime vs quarto-now — Two Quarto extensions, two different jobs." Two side-by-side cards summarise each extension: EllaKaye/localtime (blue) converts event times to the reader's local timezone in the browser using Lua, JavaScript, and client-side rendering, with the shortcode `{{< localtime 2026-04-01 15:00 CET >}}`; it works with HTML output only and requires Quarto >= 1.2.0. gadenbuie/quarto-now (orange) inserts the current render time or file last-modified date using Lua and server-side rendering, with shortcodes `{{< now >}}` and `{{< modified >}}`; it works with any output format and requires Quarto >= 1.4.0. A green "What they share" section notes both are Lua-based, support custom formatting, use Quarto shortcode syntax, and have zero open issues. A feature comparison table shows: both support custom date/time formatting; only localtime supports timezone conversion (50+ zones, DST) and locale-aware output via the browser Intl API; only quarto-now supports current render timestamp, file modification timestamp, and working without a browser; localtime has a JS-disabled fallback while quarto-now does not apply; cross-platform `modified` support is macOS/Linux only for quarto-now. A dark verdict box concludes: use localtime for event datetimes in readers' timezones (HTML output); use quarto-now for "rendered on" or "last modified" stamps (any output format); both can coexist in the same document.

For those interested in a comparison of the two different extensions and know when to use what.

09.03.2026 21:25 👍 2 🔁 0 💬 0 📌 0
Preview
About – Quarto Extensions Explore the ‘Quarto Extensions’ website, a comprehensive repository of extensions designed to enhance your Quarto experience. From new formats and shortcodes to filters that enrich your content with i...

Nice! Feel free to share your extension on my listing: m.canouil.dev/quarto-exten...

FYI, there is also "Now"
github.com/gadenbuie/qu...

09.03.2026 21:07 👍 0 🔁 0 💬 1 📌 0

I can't speak for the Quarto team, but you can see Quarto extensions as a way to mature features like this.
Lightbox and lit-table were a Quarto extensions / Lua filters before they were integrated.

09.03.2026 16:45 👍 2 🔁 0 💬 1 📌 0
Video thumbnail

Teaching or making workshop about Typst in Reveal.js?

I've got your back! You can stop taking screenshots!

github.com/mcanouil/qua...

#Quarto #RevealJS #Typst #teaching

09.03.2026 16:16 👍 8 🔁 1 💬 1 📌 0
Preview
GitHub - mcanouil/quarto-typst-render: Quarto extension to compile Typst code blocks to images (PNG, SVG, PDF) for use across all output formats. Quarto extension to compile Typst code blocks to images (PNG, SVG, PDF) for use across all output formats. - mcanouil/quarto-typst-render

If you use Quarto and want to bring Typst content into your documents and presentations, give a try to my new Quarto extension.

github.com/mcanouil/qua...

#Quarto #Typst

09.03.2026 09:27 👍 7 🔁 4 💬 0 📌 0
Video thumbnail

Typst for Everything Everywhere All at Once

#Quarto #Typst Render 😎

08.03.2026 23:05 👍 13 🔁 3 💬 0 📌 0
Screenshot showing a code block with basic Typst text and an image of the rendered version as an image inserted in the HTML output.
Below a second code block showing a styled box Typst code rendered as an image and embedded below the code block in the HTML output

Screenshot showing a code block with basic Typst text and an image of the rendered version as an image inserted in the HTML output. Below a second code block showing a styled box Typst code rendered as an image and embedded below the code block in the HTML output

I'm more and more using Typst, but what if I could use it to create images, diagrams, equations, etc. for any formats, not just Typst inside Quarto.

#Quarto #Typst

08.03.2026 16:51 👍 5 🔁 1 💬 0 📌 0
Preview
GitHub - pandoc-ext/diagram: Generate diagrams from embedded code; supports Mermaid, Dot/GraphViz, PlantUML, Asymptote, D2, CeTZ, and TikZ. Generate diagrams from embedded code; supports Mermaid, Dot/GraphViz, PlantUML, Asymptote, D2, CeTZ, and TikZ. - pandoc-ext/diagram

Quarto can natively handle mermaid diagrams.
There is also a Lua filter to use various CLI for diagrams.

github.com/pandoc-ext/d...

07.03.2026 20:45 👍 0 🔁 0 💬 0 📌 0

I believe this should already work as engine computations happens before mermaid are read.

07.03.2026 19:38 👍 0 🔁 0 💬 1 📌 0
What's Missing? 300 extensions and counting. Help shape what comes next.

What's Missing? 300 extensions and counting. Help shape what comes next.

What Quarto extension would make your workflow easier?

There are already almost 300 extensions browsable at m.canouil.dev/quarto-exten... and installable via Quarto Wizard at m.canouil.dev/quarto-wizard/.

Drop your ideas below.
If there's enough interest, I might just build it.
#Quarto #OpenSource

29.01.2026 13:16 👍 27 🔁 9 💬 2 📌 1
A VS Code editor window showing a Quarto document alongside its rendered PDF preview.
The editor displays `index.qmd` with YAML front matter configuring Typst format with `keep-typ: true`, GitHub Dark syntax highlighting, code annotations, and Julia as the engine.
The document contains four sections demonstrating code block variants: a Julia code cell, an R code block with filename and annotations, a Python code block with annotations, and a Typst code block with a filename.
The spell-checker flags "typst" as an unknown word on lines 3 and 37.
The rendered preview on the right shows each section with styled code blocks, output, and annotation callouts.
The status bar indicates the branch `feat/typst-annotation-filename`, Quarto version 99.9.9, and active Claude Code and Lua extensions.

A VS Code editor window showing a Quarto document alongside its rendered PDF preview. The editor displays `index.qmd` with YAML front matter configuring Typst format with `keep-typ: true`, GitHub Dark syntax highlighting, code annotations, and Julia as the engine. The document contains four sections demonstrating code block variants: a Julia code cell, an R code block with filename and annotations, a Python code block with annotations, and a Typst code block with a filename. The spell-checker flags "typst" as an unknown word on lines 3 and 37. The rendered preview on the right shows each section with styled code blocks, output, and annotation callouts. The status bar indicates the branch `feat/typst-annotation-filename`, Quarto version 99.9.9, and active Claude Code and Lua extensions.

"filename" and "code-annotation" features for Quarto Typst are coming along nicely.

#Quarto #Typst

06.03.2026 19:57 👍 1 🔁 0 💬 0 📌 0
Preview
Building Quarto Typst Templates: Advanced Patterns (Part 2) – Mickaël CANOUIL This tutorial continues from Part 1, exploring advanced patterns for Quarto Typst extensions. You will learn handler factories, configuration systems, type-safe value conversion, and WCAG-aware badges...

New post: Building Quarto Typst Templates (Part 2).
Handler factories, user-configurable mappings, WCAG-compliant badges, and a complete quote card example.
Production patterns for extensible Quarto Typst extensions.

mickael.canouil.fr/posts/2026-0...

#Quarto #Typst #Accessibility

05.03.2026 18:43 👍 9 🔁 3 💬 0 📌 0
Preview
PDF Accessibility and Standards – Quarto Quarto 1.9 brings PDF accessibility and standards support, building on new tagging features in LaTeX and Typst.

If you are interested in PDF accessibility, there has been some big progress in Quarto.

Take a look at the latest blog post: quarto.org/docs/blog/po...

#Quarto #Accessibility #LaTeX #Typst

05.03.2026 15:21 👍 19 🔁 7 💬 0 📌 0

And now thanks to @mickael.canouil.fr text-prefix and text-suffix now work in both HTML *and* Typst! github.com/andrewheiss/...

02.03.2026 18:47 👍 13 🔁 2 💬 0 📌 0

Two paths there (none of which has guarantees it would work): output raw OpenXML code, provide a reference document with various styles (although this means to contribute a format...).

02.03.2026 10:59 👍 1 🔁 0 💬 0 📌 0

To restart the counter for Typst, you would need to start playing with state variables. It adds a layer a complexity, especially as it would be inside Lua, but that's doable.

02.03.2026 10:41 👍 0 🔁 0 💬 0 📌 0
Preview
GitHub - mcanouil/quarto-code-window: A Quarto extension that styles code blocks as macOS-style windows with traffic light buttons and a filename bar. Supports HTML, Reveal.js, and Typst formats. A Quarto extension that styles code blocks as macOS-style windows with traffic light buttons and a filename bar. Supports HTML, Reveal.js, and Typst formats. - mcanouil/quarto-code-window

New experimental Quarto extension bringing a macOS-style windows with traffic light buttons and a filename bar (automatically filled with language or user-provided value).

github.com/mcanouil/qua...

#Quarto #Typst #RevealJS #HTML #macOS

01.03.2026 19:26 👍 4 🔁 0 💬 1 📌 0
A VS Code editor window showing a Quarto document (example.qmd) alongside its rendered preview. The editor displays YAML front matter configuring a Typst output format with a code-window filter. The document demonstrates the &quot;Code Window Extension&quot; feature, where code blocks with a filename attribute render with a macOS-style window header showing traffic light buttons and the filename centred at the top. The preview panel shows two such code windows: a Python file (fibonacci.py) and an R file (analysis.R), both styled with the distinctive macOS window chrome. The terminal at the bottom shows Typst compilation output confirming the document rendered successfully to example.pdf.

A VS Code editor window showing a Quarto document (example.qmd) alongside its rendered preview. The editor displays YAML front matter configuring a Typst output format with a code-window filter. The document demonstrates the &quot;Code Window Extension&quot; feature, where code blocks with a filename attribute render with a macOS-style window header showing traffic light buttons and the filename centred at the top. The preview panel shows two such code windows: a Python file (fibonacci.py) and an R file (analysis.R), both styled with the distinctive macOS window chrome. The terminal at the bottom shows Typst compilation output confirming the document rendered successfully to example.pdf.

Work in progress ...

#Quarto #HTML #Typst #RevealJS

28.02.2026 11:58 👍 2 🔁 0 💬 0 📌 0
Preview
Building Quarto Typst Templates: The Lua-Typst Bridge (Part 1) – MCU This tutorial introduces the dual-layer architecture for building Quarto Typst templates. You will learn how Lua filters and Typst functions work together to transform markdown elements into styled PD...

New blog post: Building Quarto Typst Templates - The Lua-Typst Bridge (Part 1).

Learn how Lua filters and Typst functions work together to create styled PDF components from markdown.

Badges, panels, and the dual-layer architecture explained.

mickael.canouil.fr/posts/2026-0...

#Quarto #Typst

27.02.2026 15:18 👍 8 🔁 2 💬 0 📌 0
A merged GitHub pull request titled "chore(deps): update mcanouil/iconify extension to 3.1.0 #260", showing 2 commits, 10 checks, and 6 files changed with +402 and -117 lines. A bot comment from mcanouil-dev describes a minor update to the mcanouil/iconify extension from version 3.0.2 to 3.1.0, including release notes stating the extension enables use of Iconify icons in HTML-based Quarto documents. The PR was automatically generated by quarto-extensions-updater, has the label "Type: Dependencies", and is reviewed by mcanouil.

A merged GitHub pull request titled "chore(deps): update mcanouil/iconify extension to 3.1.0 #260", showing 2 commits, 10 checks, and 6 files changed with +402 and -117 lines. A bot comment from mcanouil-dev describes a minor update to the mcanouil/iconify extension from version 3.0.2 to 3.1.0, including release notes stating the extension enables use of Iconify icons in HTML-based Quarto documents. The PR was automatically generated by quarto-extensions-updater, has the label "Type: Dependencies", and is reviewed by mcanouil.

I don't even need to bother looking for updates for my Quarto dependencies, they come right at me.

#GitHub #Quarto #GitHubActions

26.02.2026 21:29 👍 5 🔁 1 💬 0 📌 0
Video thumbnail

The newest version of quarto revealjs roughnotation extension now integrated with Quarto Wizard for amazing autocomplete thanks to @mickael.canouil.fr

github.com/EmilHvitfeld...

26.02.2026 18:04 👍 6 🔁 1 💬 0 📌 0
Preview
About – Quarto Extensions Explore the ‘Quarto Extensions’ website, a comprehensive repository of extensions designed to enhance your Quarto experience. From new formats and shortcodes to filters that enrich your content with i...

Don't hesitate to submit it to my directory of extensions

m.canouil.dev/quarto-exten...

26.02.2026 15:09 👍 1 🔁 0 💬 0 📌 0
Video thumbnail

Did you know you can install any Quarto extension from my directory of 293 extensions in just a few clicks?

m.canouil.dev/quarto-exten...

#Quarto #RStats #DataScience #PositronIDE #VSCode

26.02.2026 14:58 👍 9 🔁 3 💬 0 📌 1
Quarto Wizard 2.2.0 Easily manage Quarto extensions, templates, brands, and schema-powered authoring with a user-friendly interface.

With Quarto Wizard 2.2.0 (extension for VSCode/Positron), you have "use brand" command for any version of Quarto.

m.canouil.dev/quarto-wizard/

26.02.2026 14:39 👍 0 🔁 0 💬 0 📌 0
Video thumbnail

Quarto Wizard v2.2.0 is out for VS Code and Positron.

New: schema-aware authoring (completions, hover, validation for Quarto extensions), extension snippets, compatibility badges, and brand support.

m.canouil.dev/quarto-wizard

#Quarto #VSCode #PositronIDE #authoring

25.02.2026 09:26 👍 6 🔁 5 💬 0 📌 0
Quarto Wizard developed by Mickaël CANOUIL announcing v2.2.0 release is coming soon for 'Smarter extensions. Better authoring.'

Quarto Wizard developed by Mickaël CANOUIL announcing v2.2.0 release is coming soon for 'Smarter extensions. Better authoring.'

Better extensions for better authoring.

#Quarto #QuartoWizard

24.02.2026 17:09 👍 10 🔁 1 💬 0 📌 0

2.2.0 💫

24.02.2026 14:15 👍 1 🔁 0 💬 0 📌 0

Live example: m.canouil.dev/quarto-brand...

22.02.2026 22:36 👍 1 🔁 1 💬 0 📌 0

Same code ...
Different brand 😎

22.02.2026 22:28 👍 1 🔁 0 💬 1 📌 0