quarto-dev / quarto-dev/quarto-cli

quarto in the browser

Open
#263 5 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

It'd be neat to run Quarto in the browser, I'm wondering if this is a design goal or perhaps if it's explicitly not. I just found some notes I wrote up a few months ago about various quarto-cli deps:

Deno

It's a goal of Deno to be browser-compatible.

  • any reference to the global Deno namespace would need not to be used?
  • maybe something like denopack is supposed to be used?

esbuild is probably the way to go here? And factoring stuff out?

Pandoc

There's an Asterius-built pandoc executable available at https://asterius.netlify.app/demo/pandoc/pandoc.html but I haven't found the code that builds it.

There's an old GHCJS-compiled pandoc too.

It's not clear that either of these keep the lua functionality intact? There's been lots of back and forth trying to get the C bits out of pandoc, but currently there are C dependencies. The lua filters seem to be integral to Quarto. There are definitely Emscripten builds of Lua out there, but the integration might be tricky.

ESBuild

Is this maybe a runtime dependency? there's a wasm version available at esbuild-wasm on npm, see https://esbuild.github.io/getting-started/#wasm

SASS

There's a version of SASS compiled to JavaScript on npm.

R

I heard from Pyodide folks that discussions of compiling R to the browser petered out because there was so much Fortran involved. It seems like R isn't required to run to run Quarto at all, but I want to check because when commands like quarto serve error on my if I don't have Shiny R library installed, suggesting there's some R in there somewhere. edit: I misunderstood what quarto serve does, it's explicitly for Shiny apps.

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.

Research direction

No specific file, test, or entry point is named. Start by mapping the quarto-cli dependencies discussed here—Deno, Pandoc, esbuild, Sass, Lua, and R—and assess which browser-compatible implementations exist; done would be a documented decision about whether browser execution is a project goal and what work it requires.

Written by the indexing model from the issue text.

Assessment

Tech stack
deno, javascript, lua, r, sass, wasm
Domain
tooling, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.