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. У меня есть следующие вопросы:

  1. как мы должны знать, что это вариант, учитывая, что он не упоминается в документации здесь или даже в пример здесь.
  2. как только мы узнаем, что он существует, как я узнал, какой эффект он имеет? Все эти варианты перейти к другим пакетам (например, 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.