为四开书项目的每一章预渲染 R 脚本

wil*_*ert 12 r bookdown quarto

我在 R 中有一个 bookdown 项目,想切换到 Quarto。在 bookdown 项目中,我有一个 R 脚本_common.R(它包括库以及各种设置和辅助函数)在渲染每一章(单独的 qmd 文件)之前运行。

如何在 Quarto 中实现这样的脚本文件?

我尝试在 _quarto.yml 中设置:

project:
  type: book
  pre-render: _common.R
Run Code Online (Sandbox Code Playgroud)

但这只会在整本书渲染之前运行一次脚本,而不是在每一章之前运行一次。每个章节似乎都是在自己的环境中呈现的,因此所有设置和脚本_common.R都不可用。

解决方法是包括

```{r echo = FALSE, message=FALSE, warning=FALSE}
source("_common.R")
```
Run Code Online (Sandbox Code Playgroud)

在每个 .Rmd/.qmd 文件的顶部。有更好的解决方案吗?

任何帮助表示赞赏!

sha*_*fee 4

作为建议的解决方法的替代方案,您可以.Rprofile在项目中使用特定于项目的文件并在source其中调用.Rprofile.

.Rprofile

source("_common.R")
Run Code Online (Sandbox Code Playgroud)

在这种方法中,您不必_common.R在每章 qmd 文件的开头获取该文件。