quarto-dev / quarto-dev/q2

TS Engines which claim files will spawn Deno in Pass-1

Open
#576 0 comments 0 reactions 1 assignee View on GitHub

@gordonwoodhull is already working on this.

Since Aug 22, 2026.

bug
Dominant language
Rust
Stars
255
Forks
17
Avg merge
6h 20m
Merged PRs (30d)
109

Description

Pass-1 needs to be pure Rust code with no spawning of slow sub-processes such as Deno.

However in the Quarto 1 API, both claimsFile and markdownForFile are dynamic JavaScript calls with no trivial way to specify them statically.

So if TS engines are used that claim files and convert them, that's happening in Deno today.

It's slow and error-prone - but at the same time, it's ahead of q2, which does not have spin/percent script, or ipynb support yet.

Structurally,

  • #416

provides the format conversion stage in the pipeline. It's just that it shouldn't spawn Deno.

We'll remove the ability to claim and parse files via TS in the following plans (merged but not fully reviewed or implemented):

  • 2026-07-07-plan7a-static-content-pattern-claims.md
  • 2026-07-08-plan7b-native-content-processors.md
  • 2026-07-08-plan7c-ipynb-content-processor.md

These establish a registry of converters, written in Rust, from a native format to qmd.

Currently those converters are

  • spin, via treesitter-r
  • percent (porting TS parser from Quarto 1)
  • ipynb - new design with provenance but otherwise ported from Quarto 1.

Converters can take extra parameters; e.g. Python and Julia both use percent scripts but look for different languages in them.

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.