【发布时间】:2022-11-18 13:08:23
【问题描述】:
我想将当前正在执行的 Quarto 文件的名称添加到报告中,而无需对其进行硬编码。我在 RStudio IDE 中使用 R。 `r scriptName::current_filename()`和`r commandArgs()`都返回/Applications/quarto/share/rmd/rmd.R。有没有办法获取 Quarto 脚本的名称而不是 knitr 正在处理的 R 文件的名称?
【问题讨论】:
-
这并不完全是答案的重复,它并不简单,但你见过this吗?解决方法的一个很好的建议。
-
谢谢山姆。我没见过那个。不幸的是,该版本似乎需要我对文件名进行硬编码。我正在尝试与新手一起执行可重现的工作流程。所以自动查找是高度比希望程序员不更改文件名更可取,因为他们在代码中命名了文件名。
-
很公平。您究竟是如何编译它的(我将 vscode 用于 Quarto - RStudio 是否有按钮,或者您是否正在输入
quarto render类型命令)?你试过rstudioapi::getActiveDocumentContext()和rstudioapi::getSourceEditorContext()了吗? -
好主意,但没有运气。我在 RStudio IDE 中工作。如果我从控制台
rstudioapi::getSourceEditorContext()[2]运行它,但当我将它嵌入脚本并尝试呈现文档(使用呈现按钮)时,这不起作用。我收到Error: RStudio not running。我认为这是同一个核心问题,因为 Quarto 正在开始一个新的流程来制作文件。所以名字就没了。 -
如果我自己尝试,这会更容易,但出于某种原因,RStudio 在我的主 PC 上打开时总是崩溃!当您尝试使用
as_job = FALSE(或全局设置options("quarto.render_as_job" = FALSE))进行渲染时,行为是否相同?