toolero 0.4.0
Breaking changes
-
create_qmd(): no longer copiesstyles.cssandheader.htmlfrom the package into the project. Custom styling is now controlled exclusively by the newuse_styleargument. Projects that relied oncreate_qmd()copying UW-branded assets should useinit_project(uw_branding = TRUE)to scaffold those files, then passuse_style = TRUEtocreate_qmd()to wire them into the YAML. -
create_qmd(): sample data is now copied intodata-raw/instead ofdata/, consistent withinit_project()’s folder structure.
New features
- Added
arborize()for rendering syntactic trees as standalone PNG images using Quarto’s Typst engine. Accepts two input formats via thetree_notationargument:-
"simple"(default) – bracket notation string, uses@preview/syntree:0.2.1 -
"structured"– nestedtree()call string, uses@preview/lingotree:1.0.0Output PNG files can be embedded in any document format without requiring a LaTeX installation. Requires Quarto 1.4+ with Typst support and thepdftoolspackage (in Suggests).
-
-
create_qmd(): addedinclude_examplesargument (defaultTRUE). WhenTRUE, copies a sample dataset (sample.csv) intodata-raw/, a placeholder logo (logo.png) intoassets/, and uses a worked example template with aparamsblock referencing the sample data. WhenFALSE, creates a blank skeleton.qmdwith only the YAML header and a setup chunk – no sample data, no logo, no example analysis block. -
create_qmd(): addeduse_styleargument (defaultFALSE). AcceptsFALSE(no custom styling),TRUE(scansassets/for.cssand.htmlfiles), or a directory path (scans that directory instead). When exactly one.cssfile is found, it is added ascss:in the YAML. When exactly one.htmlfile is found, it is added asinclude-before-body:. If multiple files of either type are found, the function errors and asks the user to specify which one to use viayaml_data. This decouples styling frominit_project()and supports non-UW branding workflows. - Added
inst/templates/skeleton.qmd– a minimal Quarto template used wheninclude_examples = FALSE. Contains the YAML header, a setup chunk withlibrary(toolero), and a single placeholder heading. - Added
inst/templates/logo.png– a placeholder logo image copied intoassets/wheninclude_examples = TRUE. Reads “your logo goes here” so the user knows to replace it with their own branding.
toolero 0.3.0
CRAN release: 2026-04-27
Breaking changes
-
create_qmd():filenameis now the first argument and has no default – it must be supplied explicitly.pathis now the second argument and defaults to".", allowing natural calls likecreate_qmd("analysis.qmd"). -
write_by_group(): sanitized output filenames now use-(dash) as the separator instead of_(underscore), consistent with the package convention that file names use dashes. Existing workflows that reference output paths by name will need to update accordingly. -
init_project(): thefile_pathargument has been renamed topathfor consistency withcreate_qmd()and the broader package API. Calls usingfile_path =by name will error; positional calls are unaffected.
New features
- Added
generate_kb_xml()to produce UW-Madison KB-importable XML files from rendered Quarto documents. Extracts metadata from the.qmdYAML header and re-renders with embedded resources for self-contained import. -
create_qmd(): addeduse_purlargument (defaultTRUE) that scaffolds a_quarto.ymlpost-render hook and apurl.Rscript for extracting R code from rendered documents intoR/.
Bug fixes
-
init_project(): now runsrenv::snapshot()and creates.renvignoreafterrenv::init(), ensuring the lockfile is populated and.qmdfiles are excluded from dependency scanning at project creation time. -
create_qmd():_quarto.ymlis now copied frominst/templates/rather than written from a hardcoded string, so changes to the template are reflected automatically. -
create_qmd():purl.Ris now correctly placed inR/instead of the project root, consistent with_quarto.ymlcallingRscript R/purl.R. -
create_qmd(): fixed YAML boolean serialization whenyaml_datais supplied.yaml::as.yaml()was convertingtrue/falsetoyes/no, which Quarto does not recognize. A custom handler now forces unquotedtrue/falseoutput. -
inst/templates/purl.R: replacedQUARTO_DOCUMENT_PATHenvironment variable approach withfs::dir_ls()glob scan, which works reliably regardless of how Quarto invokes the post-render script.
toolero 0.2.0
CRAN release: 2026-04-24
Breaking changes
-
create_qmd():pathis now a required argument with no default. PassingNULLor omitting it raises an error. Usetempdir()for temporary output. -
write_by_group():output_diris now a required argument with no default. PassingNULLor omitting it raises an error. Usetempdir()for temporary output. -
init_project():opennow defaults toFALSEinstead ofTRUEto avoid disrupting the current RStudio session in non-interactive contexts.
New features
- Added
detect_execution_context()to identify whether code is running in an interactive R session, aquarto rendercall, or a plainRscriptinvocation. Returns one of"interactive","quarto", or"rscript". - Added
create_qmd()to scaffold a new Quarto document from a reproducible template, including a sample dataset, UW-Madison branded assets, and three-context input resolution viadetect_execution_context(). Optionally pre-populates the YAML header from a user-supplied YAML config file. - Added
write_by_group()to split a data frame by a single grouping column and write each group to a separate CSV file. Filenames are derived from sanitized group values. Optionally writes amanifest.csvlisting output files, group values, and row counts.
toolero 0.1.1
New features
- Added
uw_brandingargument toinit_project(). WhenTRUE, creates anassets/folder in the new project and populates it with UW-Madison RCI branding files (styles.css,header.html,rci-banner.png).
