authordown is an R package for managing author metadata and generating manuscript front matter, especially for large author lists.
Online app: Open the app
- Title page generation with affiliation numbering and correspondence notes
- Author metadata validation and normalization
- Acknowledgements, conflict of interest, and contribution sections
- Templates to standardize author data entry
- Shiny app for quick preview and export
From CRAN (once available):
install.packages("authordown")From GitHub:
# install.packages("devtools")
devtools::install_github("zh1peng/authordown")library(authordown)
# Use the bundled CSV template
template_path <- system.file("extdata", "authordown_template.csv", package = "authordown")
authors <- authordown_read_local(template_path)You can also write a fresh template to your working directory:
authordown_template("authors.csv")title_page <- generate_title_page(
data = authors,
title = "Example Paper",
style = "default",
show_degree = TRUE
)
cat(title_page)ack <- generate_acknowledgement(authors, style = "paragraph")
coi <- generate_conflict(authors, style = "paragraph")
contrib <- generate_contribution(authors, style = "bullets")
cat(ack)
cat("\n\n")
cat(coi)
cat("\n\n")
cat(contrib)xlsx_path <- system.file("extdata", "authordown_template.xlsx", package = "authordown")
authors_xlsx <- authordown_read_local(xlsx_path)If you manage authors in an online table, export it locally and then use
authordown_read_local():
- Export to CSV or XLSX (or TSV).
- Read locally with
authordown_read_local().
Supported formats: CSV, TSV, XLSX.
Use Affiliation1, Affiliation2, ... AffiliationN columns to list all
affiliations for each author. There is no hard limit; add as many columns as
needed. The title page numbers affiliations in the order they first appear.
Online app: Open the app
library(shiny)
shiny::runApp(system.file("shiny-app", package = "authordown"))Workflow: download the template, fill it, upload it, preview the parsed data, then generate outputs for copy/paste.
If you want rendered HTML for easy copy/paste into a manuscript system, use:
\dontrun{
html_path <- render_section_html(
section_title = "Conflict of Interest",
content_function = generate_conflict,
data = authors,
style = "paragraph"
)
}- "Missing required column" means your file does not include required fields such as
FirstNameandLastName. - "Corresponding authors must have an Email" means a row has
Corresponding = TRUEbutEmailis blank. - "ORCID values must use the 0000-0000-0000-0000 format" indicates a formatting error.
AGPL-3
