RStudio点击Knit时渲染根目录index.Rmd而非当前slides目录下Rmd问题
问题原因
RStudio检测到项目根目录存在bookdown配置文件_bookdown.yml,因此点击任意Rmd文件的Knit按钮时,会默认调用rmarkdown::render_site()渲染整个bookdown站点,而非当前打开的单个文件,根目录的index.Rmd是bookdown站点的默认渲染入口,所以会出现你观察到的现象。
最优解决方案(一次配置永久生效,无额外操作成本)
在slides目录下新建一个空的_site.yml文件即可,不需要填写任何内容。
- 原理:
rmarkdown渲染时会从当前文件所在目录向上递归查找最近的站点配置文件,_site.yml的优先级高于_bookdown.yml。你在slides目录下添加该文件后,渲染该目录内的Rmd文件时,会将slides识别为当前站点根目录,不会向上查找父目录的bookdown配置,自然就会调用slides/_output.yml渲染当前打开的slide文件。 - 该方案完全不影响根目录bookdown的正常渲染,也不需要修改任何现有文件的内容,一次配置后所有slides文件的Knit按钮都能正常工作。
备选方案(无需新增文件)
如果不想新增额外配置文件,可以修改RStudio快捷键实现单独渲染:
打开RStudio的Tools -> Modify Keyboard Shortcuts,找到Knit Document(注意不是Knit Site),为其绑定自定义快捷键,需要渲染单个slide时使用该快捷键即可绕过站点渲染逻辑,直接渲染当前文件。
内容的提问来源于stack exchange,提问作者lillemets
相关产品推荐
相关产品推荐

