← Back to all sparks
P

plume

INFRA · APIS
Velocity0.0

A Simple Author Handler for Scientific Writing

A niche R package for author bylines that keeps sanding down the edges of academic metadata.

quartor-markdownauthor-metadatacredit-rolesr-packageacademic-publishing
Current state
plume builds author lists, affiliations, and CRediT contribution statements for R Markdown and Quarto documents. After a long stretch of small correctness releases through 2024, 0.3.0 in September 2025 broke the pattern with the largest feature batch since 0.2.0 — plain-function constructors, configurable symbols, and finer control over initials. The package covers one narrow job and covers it thoroughly.
Where it's heading
The release history reads as a slow campaign against edge cases in a domain full of them: authors with no roles, non-cased scripts, duplicate family names, YAML headers containing comments the writer must not destroy. Over 2024 nearly every release was a fix or a small parameter refinement, with PlumeQuarto steadily catching up to Quarto's own author schema. 0.3.0 shows the maintainer beginning to smooth the API itself rather than only its behaviour — aliases for the R6 constructors, deprecations moved to where they belong.
Prediction
Expect continued tracking of Quarto's author-metadata schema as it changes upstream, and more API smoothing of the kind 0.3.0 started; the ORCID icon regression caused by Quarto's path resolution suggests upstream churn will keep setting the agenda.

Recent moves

  1. 10mo ago

    Function constructors, configurable symbols, and disambiguated initials

    The largest release in the window and the first to reshape the API rather than only its behaviour. new_plume() and new_plume_quarto() give plain-function alternatives to the R6 constructors, plm_symbols() makes the marker symbols configurable, and dotted_initials moves from the getter to the constructor where it belongs. distinct_initials disambiguating same-initial authors is the kind of edge case this package exists to handle.

    View source ↗
  2. 1y ago

    Quarto author schema coverage: degrees, group affiliations, .yaml files

    PlumeQuarto closes gaps against Quarto's own author schema: degrees and group affiliations are now supported, roles keep their casing, authors with no roles no longer break, and .yaml is accepted alongside .yml. Straight schema-coverage work in the pattern that dominates this package's 2024.

    View source ↗
  3. 2y ago

    Vignette expansion and a selection-helper import fix

    Vignette edits plus two small fixes — selection helpers failing under explicit :: import, and a stale citation() output. Nothing changes for existing documents.

    View source ↗
  4. 2y ago

    Role propagation in set_main_contributors, plus script-aware initials

    Mostly correctness, with one real behaviour change: .roles in $set_main_contributors() now propagates to unnamed expressions, so you can set the same main contributors across all but a few roles in one call. The rest handles the edge cases this package keeps finding — initials in scripts without letter cases, missing corresponding authors, empty affiliation schemas.

    View source ↗
  5. 2y ago

    to_yaml stops clobbering headers with comments and custom tags

    $to_yaml() learns to write author metadata into a separate YAML header when the original contains comments, custom tags, or folded blocks it would otherwise destroy — a data-loss fix rather than a cosmetic one. The $set_*() methods' handling of ... was overhauled for consistency across edge cases.

    View source ↗
  6. 2y ago

    CRediT author ordering fixed; format deprecated for suffix

    An author-ordering bug in $get_contributions() with CRediT roles is fixed, a sep parameter adds control over contributor separators, and the ambiguous format parameter is deprecated in favour of suffix. Early evidence of the naming discipline that 0.3.0 later applied more broadly.

    View source ↗