Skip to content

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

Description

@gordonwoodhull

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,

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.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions