如何加快 bookdown 的生成?

How to speed up bookdown generation?

我目前正在使用 bookdown 编写一本书。它使用一些需要时间来编译、执行和获取输出的代码片段。我使用以下命令为本书构建 HTML、PDF 和 EPUB 文件:

Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::gitbook')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::epub_book')"

因此,每次生成书籍文件时都会进行实际计算,从而增加总生成时间 ×3。

有没有办法在第一个 运行 上生成一些中间文件,然后用它来构建 HTML、PDF 和 EPUB 输出?

我通过将以下代码片段添加到我的 index.Rmd 中,设法显着减少了再生时间:

```{r include=FALSE}
knitr::opts_chunk$set(cache = TRUE)
```

更新:

作为 and both suggested, it's better to cache only time-consuming 代码块:

```{go time-sleep-demo cache = TRUE}
package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Print("Hello ")
    time.Sleep(10 * time.Second)
    fmt.Println("world!")
}
```