Rob*_*inL 12 r r-markdown bookdown
Bookdown有许多配置选项,我发现很难理解如何知道一个选项是否存在,以及这些选项所在的逻辑背后的逻辑.
具体来说,我发现很难描述什么样进去的选项_bookdown.yml鉴于有至少两个其他的地方,说明选择:
_output.yml,bookdown::render_book. 在我看来,在_bookdown.yml函数的参数和参数之间存在任何类型的1对1映射bookdown::render_book,因此_bookdown.yml似乎不仅仅是记录函数调用选项的不同方式.
我们可以在源代码中看到`_bookdown.yml'正在控制一些配置选项,但不是全部.
所以 - 重新解释这个问题 - 为什么是_bookdown.yml一个单独的配置文件以及它应该包含什么的定义?
举一个有代表性的例子,有一个chapter_name可以使用的选项_bookdown.yml.我有以下问题:
chapter_name是用于记账的CRAN源代码,即使在那里我也无法弄清楚它是如何被使用的.注意,讨论_bookdown.yml通过笔者在这里,但我还是不完全了解.
Rob*_*inL 10
以下是对代码库进行调查的一些结果:
我们可以看到'config'变量in bookdown::render_book从_bookdown.yml 这里填充,通过一个load_config可以在其中找到的函数填充utils.R.
load_config似乎做了两件事 - 它将内容存储config在一个名为的主选项列表中opts,其中config只有一个元素,然后返回该config元素.
请注意,此处opts最初定义.它是从一个可以在这里找到的创建.knitr:::new_defaults
然后config变量出现在代码库的多个部分中.
将下面的代码代表:
if (is.na(new_session)) {
new_session = FALSE
if (is.logical(config[['new_session']])) new_session = config[['new_session']]
}
Run Code Online (Sandbox Code Playgroud)
所以我们可以看到,如果new_session直接传递给bookdown::render_book函数参数,则使用它.否则,尝试从_bookdown.yml文件加载它.
config作为一个参数,它被传递了很多bookdown::render_book.因此,例如,我们可以看到它在source_files函数中使用utils.R.
我们得出什么结论? _bookdown.yml允许您填充bookdown包的全局选项列表.每当您看到config(这是一个列表)正在使用代码库时,您可以通过填充来设置此列表的元素_bookdown.yml
我还没有设法找到可以指定的选项的完整列表,_bookdown.yml但有一种方法可以很容易地找出在Github上搜索示例的可能性.
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |