make_clean_title() no longer strips hyphens from measure display names. Previously, gsub("[_-]", " ", x) treated hyphens as word separators (like underscores), converting "Honesty-Humility" to "Honesty Humility" and "Right-Wing Authoritarianism" to "Right Wing Authoritarianism". Since R identifiers cannot contain hyphens, any hyphen in a name field or label_mappings value is intentional typography and is now preserved.boilerplate_save(). Backups are now created for both RDS and JSON formats when create_backup = TRUE.tools::R_user_dir() for cache storage instead of ~/.boilerplate/cachetools::R_user_dir() for CRAN compliancetools::R_user_dir("boilerplate", "data") instead of project directoriesinteractive() checks to all user prompts for non-interactive compatibilitystatistical.default instead of non-existent analysis)get_default_data_path an internal function to resolve pkgdown documentation issues.vscode directory inclusion in package buildsboilerplate_init(), boilerplate_import(), boilerplate_save(), boilerplate_export()) now accept a project parameterboilerplate/projects/boilerplate_copy_from_project() - Selectively copy content between projects with conflict handlingboilerplate_list_projects() - List all available projectsboilerplate_merge_databases() - Use boilerplate_copy_from_project() insteadboilerplate_merge_unified() - Use boilerplate_copy_from_project() insteadboilerplate_merge_category() - Use boilerplate_copy_from_project() insteadboilerplate_update_from_external() - Use boilerplate_copy_from_project() insteadglue, janitor, and stringr - replaced with base R equivalentsboilerplate_manage_text() and boilerplate_manage_measures()) - saving 625+ lines of code_json variantsboilerplate_import(), boilerplate_save(), and boilerplate_export() now auto-detect and handle both JSON and RDS formats seamlesslyboilerplate_import() - Now auto-detects JSON or RDS format based on file extensionsboilerplate_save() - Added format parameter supporting "json", "rds", or "both"boilerplate_export() - Added format parameter for flexible export optionsboilerplate_batch_edit() - Can now load databases directly from file paths (JSON or RDS)boilerplate_standardise_measures() - Added json_compatible parameter for JSON-specific formattingboilerplate_migrate_to_json() - Migrate RDS databases to JSON formatboilerplate_rds_to_json() - Convert individual RDS files to JSONcompare_rds_json() - Compare RDS and JSON databases for migration validationvalidate_json_database() - Validate JSON structure against schemasboilerplate_add_entry_enhanced() - Add entries with documented template variablesboilerplate_update_entry_enhanced() - Update entries while preserving variable documentationboilerplate_get_variables() - Retrieve variable documentation for a specific pathboilerplate_list_variables() - List all template variables across database with documentation statusextract_template_variables() - Extract variables from template stringsboilerplate_check_health() - Comprehensive database health checks including:
boilerplate_check_health() - Now includes integrated report generation with report parameterboilerplate_import() - Can now import database files directly by path (both timestamped and backup files)boilerplate_list_files() - List and organise all database files (standard, timestamped, backups)boilerplate_restore_backup() - Convenient function to restore from backup filesprint.boilerplate_health() - Formatted output for health check resultsboilerplate_add_bibliography() - Add bibliography information to databaseboilerplate_update_bibliography() - Download and cache bibliography filesboilerplate_copy_bibliography() - Copy bibliography to project directoryboilerplate_validate_references() - Check that all citations exist in bibliographyboilerplate_generate_text() - Now supports automatic bibliography copying with copy_bibliography parameterboilerplate_generate_measures() - Now fully replaces deprecated boilerplate_measures_text()boilerplate_standardise_measures() - Standardises measure entries by extracting scale information, identifying reversed items, cleaning descriptions, and ensuring consistent structureboilerplate_measures_report() - Analyses a measures database and reports on completeness and consistencyboilerplate_import_json() - use boilerplate_import() instead (auto-detects format)boilerplate_save_json() - use boilerplate_save(..., format = "json") insteadboilerplate_batch_edit_json() - use boilerplate_batch_edit() instead (accepts file paths)boilerplate_standardise_measures_json() - use boilerplate_standardise_measures(..., json_compatible = TRUE) insteadboilerplate_manage_text() and boilerplate_manage_measures() - deprecated functions no longer neededboilerplate_batch_edit() allows batch editing of specific fields across multiple entries in a boilerplate databaseboilerplate_batch_edit_multi() allows editing multiple fields across multiple entries in a single operationboilerplate_batch_clean() - allows batch cleaning of text fields by removing or replacing specific characters or patterns across multiple entries in a boilerplate databaseboilerplate_find_chars() - helper to search across a boilerplate databaseboilerplate_export() fixed, works nowextract_selected_elements() fixed (was not properly handling the traversal to get all elements)merge_recursive_lists() improved handlingboilerplate_save()find_changes()boilerplate_init() supports initialising empty database structures by defaultboilerplate_export() export wholes or parts of databases, for:
boilerplate_save() for normal database updates and boilerplate_export() for creating standalone exportsget_default_measures_db() creates measures data with the correct structureboilerplate_methods(), boilerplate_results(), etc.boilerplate_merge_databases() for merging databases with conflict resolutionboilerplate_merge_category() for category-specific mergingboilerplate_merge_unified() for merging unified databasesboilerplate_report_statistical_estimator() enhanced for grf and allows short and long reporting.boilerplate_measures() - one function that does all we need for measures reporting
boilerplate_report_measures() works if only baseline_vars, exposure_var, or outcome_vars are passed.boilerplate_manage_measures(): now, if 'n' is selected for new database name, the manager will return to the main menu instead of charging along.boilerplate_merge_databases(): merges databases, currently implemented for measures_data.boilerplate_report_methods() function.boilerplate_manage_measures(): simple gui to input measures, saves as .rds filesboilerplate_report_measures(): report an appendix of measures with items described.boilerplate_report_causal_interventions(): report causal contrastsboilerplate_report_variables():report variables in methods section (exposure/ outcomes)