R Bookdown bookdown.в формате YML
Bookdown имеет много параметров конфигурации, и мне трудно понять, как узнать, существует ли опция, и логика, в которой эти параметры указаны.
в частности, мне трудно описать, что вид из вариантов зайти в _bookdown.yml
учитывая, что есть по крайней мере два других места для указания опций:
- на
_output.yml
, - аргументы для вызовов функций, таких как
bookdown::render_book
.
мне не кажется, что между _bookdown.yml
и аргументы для функций, таких как bookdown::render_book
, Так что _bookdown.yml
не похоже, что это просто другой способ записи параметров для функциональных вызовов.
мы можем видеть в исходном коде, что ' _bookdown.yml ' контролирует некоторые из настройки но не все.
Итак-перефразируя вопрос-почему _bookdown.yml
отдельным файлом config и где/что является ли определение того, что оно должно содержать?
в Примере chapter_name
опция, которая может быть использована в _bookdown.yml
. У меня есть следующие вопросы:
- как мы должны знать, что это вариант, учитывая, что он не упоминается в документации здесь или даже в пример здесь.
- как только мы узнаем, что он существует, как я узнал, какой эффект он имеет? Все эти варианты перейти к другим пакетам (например, pandoc, rmarkdown)? Единственное место, где я могу найти ссылку на
chapter_name
находится в исходном коде CRAN для bookdown, и даже там я не могу понять, как он используется.
обратите внимание, обсуждение _bookdown.yml
автор здесь, но я все еще не совсем понимаю.
1 ответов
вот некоторые результаты исследований в коде:
мы видим, что переменная "config" в 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']]
}
так что мы можем видеть, что если new_session
передается непосредственно bookdown::render_book
в качестве аргумента функции используется. В противном случае будет предпринята попытка загрузить это от .
на config
передается много как аргумент внутри bookdown::render_book
. Так, например, мы можем видеть, что он используется в source_files
. Всякий раз, когда вы видите config
(который является списком) используя кодовую базу, вы можете установить элементы этого списка, заполнив _bookdown.yml
я не удалось найти исчерпывающий список опций, которые можно указать в _bookdown.yml
но один из способов легко узнать, что возможно, это поиск примеров на Github.