posit-dev / posit-dev/btw

FR: Auto-detect Quarto's bundled pandoc as fallback

Open
#110 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
137
Forks
10
Avg merge
10h 48m
Merged PRs (30d)
4

Description

(Potential upstream issue.)

Hi folks.

I just ran into this error on a new laptop, whilst calling some of the btw help documentation tools (e.g., btw_tool_docs_help_page) from the CLI:

Mcp error: -32603: pandoc is required and was not found (see the help page ?rmarkdown::pandoc_available).

The error is obvious enough; I didn't have pandoc installed as a "standalone" binary and available on my PATH (via my package manager). OTOH it's not the full truth, since I do have Quarto installed and this obviously bundles its own pandoc. I can imagine that other users are in a similar boat and this made me think that having a fallback option to / check for Quarto pandoc would be a useful feature.

What do you think about adding automatic detection of Quarto's bundled pandoc as a fallback when rmarkdown::pandoc_available() returns FALSE? Specifically, we could check common Quarto installation paths:

  • macOS: /Applications/quarto/bin/tools/pandoc
  • Windows: ~/AppData/Local/Programs/Quarto/bin/tools/pandoc
  • Linux: /opt/quarto/bin/tools/pandoc

If found we could set Sys.setenv(RSTUDIO_PANDOC = <path>) to make it available to rmarkdown during this session?

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

Start with the CLI entry point mentioned, btw_tool_docs_help_page, and inspect how it checks rmarkdown::pandoc_available(). Verify the proposed macOS, Windows, and Linux Quarto paths, then confirm that a detected bundled pandoc is made available for the session without changing the existing error when none is found.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
cli, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.