# froggeR 1.0.1

## Enhancements

* The `pages/` directory has been renamed to `analysis/`, following the
  research compendium convention described in Marwick, Boettiger, and Mullen
  (2018). `write_quarto()` now writes to `analysis/` instead of `pages/`.

## Bug fixes

* `init()` no longer swallows directory creation errors. If `fs::dir_create()`
  fails, the actual error is reported instead of a generic "Invalid path."

* File writers (`write_variables()`, `write_brand()`, `write_quarto()`, etc.)
  check whether `file.copy()` succeeded before reporting success. A failed copy
  raises an error instead of silent success.

* `save_variables()` and `save_brand()` check whether `file.copy()` succeeded
  before reporting "Saved." A failed copy raises an error instead of silent
  success.

* `init()` warns and skips individual template files that fail to copy instead
  of silently counting them as created.

# froggeR 1.0.0 (2026-02-09)

## Breaking changes

* `quarto_project()` has been removed. It now errors with a message directing
  users to `init()` instead.

* `write_notes()` and `write_readme()` have been removed. These files are now
  included in the project template downloaded by `init()`.

* `write_ignore()` no longer accepts an `aggressive` parameter. A single
  `.gitignore` is provided.

* `settings()` and `brand_settings()` have been removed. Use
  `write_variables()` and `write_brand()` to create and edit configuration
  files directly. These functions now handle existing files gracefully
  (opening them for editing instead of erroring) and print reference URLs
  to the console.

* The `your-metadata-your-way` and `building-your-brand-identity` vignettes
  have been removed.

## New features

* New function `init()` is the primary entry point for creating froggeR
  projects. It downloads the latest project scaffold from the companion
  [frogger-templates](https://github.com/kyleGrealis/frogger-templates)
  repository and retrieves saved user configuration (`_variables.yml`,
  `_brand.yml`, `logos/`) from `~/.config/froggeR/`. The target directory is
  created automatically if it does not exist. Existing files are never
  overwritten, and each created or skipped file is reported individually.

* `write_scss()` gains a `filename` parameter (default `"custom"`). A `www/`
  prefix and `.scss` extension are stripped automatically, so
  `write_scss("tables")` and `write_scss("www/tables.scss")` are equivalent.

* **Template architecture**: Project templates now live in a separate repository
  (`kyleGrealis/frogger-templates`), decoupled from CRAN release cycles. Template
  improvements reach users immediately without a package update.

## Dependencies

* The `quarto`, `glue`, `readr`, and `stringr` packages have been removed from
  Imports.

## Testing

* Test suite restructured following function removals.

## Internal

* All template files previously bundled in `inst/gists/` have been removed.
  All templates are now fetched from the companion repository at runtime.

* New internal helper `.fetch_template()` downloads individual files from the
  template repository.

* New internal helper `.restore_saved_config()` handles copying global user
  configuration into new projects during `init()`.

# froggeR 0.6.0 (2025-11-13)

## New features

* New function `brand_settings()` for interactive branding configuration (name,
  colors, logos, typography). Saved to project-level, global, or both.

* New function `save_brand()` for saving brand configuration to global settings.

* `settings()` redesigned with interactive metadata workflow, input validation,
  and project/global save options.

* `write_brand()` gains `restore_logos` argument.

## Bug fixes

* Fixed empty optional fields causing errors in `settings()` and `brand_settings()`.

## Minor improvements

* Automatic one-time migration from `config.yml` to `_variables.yml`.
* Four vignettes added covering project setup, branding, metadata, and
  global configuration.
* Switched vignette builder from Quarto to knitr for CRAN compatibility.
* Input validation for hex colors, ORCID, email, GitHub username, and URLs.

## Internal

* Refactored `write_*` functions: public API delegates to internal `create_*`
  workers. Standardized error handling with `rlang::abort()` and custom classes.
* Expanded test suite across all exported and internal functions.

---

# froggeR 0.5.1

## Enhancements
* Minimal spelling corrections to `NEWS` and vignettes. *No functionality changes!*


# froggeR 0.5.0

## BREAKING!!
* `write_quarto()` argument `custom_yaml` has been replaced with `example`, defaulting to TRUE. The Quarto file templates have been reworked to use Quarto brand structure. This simplifies the YAML within the document, but may require changes to the project `_quarto.yml` and `_brand.yml` files.

## Enhancements
* 2 new Quarto brand YAML functions have been added: `write_brand()` & `save_brand()`. These functions allow users to add project `_brand.yml` file and save the current `_brand.yml` to where your machine stores configuration files. There are added arguments to save & restore your brand logos (saved as `logos/` directory).
* Modified SCSS template placeholders -- some of these are now easier to manage in the `_brand.yml` file. Added tweaks for ORCID logo issue when rendering with branding on Windows.
* Revised Quarto template YAML -- this seems to be a constant work in progress. Weighing the value of including defaults versus a more minimalistic approach.
* Removed creation of `.Rproj` file in `quarto_project()`.

## Bug Fixes
* Corrected logic flow in `write_variables()` that caused unintentional stoppage.


---

# froggeR 0.4.0

## Enhancements
* NEW: `save_variables()` is a new function to store the current project-level `_variables.yml` to the system configuration file path. It offers to overwrite if the system config exists.
* Simplified Quarto templates by removing unnecessary commenting throughout the YAML.
* Added section for including multiple authors in Quarto YAML files.
* Simplified README in favor of a more lightweight template.

## Bug Fixes
* Corrected indentation error for `affiliations` in the standard, non-custom Quarto template. Created rendering error.

## Documentation
* `save_variables()` documentation added to README

## Internal Changes
* Fixed tests for `write_notes()` and `write_readme()` to reflect updated content.


---

# froggeR 0.3.0

## Enhancements
* The `settings()` function replaces `froggeR_settings` and provides a menu-driven interface. Users can now check, view, and get instructions to use Quarto metadata within and across projects. Learn how to apply user-specific metadata from the global config file, or store local project metadata for reuse on future froggeR Quarto projects.
* The suite of `write_*` functions open the created files for immediate viewing & editing (in interactive sessions).
* Revised console feedback so users are always informed about how froggeR is helping streamline your project.

## Bug Fixes 
* *None*

## Documentation
* Fixed roxygen documentation for `@examples` by using `tempdir()` when executing functions.
* Used `@inheretParams` across supplemental functions (README, notes, ignore, SCSS, variables).

## Internal Changes
* Removed ability to change metadata from the console. Instructions are now provided and, for `write_variables()`, the config file is opened in the interactive session.
* Separated `write_readme`; now includes `write_notes` for a project-level progress notes template.
* If any document to be created from the `write_*` functions exists in the project, froggeR will now stop and provide a useful message *instead* of offering to overwrite from the console. This reduces annoying feedback & interaction and encourages the user to make deliberate decisions.


---

# froggeR 0.2.2

## Enhancements
* **`quarto_project()`**:
  - Streamlined integration with auxiliary functions for creating project-level files.
  - Improved error handling and user feedback when creating Quarto projects.
  - Ensured proper connection to `write_variables()` for managing `_variables.yml`.

* **`write_quarto()`**:
  - Enhanced functionality to automatically call `write_variables()` for `_variables.yml` creation.
  - Added clearer messaging for users when froggeR settings are missing, guiding them to set up metadata.

* **`write_variables()`**:
  - Introduced as a new function to create and manage `_variables.yml` files in a modular way.
  - Handles automatic population of YAML metadata using froggeR settings.

* **Improved User Feedback**:
  - Refined messaging across functions for consistency and clarity, including updated `ui_done` and `ui_info` outputs.

## Bug Fixes
* Resolved CRAN `check()` errors related to undefined global variables in examples.
* Fixed issues where `_variables.yml` creation would fail under specific directory conditions.

## Documentation
* Enhanced roxygen documentation for `write_quarto()`, `quarto_project()`, and `write_variables()` with detailed examples and explanations.
* Updated vignettes to demonstrate the modular design and improved workflows.

## Internal Changes
* Consolidated helper functions into `helpers.R` for better maintainability and organization.
* Improved modularity of settings and file management functions to align with best practices.



---

# froggeR 0.2.1

## Enhancements
* Improved `write_scss()` function for more streamlined YAML updates in Quarto documents.
* Enhanced user feedback in `froggeR_settings()` function, providing clearer output of current settings.
* Refined error handling and user guidance in various functions for a smoother user experience.
* Updated vignettes with more comprehensive examples and clearer explanations of froggeR workflows.

## Documentation
* Expanded and clarified documentation for key functions.
* Added more detailed examples in function documentation to illustrate various use cases.
* Updated README with additional information on package usage and benefits.

# froggeR 0.2.0
* Renamed `default` parameter to `custom_yaml` in `quarto_project()` and `write_quarto()` for clarity.
* Refactored `froggeR_settings()` to use YAML for configuration storage.
* Changed how settings are stored and retrieved. Settings are now stored in `~/.config/froggeR/config.yml`.
* Improved user interaction in `froggeR_settings()` function.
* Modified `quarto_project()` and `write_quarto()` to use the new YAML-based settings.
* Added `.check_settings()` function to provide user feedback on incomplete settings.
* Updated `.update_variables_yml()` function to handle both creation and updating of `_variables.yml`.
* Improved error handling and user feedback in various functions.
* Removed `load_data()` function and related utilities.
* Updated documentation and examples to reflect new functionality and improve clarity.
* Revised README for better explanation of package workflow and features.
* Updated pkgdown site structure to reflect current package organization.

# froggeR 0.1.0

## Major Features
* Implemented enhanced Quarto project creation with `quarto_project()`
  - Automated project structure setup
  - Custom YAML integration
  - Built-in .gitignore configuration
  - Project documentation templates
  
* Added interactive YAML configuration via `froggeR_settings()`
  - Author information management
  - Contact details setup
  - Project metadata configuration
  - TOC preferences

* Created document generation tools
  - `write_quarto()` for consistent document creation
  - `write_readme()` for structured project documentation
  - `write_ignore()` for enhanced Git security
  - `write_scss()` for custom styling templates

## Documentation
* Added comprehensive function documentation
* Included detailed examples for all main functions
* Created structured README with clear usage guidelines
* Added function reference table

## Project Structure
* Implemented consistent project organization
* Added template system for Quarto documents
* Created reusable YAML configuration system
* Added custom SCSS styling templates

## Security
* Enhanced data protection through comprehensive .gitignore settings
* Added safeguards for sensitive data files
* Implemented security best practices for R projects
