4.4 配置

我们以尽在第 1.3 节中提到了 rmd_files,并且你可以在 _bookdown.yml 中为书籍配置更多(可选的)设置。11:

  • book_filename: 主 Rmd 文件的文件名,即从所有章节进行合并后的单个 Rmd 文件;默认情况下,它被命名为 _main.Rmd
  • delete_merged_file: 书籍成功编译后是否删除主 Rmd 文件。
  • before_chapter_script: 在每个章节之前执行的一个或多个 R 脚本,例如,你可能希望在编译每个章节之前清理工作区,在这种情况下可以在 R 脚本中使用 rm(list = ls(all = TRUE))
  • after_chapter_script: 与 before_chapter_script 类似,不过 R 脚本是在每一个章节编译完成后执行。
  • edit: 协作者可以单击后直接编辑当前页面 Rmd 源文档的链接;这主要是为 GitHub 存储库设计的,因为在 GitHub 上编辑任意纯文本文件很容易,即使在其他人的存储库中也是如此(如果你没有对存储库的写入权限,GitHub 将自动为其分叉,并允许你在编辑完文件后提交拉取请求 (pull request))。这个链接中应包含 %s,它将被每个页面的实际 Rmd 文件名替换。
  • history: 类似于 edit,它是一个指向当前页面编辑/提交历史记录的链接。
  • view: 类似于 edit,它是一个指向当前页面源代码的链接。
  • rmd_subdir: 是否在子目录中搜索书籍 Rmd 源文件(默认情况下仅搜索根目录)。它可以是一个布尔值(例如,如果设为 true,则将在项目目录和所有子目录中搜索书记的 Rmd 源文件),如果要在子目录的子集中搜索书籍的 Rmd 源文件,它也可以是一个路径列表。
  • include_md: 在搜索数据源文件时包含 .md 文件(默认情况下只会包含 .Rmd 文件)。
  • output_dir: 书籍的输出目录(默认为 _book);render_book() 将会读取并使用这个设置。
  • clean: clean_book() 函数将要清理的文件和目录的向量。

下面是一个简短的 _bookdown.yml

book_filename: "my-book.Rmd"
delete_merged_file: true
before_chapter_script: ["script1.R", "script2.R"]
after_chapter_script: "script3.R"
view: https://github.com/rstudio/bookdown-demo/blob/master/%s
edit: https://github.com/rstudio/bookdown-demo/edit/master/%s
output_dir: "book-output"
clean: ["my-book.bbl", "R-packages.bib"]

  1. 对于 bs4_book() 格式,edithistoryview 字段不会起作用,可以使用输出函数的 repo 参数来指定类似的配置。↩︎