我想将当前正在执行的四开文件的名称添加到报告中,而不对其进行硬编码。我正在 RStudio IDE 中使用 R。两者`r scriptName::current_filename()`并`r commandArgs()`返回/Applications/quarto/share/rmd/rmd.R。有没有办法获取 Quarto 脚本的名称,而不是 knitr 正在处理的 R 文件的名称?
作为一种更简单的解决方法,您可以使用 bash 终端或从bash 终端将文件名作为参数传递给文档。quarto::quarto_render()
假设文件名是quarto_doc.qmd
四开_doc.qmd
---
title: "Quarto File Name"
format: html
params:
filename: ""
---
## Quarto
you are running the file `r params$filename`
Run Code Online (Sandbox Code Playgroud)
然后从 bash 终端,
fname=quarto_doc.qmd
quarto render $fname -P filename:$fname
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢使用 R 函数,您可以创建一个包装函数quarto::quarto_render以方便使用,如下所示,
render_qmd <- function(input, ...) {
input_file_name <- basename(input)
quarto::quarto_render(input, execute_params = list(filename = input_file_name), ...)
}
render_qmd("quarto_doc.qmd")
Run Code Online (Sandbox Code Playgroud)