Вяжем дочерние документы в автономном режиме - PullRequest
1 голос
/ 27 января 2020

Согласно https://yihui.org/knitr/demo/child/ возможно связать дочерние документы самостоятельно, используя set_parent () в чанке.

Я пробовал это:

knitr::set_parent("<PATH TO MAIN FILE>")

Но это, похоже, не работает. Вязание ребенка не учитывает информацию в разделе YAML родителя. Что я тут не так делаю?

1 Ответ

2 голосов
/ 05 февраля 2020

Вот функция, которую вы можете использовать для ввода фронтального слова YAML произвольного файла Rmd в другой файл Rmd:

input_yaml = function(file) {
  lines = xfun::read_utf8(file)
  meta = rmarkdown:::partition_yaml_front_matter(lines)$front_matter
  knitr::asis_output(paste(meta, collapse = '\n'))
}

Если вы не предпочитаете :::, вы также можете использовать:

input_yaml = function(file) {
  meta = rmarkdown::yaml_front_matter(file)
  meta = c('---', yaml::as.yaml(meta), '---')
  knitr::asis_output(paste(meta, collapse = '\n'))
}

Затем в дочернем документе вы можете сделать это:

```{r, echo=FALSE}
input_yaml('parent.Rmd')
```

This is a child document without YAML.
...