quarto-dev / quarto-dev/quarto-cli

Compile quarto document in temporary directory in R fails when using `output_file = ...`

Aperta
#3,992 14 commenti 0 reazioni 2 assegnatari Vedi su GitHub

@cscheid ci sta già lavorando.

Dal 17/6/2024.

bug files needs-discussion triaged-to
Lingua principale
JavaScript
Stelle
6k
Fork
458
Merge medio
1g 9h
PR unite (30g)
41

Descrizione

Bug description
# This will create a file named "template.qmd" in the current folder.
# Used in: the "template.qmd" is a parametrized report and in a package. The report
# will be compiled in a temporary directly which will be cleaned afterwards.

f <- c("---", "title: \"Test\"", "format: html", "---", "", "## Set a variable",
  "", "```{r}", "OK <- FALSE", "```", "", "## Running Code depending on value of `OK`",
  "", "```{r}", "#| eval: !expr OK", "print(\"OK is TRUE - otherwise you won't see anything here.\")",
  "```", "")
writeLines(f, "template.qmd")

name <- "Test_Report"

output_format <- "html"
output_file <- paste0(name, ".html")

tmpdir <- tempfile()
dir.create(tmpdir)
template <-  file.path(tmpdir, "template.qmd")

file.copy(
  file.path(".", "template.qmd"),
  template
)


report <- quarto::quarto_render(
  input = template,
  output_format = output_format,
  output_file = output_file
)

# Here the error occurs:
#
# processing file: template.qmd
# |..............                                                        |  20%
# ordinary text without R code
#
# |............................                                          |  40%
# label: unnamed-chunk-1
# |..........................................                            |  60%
# ordinary text without R code
#
# |........................................................              |  80%
# label: unnamed-chunk-2 (with options)
# List of 1
# $ eval: logi FALSE
#
# |......................................................................| 100%
# ordinary text without R code
#
#
# output file: template.knit.md
#
# pandoc --output ../../../../../../../Users/rainerkrug/tmp/test/Test_Report.html
# to: html
# standalone: true
# section-divs: true
# html-math-method: mathjax
# wrap: none
# default-image-extension: png
#
# metadata
# document-css: false
# link-citations: true
# date-format: long
# lang: en
# title: Test
#
# pandoc: ../../../../../../../Users/rainerkrug/tmp/test/Test_Report.html: openFile: does not exist (No such file or directory)
# Error in `processx::run(quarto_bin, args, echo = TRUE)`:
#   ! System command 'quarto' failed
# ---
#   Exit status: 1
# stdout & stderr: <printed>
#   ---
#   Type .Last.error to see the more details.

# And I would like to continuye as follows:

file.copy(
  file.path(tmpdir, output_file),
  file.path(".", output_file),
)
unlink(tmpdir)
> sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Ventura 13.1

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.9      ps_1.7.2        digest_0.6.30   later_1.3.0     R6_2.5.1        jsonlite_1.8.4 
 [7] evaluate_0.19   rlang_1.0.6     cli_3.6.0       rstudioapi_0.14 rmarkdown_2.18  tools_4.2.2    
[13] yaml_2.3.6      xfun_0.36       fastmap_1.1.0   compiler_4.2.2  processx_3.8.0  htmltools_0.5.3
[19] knitr_1.41      quarto_1.2     


> quarto::quarto_version()
[1] ‘1.2.313’
> pandoc::pandoc_version()
[1] ‘2.19.2’

The example runs on Ubuntu, but not on a Mac.

Checklist
  • Please include a minimal, fully reproducible example in a single .qmd file? Please provide the whole file rather than the snippet you believe is causing the issue.
  • Please format your issue so it is easier for us to read the bug report.
  • Please document the RStudio IDE version you're running (if applicable), by providing the value displayed in the "About RStudio" main menu dialog?
  • Please document the operating system you're running. If on Linux, please provide the specific distribution.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.