
froggeR version: 0.6.0 — Leap into Quarto with confidence
froggeR is an R package designed to streamline the creation and management of Quarto projects. It provides a suite of tools to automate setup, ensure consistency, and enhance collaboration in data science workflows.
Leap ahead in your data science journey with froggeR! Streamline Quarto workflows, create structured projects, and enhance collaboration with ease. 🐸
froggeR simplifies project setup so you can focus on what matters:
.gitignore settings
for enhanced data protectionquarto_project(name)settings() manages author info, emails, ORCIDs,
affiliations, and GitHub usernamesbrand_settings() provides core setup with advanced template
editing options.gitignore options - Choose
between minimal or aggressive data protection settingsinstall.packages("froggeR")# Install using pak (recommended)
# install.packages("pak")
pak::pak("kyleGrealis/froggeR")
# Or use remotes
# install.packages("remotes")
remotes::install_github('kyleGrealis/froggeR')Get started with froggeR in just a few steps:
library(froggeR)
# Step 1: Configure your metadata (one time, reused everywhere)
settings()
# Step 2: Configure your branding (optional, one time, reused everywhere)
brand_settings()
# Step 3: Create your first froggeR project
quarto_project('my_project')froggeR is ideal for R users who:
Example of a rendered Quarto document created with froggeR
Initialize a comprehensive Quarto project with a single command:
froggeR::quarto_project(name = 'my_new_project')This creates:
.gitignoreREADME.md & progress notes
templates_variables.yml & _brand.yml
filescustom.scss style sheet templatereferences.bib for citationsfroggeR uses a two-tier configuration approach that flows from global → project → future projects:
Maintain consistent metadata across your documents with
settings():
froggeR::settings()This provides an interactive workflow to:
Once configured globally, your metadata is automatically available in all future froggeR projects.
Configure project branding with brand_settings():
froggeR::brand_settings()This provides an interactive workflow to:
The branding system allows for a quick interactive setup for core
elements, while providing a full template for more advanced
customization:
- Core Elements (Interactive): The most common branding
elements – project name, primary color, and logos – are configured
through a simple interactive process.
- Advanced Options (Template): For more detailed
control, you can opt to edit the full branding template, which includes
typography, additional color palettes, code styling, and more.
Quickly generate new Quarto documents with pre-formatted headers:
froggeR::write_quarto(
filename = 'data_cleaning',
example = TRUE # Add tool templates
)Your saved metadata automatically populates author information and branding.
Set up a .gitignore tailored to your project’s
needs:
# Creates a minimal .gitignore suitable for most R projects
froggeR::write_ignore()
# For projects with sensitive data, create a more comprehensive .gitignore
froggeR::write_ignore(aggressive = TRUE)The default write_ignore() excludes common R and Quarto
artifacts. The aggressive version additionally excludes a
wide range of common data file types (e.g., .csv,
.xlsx, .rds) to help prevent accidental data
exposure.
Generate a SCSS template for custom document styling:
froggeR::write_scss()Provides a formatted stylesheet with:
Customize your document’s appearance by uncommenting desired styles.
Generate a structured README for your project:
froggeR::write_readme()Includes sections for:
froggeR validates all configuration inputs to ensure data quality and consistency:
Name: Minimum 2 characters required
- Example: “Kyle Grealis”
Email: Must include @ symbol and domain
- Example: “user@example.com”
- Invalid: “user@example” or “user@.com”
ORCID (optional): Must follow standard ORCID
format
- Format: 0000-0000-0000-0000
- Example: “0000-0002-9223-8854”
- Leave blank if you don’t have one
URL (optional): Must start with http:// or
https://
- Valid: “https://yoursite.com”, “http://example.org”
- Invalid: “yoursite.com” or “ftp://example.com”
GitHub Username (optional): Alphanumeric characters
and hyphens only
- Rules: Max 39 characters, no leading/trailing hyphens
- Valid: “octocat”, “kyle-grealis”, “user123”
- Invalid: “-username”, “username-”, “user@name”
Hex Color Format: Must be valid hexadecimal
color
- Long form: #RRGGBB (e.g., “#0066cc”, “#FF5733”)
- Short form: #RGB (e.g., “#06c”, “#F57”)
- Invalid: “red”, “0066cc”, “#GGGGGG”
| Function | Description |
|---|---|
settings() |
Manage persistent Quarto document metadata |
brand_settings() |
Manage persistent branding configuration |
quarto_project() |
Initialize a complete Quarto project structure |
write_quarto()* |
Create consistently formatted Quarto documents |
write_variables()* |
Re-use metadata across projects & documents |
write_brand()* |
Create project-level _brand.yml configs |
save_variables() |
Save current _variables.yml to system-level
configs |
save_brand() |
Save current _brand.yml to system-level configs |
write_ignore()* |
Create a minimal or aggressive .gitignore file |
write_readme()* |
Generate a comprehensive project README |
write_notes()* |
Create a dated progress notes template |
write_scss()* |
Create a customizable SCSS styling template |
* These functions are included with
quarto_project()
library(froggeR)
# Run this once to set up your author metadata
froggeR::settings()
# Follow the interactive prompts:
# - Enter your name
# - Enter your email
# - Optional: ORCID, website, GitHub username, affiliations
# - Choose to save globally for reuse across all future projectslibrary(froggeR)
# Run this once to set up your project branding
froggeR::brand_settings()
# Follow the interactive prompts:
# - Enter project name
# - Enter primary brand color (hex format)
# - Upload logo paths
# - Optionally edit the full template for advanced options
# - Choose to save globally for reuse across projectslibrary(froggeR)
# Your saved metadata and branding are automatically available
froggeR::quarto_project('my_analysis')
# The project automatically includes:
# - _variables.yml with your metadata
# - _brand.yml with your branding
# - Quarto document with your author info pre-filledOnce you’ve saved metadata globally, it flows automatically to new projects:
library(froggeR)
# Project 1: Create and save metadata
froggeR::settings() # Save globally
# Project 2 (new directory): Metadata is already available
froggeR::quarto_project('new_project') # Uses saved metadata automatically
# Project 3: You can still create project-specific overrides
froggeR::settings() # Choose "Save to this project only" for local overridelibrary(froggeR)
# Step 1: Create your branding once
froggeR::brand_settings()
# Step 2: Save globally to reuse in all future projects
# (Select "Save globally" or "Save to both locations")
# Step 3: Create new projects - branding applies automatically
froggeR::quarto_project('branded_project')
# Step 4: Update branding anytime
froggeR::brand_settings() # Choose "Update existing branding"Documentation & Resources:
Function Help:
Get help on any function directly in R:
?froggeR::quarto_project
?froggeR::settings
?froggeR::brand_settings
?froggeR::write_quartoWhile there are other project management tools for R, froggeR stands out by:
froggeR is thoroughly tested with:
test-settings.R)test-brand_settings.R)test-write_brand.R,
test-write_variables.R)test-write_quarto.R)test-write_ignore.R)test-quarto_project.R)test-utils.R)test-save_brand.R,
test-save_variables.R)All tests pass with 100% success rate. See the tests directory for detailed test examples and patterns.
We’re constantly improving froggeR. Upcoming feature considerations include:
We welcome contributions and ideas! Here’s how you can help:
froggeR is licensed under the MIT License. See the LICENSE file for details.
froggeR is built with love using R, Quarto, and these amazing
packages:
- cli - User-friendly command line
interfaces
- fs - Cross-platform file system
operations
- here - Project-oriented
workflows
- quarto - Quarto
integration for R
- usethis - Workflow
automation
- yaml - YAML parsing
and writing
Developed by Kyle Grealis
froggeR makes your Quarto projects jump for joy! 🐸