froggeR

R CMD check: passing Lifecycle: stable Tests: 484 assertions

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.

Table of Contents

Why froggeR?

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:


Key Features


Installation

From CRAN

install.packages("froggeR")

Development Version

# Install using pak (recommended)
# install.packages("pak")
pak::pak("kyleGrealis/froggeR")

# Or use remotes
# install.packages("remotes")
remotes::install_github('kyleGrealis/froggeR')

Quick Start

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')

Who’s it for?

froggeR is ideal for R users who:


Core Workflows

Rendered Document Example

Example of a rendered Quarto document created with froggeR


🎯 Streamlined Quarto Project Creation

Initialize a comprehensive Quarto project with a single command:

froggeR::quarto_project(name = 'my_new_project')

This creates:

🔧 Configuration & Reusability

froggeR uses a two-tier configuration approach that flows from global → project → future projects:

Metadata Configuration

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.

Branding Configuration

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.

📝 Templated Quarto Documents

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.

🛡️ Enhanced Git Protection

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.

🌟 Custom Styling Made Easy

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.

📚 Automated Project Documentation

Generate a structured README for your project:

froggeR::write_readme()

Includes sections for:


Input Validation

froggeR validates all configuration inputs to ensure data quality and consistency:

Metadata Validation

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”

Branding Validation

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 Reference

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()


Examples

Quick Start: Setting Up Metadata

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 projects

Quick Start: Configuring Branding

library(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 projects

Creating a New Project with Saved Settings

library(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-filled

Reusing Metadata Across Projects

Once 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 override

Saving and Applying Branding

library(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"

Getting Help

Documentation & Resources:

Function Help:

Get help on any function directly in R:

?froggeR::quarto_project
?froggeR::settings
?froggeR::brand_settings
?froggeR::write_quarto

Why froggeR Over Other Tools?

While there are other project management tools for R, froggeR stands out by:


Testing & Quality

froggeR is thoroughly tested with:

All tests pass with 100% success rate. See the tests directory for detailed test examples and patterns.


Upcoming Features

We’re constantly improving froggeR. Upcoming feature considerations include:


Contributing

We welcome contributions and ideas! Here’s how you can help:


License

froggeR is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments

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! 🐸