Skip to contents

This function creates a new 'Quarto' project directory with additional froggeR features. It first calls quarto::quarto_create_project() to set up the basic structure, then enhances it with froggeR-specific files and settings.

Usage

quarto_project(name, path = here::here(), custom_yaml = TRUE)

Arguments

name

Character string. The name of the 'Quarto' project directory and initial .qmd file.

path

Character string. Path to the project directory.

custom_yaml

Logical. If TRUE (default), uses a custom YAML header in the initial .qmd file, populated with values from '_variables.yml'. If FALSE, uses a standard YAML header.

Value

Invisibly returns the path to the created project directory.

Details

This function creates a 'Quarto' project with the following enhancements:

  • _variables.yml: Stores reusable YAML variables (if custom_yaml = TRUE)

  • .gitignore: Enhanced settings for R projects

  • README.md: Template README file

  • dated_progress_notes.md: For project progress tracking

  • custom.scss: Custom 'Quarto' styling (if custom_yaml = TRUE)

  • .Rproj: RStudio project file

If froggeR settings don't exist, it will prompt to create them.

Examples

if (quarto::quarto_version() >= "1.4") {
  # Create a temporary directory for testing
  tmp_dir <- tempdir()

  # Create the Quarto project with custom YAML & associated files
  quarto_project("frogs", path = tempdir(), custom_yaml = TRUE)

  # Confirms files were created (optional, for user confirmation)
  file.exists(file.path(tmp_dir, "frogs.rproj"))  # Rproj file
  file.exists(file.path(tmp_dir, "frog.qmd"))     # Quarto doc
  file.exists(file.path(tmp_dir, "_quarto.yml"))  # project YAML file

  # Create a new Quarto project with standard Quarto YAML
  # quarto_project('frogs_standard', path = tempdir(), custom_yaml = FALSE)

  # Clean up: Remove the created temp directory and all files
  unlink(list.files(tempdir(), full.names = TRUE), recursive = TRUE)
}
#>  Created Quarto project directory: frogs
#>  Created _variables.yml
#>  Created custom.scss
#>  Created .gitignore
#>  Created README.md
#>  Created dated_progress_notes.md
#>  No global froggeR config file found
#>  Created frogs.qmd with custom YAML
#>  Created frogs.Rproj
#>  froggeR project setup complete. Opening in new session...