presentifyr is a Shiny application that builds PowerPoint
presentations from R-generated figures. Select images from your project,
choose slide layouts from your template, configure footnote styling, and
generate a polished .pptx in seconds. When figures or footnotes change
between review rounds, use the built-in sync workflow to quickly rebuild
the deck with up-to-date content.
.png, .jpg, etc.) — PDFs are not supported.presentifyr reads two kinds of files from a reportifyr-initialized
project, both enabling elective features:
_metadata.json files saved next to
each image by reportifyr::ggsave_with_metadata() or
reportifyr::write_object_metadata(). Each sidecar may declare an
abbreviation key or meta_type to be decoded against the Footnotes
YAML below.<report_dir>/standard_footnotes.yaml, defining
abbreviations, figure_footnotes, and table_footnotes.
presentifyr uses this as a lookup table when an image's metadata
sidecar references an abbreviation key or meta_type, decoding them
into footnote text on each slide. <report_dir> defaults to report;
override with options("presentifyr.report_dir_name") if your project
uses a different name.You can install the development version of presentifyr like so:
# pak::pkg_install("a2-ai/presentifyr")
install.packages("presentifyr", repos = c('https://a2-ai.r-universe.dev', 'https://cloud.r-project.org'))
initialize_app() sets up the Python virtual environment (via pyro)
and installs python-pptx:
library(presentifyr)
initialize_app()
app()
presentifyr respects three options, all displayed on package attach:
| Option | Default | Description |
|---|---|---|
options("project.dir") |
here::here() |
Project root directory |
options("presentifyr.exclude_dirs") |
Internal list | Directories hidden from the file tree |
options("presentifyr.report_dir_name") |
"report" |
Report directory name (joined onto project.dir) |
Set these before calling app() or initialize_app():
options(project.dir = "/path/to/project")
options(presentifyr.exclude_dirs = c("renv", "data"))
options(presentifyr.report_dir_name = "deliverables")