bookdown::render_book 与 rmarkdown::render_site 构建所有输出

bookdown::render_book vs. rmarkdown::render_site to build all outputs

我有一本 Bookdown 书,我想为其建立一个 GitBook 站点以及 PDF 和 EPUB 下载。我将使用 Travis 构建所有 3 个输出,PDF 和 EPUB 可从 GitBook 站点下载。

bookdown-demo_build.sh 中的每个输出调用一次 bookdown::render_book

但是,根据 RStudio 中的日志,Build Book 按钮在构建 All Formats 时使用 rmarkdown::render_site(encoding = 'UTF-8') 在单个命令中构建所有输出。

我想确保我的 CI 服务器上发生的事情与我的 IDE 上发生的事情完全相同,所以我似乎应该让 Travis 调用 rmarkdown::render_site 而不是多次调用bookdown::render_book 的调用与 bookdown-demo 所做的一样。不过一辉是行家,他选择了后一种方式。

所以,我的问题是:当构建多个输出时,在像 Travis 这样的持续集成服务器上调用的最佳脚本是什么?

bookdown 项目中,它们通常没有什么区别,因为 rmarkdown::render_site() eventually calls bookdown::render_book() 会渲染你的书。随意使用任何一种方式。

唯一的例外是您的 index.Rmd 包含字段 site: bookdown::bookdown_site。在那种情况下,rmarkdown::render_site() 将不起作用,因为它不知道这应该是一个 bookdown 项目。

顺便说一句,要使用 bookdown::render_book() 呈现所有输出格式,您可以使用参数 output_format = 'all'.