Class that pushes author metadata in YAML files or the YAML header of Quarto files.
Super classes
plume::NameHandler
-> plume::PlumeHandler
-> plume::StatusSetter
-> plume::StatusSetterPlumeQuarto
-> PlumeQuarto
Methods
Inherited methods
Method new()
Create a PlumeQuarto
object.
Usage
PlumeQuarto$new(
data,
file,
names = NULL,
roles = credit_roles(),
credit_roles = FALSE,
initials_given_name = FALSE,
by = NULL
)
Arguments
data
A data frame containing author-related data.
file
A
.qmd
,.yml
or.yaml
file to insert author data into.names
A vector of key-value pairs specifying custom names to use, where keys are default names and values their respective replacements.
roles
A vector of key-value pairs defining roles where keys identify columns and values describe the actual roles to use.
credit_roles
-
It is now recommended to use
roles = credit_roles()
to use the Contributor Roles Taxonomy. initials_given_name
Should the initials of given names be used?
by
A character string defining the default variable used to assign specific metadata to authors in all
set_*()
methods. By default, uses authors' id.
Method to_yaml()
Push or update author information in a YAML file or YAML header. The generated YAML complies with Quarto's author and affiliations schemas.
Examples
# Create a simple temporary file with a YAML header
# containing a title
tmp_file <- tempfile(fileext = ".qmd")
readr::write_lines("---\ntitle: Encyclopédie\n---", tmp_file)
# View the temporary file
cat(readr::read_file(tmp_file))
#> ---
#> title: Encyclopédie
#> ---
# Create a PlumeQuarto instance using the temporary file
# you've just created
aut <- PlumeQuarto$new(
encyclopedists,
file = tmp_file
)
# And push author data to the YAML header
aut$to_yaml()
cat(readr::read_file(tmp_file))
#> ---
#> title: Encyclopédie
#> author:
#> - id: aut1
#> name:
#> given: Denis
#> family: Diderot
#> email: diderot@encyclopediste.fr
#> phone: '+1234'
#> orcid: 0000-0000-0000-0001
#> note: born in 1713 in Langres
#> roles:
#> - Supervision
#> - Writing - original draft
#> affiliations:
#> - ref: aff1
#> - id: aut2
#> name:
#> given: Jean-Jacques
#> family: Rousseau
#> email: rousseau@encyclopediste.fr
#> orcid: 0000-0000-0000-0002
#> roles:
#> - Writing - original draft
#> affiliations:
#> - ref: aff2
#> - id: aut3
#> name:
#> given: François-Marie
#> family: Arouet
#> email: arouet@encyclopediste.fr
#> note: also known as Voltaire
#> roles:
#> - Writing - original draft
#> affiliations:
#> - ref: aff2
#> - id: aut4
#> name:
#> given: Jean
#> family: Le Rond d'Alembert
#> email: alembert@encyclopediste.fr
#> orcid: 0000-0000-0000-0003
#> note: born in 1717 in Paris
#> roles:
#> - Supervision
#> - Writing - original draft
#> affiliations:
#> - ref: aff1
#> - ref: aff3
#> affiliations:
#> - id: aff1
#> name: Université de Paris
#> - id: aff2
#> name: Lycée Louis-le-Grand
#> - id: aff3
#> name: Collège des Quatre-Nations
#> ---
# Pushing again with new data updates the YAML
# header accordingly
aut <- PlumeQuarto$new(
dplyr::slice(encyclopedists, 2),
file = tmp_file
)
aut$to_yaml()
cat(readr::read_file(tmp_file))
#> ---
#> title: Encyclopédie
#> author:
#> - name:
#> given: Jean-Jacques
#> family: Rousseau
#> email: rousseau@encyclopediste.fr
#> orcid: 0000-0000-0000-0002
#> roles:
#> - Writing - original draft
#> affiliations:
#> - ref: aff1
#> affiliations:
#> - id: aff1
#> name: Lycée Louis-le-Grand
#> ---
# Clean up the temporary file
unlink(tmp_file)