quarto-dev / quarto-dev/quarto-cli

Support resvg as alternative to rsvg-convert for SVG rendering

Open
#13,696 4 comments 1 reaction 1 assignee View on GitHub

@cderv is already working on this.

Since Nov 17, 2025.

enhancement lua
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Installing rsvg-convert on Windows can be challenging for users, requiring either manual binary installation or complex package manager setup. This affects workflows that convert SVG to PDF/LaTeX output, including mermaid diagrams with mermaid-format: svg.

resvg (https://github.com/linebender/resvg) is a modern Rust-based SVG rendering library with better cross-platform support. It provides pre-built binaries for all platforms and is available through Windows package managers (scoop, winget), making installation significantly easier for Windows users.

We could add resvg as an alternative SVG converter alongside rsvg-convert and Inkscape. The conversion pipeline in src/resources/filters/quarto-post/pdf-images.lua already handles rsvg-convert and has infrastructure for tool detection.

https://github.com/quarto-dev/quarto-cli/blob/c9008d7cb1d088f6837fc41ed1f138b8f443a9d1/src/resources/filters/quarto-post/pdf-images.lua#L28-L61

We could implement this similar to the existing use-rsvg-convert option, perhaps with a more general svg-converter option that accepts resvg, rsvg-convert, or inkscape, with automatic fallback to whichever tool is available.

This came up while investigating #13661, where better SVG tooling options would help Windows users. Directly addresses the request in #1144 for specifying alternative SVG conversion tools.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.