【问题标题】:Rmarkdown renders index.html in parent directory instead of rendering the opened documentRmarkdown 在父目录中渲染 index.html 而不是渲染打开的文档
【发布时间】:2021-12-27 16:10:56
【问题描述】:

我在 bookdown 目录中有一个包含幻灯片的目录,如下所示。

docs
slides/01_slide.Rmd
slides/_output.yml
01_chapter.Rmd
_bookdown.yml
_output.yml
index.Rmd
...

我想使用slides/_output.yml 构建slides/01_slide.Rmd。当我在 RStudio 中打开 slides/01_slide.Rmd 并点击 Knit 按钮时,index.Rmd 被渲染,而我实际打开的文件根本没有被使用。

==> rmarkdown::render_site('…/slides/01_slide.Rmd',  encoding = 'UTF-8');


processing file: bookdown.Rmd
  |......................................................................| 100%
   inline R code fragments


…
output file: bookdown.knit.md


Output created: docs/index.html

Output created: …/docs/index.html

当我将 index.Rmd 重命名为其他名称时,slides/01_slide.Rmd 会正确呈现。

有没有办法强制 Knit 按钮呈现实际打开的文档,而不是从父目录中查找输入?

我知道我可以在 YAML 中添加 knit: rmarkdown::render 并为每个幻灯片文档单独编写参数,但这比不断重命名 index.html 更麻烦。

(我将幻灯片保存在 bookdown 目录中的原因是我想将整个项目托管在 Github 存储库中,同时提供来自 /docs 的 bookdown 输出。)

【问题讨论】:

    标签: r r-markdown bookdown


    【解决方案1】:

    问题可以通过在 YAML 中只添加 knit: rmarkdown::render 来解决。然后 Knit 按钮触发 render 而不是 render_site。该函数不需要额外的参数,并且还应用了slides/_output.yml

    【讨论】:

      猜你喜欢
      • 2019-06-20
      • 2023-04-03
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      相关资源
      最近更新 更多