如何获取当前四开文件的名称?

its*_*ami 5 r quarto

我想将当前正在执行的四开文件的名称添加到报告中,而不对其进行硬编码。我正在 RStudio IDE 中使用 R。两者`r scriptName::current_filename()``r commandArgs()`返回/Applications/quarto/share/rmd/rmd.R。有没有办法获取 Quarto 脚本的名称,而不是 knitr 正在处理的 R 文件的名称?

sha*_*fee 1

作为一种更简单的解决方法,您可以使用 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)