Skip to content

Quarto vignette rendering fails on Windows due to invalid path concatenation (mixed drive paths) #2982

@kv9898

Description

@kv9898

Description

When building a pkgdown site with Quarto vignettes on Windows, pkgdown::build_articles() fails due to an invalid path being passed to the Quarto CLI.

The error appears to be caused by incorrect concatenation of an absolute temporary path with a project-relative path, resulting in a malformed path like:

> pkgdown::build_articles(quiet = FALSE)
── Building articles ─────────────────────────────────────────────────────────────────────────────────────────
Reading vignettes/test.qmd
Running `quarto render`
ERROR: 文件名、目录名或卷标语法不正确。 (os error 123): stat 'E:\resultcheck\vignettes\C:\Users\Dianyi\AppData\Local\Temp\RtmpIbtb3w\pkgdown-quarto-acd4bda5188'

Stack trace:
    at Object.statSync (ext:deno_fs/30_fs.js:415:3)
    at ensureDirSync (file:///E:/quarto/bin/quarto.js:2466:27)
    at renderProject (file:///E:/quarto/bin/quarto.js:130462:5)
    at async _Command.actionHandler (file:///E:/quarto/bin/quarto.js:135810:24)
    at async _Command.execute (file:///E:/quarto/bin/quarto.js:95902:7)
    at async _Command.parseCommand (file:///E:/quarto/bin/quarto.js:95779:14)
    at async quarto4 (file:///E:/quarto/bin/quarto.js:183810:5)
    at async file:///E:/quarto/bin/quarto.js:183838:5
    at async file:///E:/quarto/bin/quarto.js:183693:14
    at async mainRunner (file:///E:/quarto/bin/quarto.js:183695:5)

Error in `quarto::quarto_render()`:
! Error running quarto CLI from R.
Caused by error in `quarto::quarto_render()`:Error returned by quarto CLI.
  -----------------------------
  ERROR: 文件名、目录名或卷标语法不正确。 (os error 123): stat
  'E:\resultcheck\vignettes\C:\Users\Dianyi\AppData\Local\Temp\RtmpIbtb3w\pkgdown-quarto-acd4bda5188'
  
  Stack trace:
  at Object.statSync (ext:deno_fs/30_fs.js:415:3)
  at ensureDirSync (file:///E:/quarto/bin/quarto.js:2466:27)
  at renderProject (file:///E:/quarto/bin/quarto.js:130462:5)
  at async _Command.actionHandler (file:///E:/quarto/bin/quarto.js:135810:24)
  at async _Command.execute (file:///E:/quarto/bin/quarto.js:95902:7)
  at async _Command.parseCommand (file:///E:/quarto/bin/quarto.js:95779:14)
  at async quarto4 (file:///E:/quarto/bin/quarto.js:183810:5)
  at async file:///E:/quarto/bin/quarto.js:183838:5
  at async file:///E:/quarto/bin/quarto.js:183693:14
  at async mainRunner (file:///E:/quarto/bin/quarto.js:183695:5)
  
Caused by error:
! System command 'quarto.exe' failed

The same vignette renders correctly with:

quarto::quarto_render("vignettes/test.qmd")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions