parse a named list to the
Rmd yaml header, so the developer gets automatically tabulated Rmd yaml header.
Only a non nested (flat) list will be processed,
where as a nested list is directly processed with the yaml::as.yaml function.
All Rmd yaml header fields from the vector are supported,
c("author", "date", "title", "subtitle", "abstract", "keywords", "subject", "description", "category", "lang").
Moreover all outputfield types in the rmarkdown package and their arguments are supported.
Usage
as_yaml_auto(
input_list,
as_header = TRUE,
convert_logi = TRUE,
multi_output = FALSE,
silent = FALSE
)Arguments
- input_list
named listnon nested with slots names and their values compatible withRmdyamlheader.- as_header
logicaloptionally wrap with result with the internalmd_header(), defaultTRUE.- convert_logi
logicalconvert a character values to logical, if they are recognized as quotedyamllogical values , defaultTRUE.- multi_output
logicalmultioutputslots in theinputargument, defaultFALSE.- silent
logicalsuppress messages and warnings, defaultFALSE.
Value
character with rmd_yaml_header class,
result of yaml::as.yaml, optionally wrapped with internal md_header().
Examples
# nested so using yaml::as.yaml directly
as_yaml_auto(
list(author = "", output = list(pdf_document = list(toc = TRUE)))
)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> ---
# auto parsing for a flat list, like shiny input
input <- list(author = "", output = "pdf_document", toc = TRUE, keep_tex = TRUE)
as_yaml_auto(input)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(list(author = "", output = "pdf_document", toc = TRUE, keep_tex = "TRUE"))
#> The 'TRUE' value should be a logical, so it is automatically converted.
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(list(
author = "", output = "pdf_document", toc = TRUE, keep_tex = TRUE,
wrong = 2
))
#> Warning: Not recognized and skipped arguments: wrong
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(list(author = "", output = "pdf_document", toc = TRUE, keep_tex = 2),
silent = TRUE
)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: 2.0
#> ---
input <- list(author = "", output = "pdf_document", toc = TRUE, keep_tex = "True")
as_yaml_auto(input)
#> The 'True' value should be a logical, so it is automatically converted.
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(input, convert_logi = TRUE, silent = TRUE)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(input, silent = TRUE)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> ---
as_yaml_auto(input, convert_logi = FALSE, silent = TRUE)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: 'True'
#> ---
as_yaml_auto(
list(
author = "", output = "pdf_document",
output = "html_document", toc = TRUE, keep_tex = TRUE
),
multi_output = TRUE
)
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> html_document:
#> toc: yes
#> ---
as_yaml_auto(
list(
author = "", output = "pdf_document",
output = "html_document", toc = "True", keep_tex = TRUE
),
multi_output = TRUE
)
#> The 'True' value should be a logical, so it is automatically converted.
#> ---
#> author: ''
#> output:
#> pdf_document:
#> toc: yes
#> keep_tex: yes
#> html_document:
#> toc: yes
#> ---