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

时间:2018-11-14 21:56:49

标签: r r-markdown knitr bookdown

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

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_bookbookdown-demo。但是,Yihui是​​专家,他选择了使用后者的方法。

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

1 个答案:

答案 0 :(得分:1)

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'