Releases: ddotta/quartify
v1.1.1
quartify 1.1.1
New Features
- Roxygen2 Documentation Rendering:
- Roxygen2 documentation blocks (
#') are now automatically formatted into structured callouts resembling pkgdown reference pages - Rendered documentation includes: title, source line reference, description, usage with function signature, arguments, return value, details, and examples
- LaTeX-style formatting is automatically converted to Markdown:
\href{url}{text}becomes[text](url)\code{text}becomes`text`\strong{text}becomes**text**\emph{text}becomes*text*
- Multi-line parameter descriptions and details are properly formatted
- Custom sections (via
@section) are supported and displayed
- Roxygen2 documentation blocks (
Bug Fixes
- CRAN Compliance:
- Added
Words: qmdto DESCRIPTION to prevent spell-check warning - Added pattern
^CRAN_CHECKLIST_.*\.md$to .Rbuildignore to exclude CRAN checklist files
- Added
- Metadata Processing: Fixed issue where empty lines and comments between metadata fields were not properly ignored, creating unwanted empty code chunks
- Section Header Detection: Improved regex pattern for hidden comments to correctly exclude RStudio section headers (
##,###,####) from being filtered out
Documentation
- Removed duplicate sections (Mermaid diagrams, Callouts) from advanced-features vignettes - these topics are now only in getting-started vignettes with correct syntax
- Added comprehensive documentation for roxygen2 rendering feature
Full Changelog: v1.1.0...v1.1.1
v1.1.0
quartify 1.1.0
New Features
- Hidden Comments:
- Comments starting with
#immediately followed by a non-space character (e.g.,#NOTE:,#TODO:,#DEBUG) are now completely ignored during conversion - Allows including private development notes, debugging markers, and internal annotations in R scripts that won't appear in rendered documentation
- Useful for
#TODO:,#FIXME:,#NOTE:,#DEBUG,#INTERNAL:,#PRIVATE:,#HACK:,#OPTIMIZE:markers - Only comments with a space after
#(e.g.,# This is a comment) are converted to text in the output
- Comments starting with
Improvements
-
RStudio Snippets Installation:
install_quartify_snippets()now uses correct paths for all platforms:- Windows:
%APPDATA%/RStudio/snippets - Mac/Linux:
~/.config/rstudio/snippets
- Windows:
- Automatically removes and replaces old quartify snippets when re-running the function
- Opens snippets file automatically in RStudio after installation
- Snippets can be reloaded immediately by saving the file (Ctrl+S / Cmd+S) without restarting RStudio
- Improved cross-platform compatibility for RStudio Desktop, Pro, and Server
-
Mermaid Diagram Syntax:
- Mermaid diagram content in R scripts now uses commented lines (with
#prefix) to maintain valid R syntax - Example:
# flowchart TD,# A[Start] --> B[End] - The
#prefix is automatically removed during conversion to Quarto - Ensures R scripts remain valid and executable while containing Mermaid diagrams
- Updated mermaid snippet to generate commented diagram lines
- Mermaid diagram content in R scripts now uses commented lines (with
Bug Fixes
- Code Quality: All non-ASCII characters removed from code to pass CRAN checks
- Comments and messages in
R/snippets.Rconverted to English
- Comments and messages in
Documentation
- Added comprehensive documentation for hidden comments feature in:
- Function documentation (
?rtoqmd) - Getting Started vignettes (EN and FR)
- README files (EN and FR)
- Function documentation (
- Updated all Mermaid diagram examples to show commented syntax
- Clarified snippet installation process and immediate reload capability
Full Changelog: v1.0.0...v1.1.0
v1.0.0
quartify 1.0.0
CRAN Release
This is the first CRAN release of quartify! The package is now fully compliant with CRAN policies.
CRAN Compliance Fixes
-
Interactive Examples:
- Replaced
\dontrun{}withif(interactive()){}in Shiny function examples quartify_app()andquartify_app_web()examples now properly indicate interactive-only usage- Users can see examples are meant for interactive sessions, not scripts
- Replaced
-
Working Directory Management:
- Added immediate
on.exit(setwd(old_wd), add = TRUE)after allsetwd()calls - Ensures working directory is always restored, even if function errors
- Fixed in
rtoqmd.R,rtoqmd_dir.R, andquartify_app_web.R - Removed manual
setwd()restoration in error handlers (now handled byon.exit())
- Added immediate
-
Console Output:
- Replaced
cat()withmessage()inrtoqmd_dir.Rper CRAN guidelines - Messages can now be suppressed with
suppressMessages()if needed - More R-like behavior for console output
- Replaced
-
File Writing:
install_quartify_snippets()no longer writes to home directory by default in examples- Added
pathparameter to allow custom snippet file location - Examples now write to
tempdir()for testing - Interactive examples properly wrapped in
if(interactive())
-
Path Handling:
- Fixed tilde (~) path expansion issue in
rtoqmd() - Added
path.expand()forinput_file,output_file, andoutput_html_file - Quarto now receives absolute paths instead of tilde shortcuts
- Resolves "No valid input files" error when using paths like "~/file.qmd"
- Fixed tilde (~) path expansion issue in
Documentation Improvements
-
apply_styler Parameter:
- Added comprehensive documentation in vignettes (EN and FR)
- Clarified that
use_stylermust be TRUE forapply_stylerto work - Added comparison table showing parameter combinations and results
- Included workflow example showing safe preview before applying changes
- Listed practical use cases for permanent code formatting
-
Mode Selection:
- Fixed missing mode selector in
quartify_app() - Now matches
rtoqmd_addin()with dynamic mode selection (single/directory) - Mode selector properly updates with language changes
- Fixed missing mode selector in
-
Directory Selection UI:
- Fixed directory button display issue (no more "span..." in label)
- Directory browser now opens correctly when selecting folders
- Dynamic button rendering with proper language support
Package Readiness
- Version 1.0.0: Stable release ready for CRAN submission
- Zero R CMD check issues: 0 errors, 0 warnings, 0 notes
- Full CRAN policy compliance: All guidelines followed
- Comprehensive documentation: Examples, vignettes, and help files complete
- Tested across platforms: Works on Windows, macOS, and Linux
Full Changelog: v0.0.9...v1.0.0
v0.0.9
quartify 0.0.9
New Features
- Roxygen2 Documentation Support:
- Documentation blocks using roxygen2 syntax (
#') are now converted to callout-note blocks - Function name automatically extracted and added to callout title (e.g., "Documentation - add_numbers")
- All roxygen2 tags (
@param,@return,@examples, etc.) preserved in callout content - Example file available:
inst/examples/example_roxygen.R - Works with
rtoqmd(),rtoqmd_dir()and all Shiny applications (rtoqmd_addin(),quartify_app(),quartify_app_web()) - Updated test suite to verify roxygen2 conversion behavior
- Documentation blocks using roxygen2 syntax (
Full Changelog: v0.0.8...v0.0.9
v0.0.8
quartify 0.0.8
CRAN Submission Fixes
-
Documentation Compliance:
- Added 'Quarto' in single quotes in DESCRIPTION per CRAN policy
- Added
@returndocumentation for all exported functions (rtoqmd_addin,quartify_app,quartify_app_web) - Changed
\dontrun{}to\donttest{}for executable examples inrtoqmd()andrtoqmd_dir() - Updated all examples to write to
tempdir()instead of current directory
-
Code Quality:
- Replaced
cat()calls withmessage()for user-facing messages per CRAN guidelines - Fixed partial argument matching: changed all
renderarguments torender_htmlin Shiny apps - Fixed ERROR in R CMD check: changed non-executable example in
rtoqmd_dir()back to\dontrun{}
- Replaced
-
User Interface Improvements:
- Integrated shinyalert package for better user notifications
- Replaced
showNotification()with elegant modal dialogs usingshinyalert() - Success and error messages now displayed in centered modal windows
- Bilingual support: titles and messages adapt to selected language (EN/FR)
- Added
shinyalertto package dependencies
New Features
-
Code Quality Integration: New
use_styleranduse_lintrparameters for code quality checks:use_styler: Automatically format code using styler and show differences in tabsetsuse_lintr: Run lintr quality checks and display issues in tabsets- Available in both
rtoqmd()andrtoqmd_dir()functions - Tabsets show Original Code, Styled Code (if changes), and Lint Issues (if found)
- Only creates tabsets when there are actual issues or changes to report
- Example file:
inst/examples/example_code_quality.R
-
RStudio Snippets Installation: New
install_quartify_snippets()function to automatically install useful snippets:header: R script header template with Title, Author, Date, Descriptioncallout: Quarto callout structuremermaid: Mermaid diagram chunk with optionstabset: Tabset structure with tabs
Bug Fixes
- Fixed
rtoqmd_addin()error when no document is active or unsaved (handled NULL/empty path cases)
Documentation
- Updated vignettes to reference
install_quartify_snippets()function - Simplified tabset examples (removed "Data Structure" and "First Rows" tabs)
- Added snippet tips for callouts, mermaid diagrams, and tabsets in both English and French vignettes
Full Changelog: v0.0.7...v0.0.8
v0.0.7
quartify 0.0.7
New Features
-
Quarto Book Creation:
create_bookparameter now defaults to TRUE inrtoqmd_dir()- Automatically creates Quarto book structure with navigation and index
- Books created in French now display "Sommaire" instead of "Table of contents"
- Default output directory changed from
_documentationto_book
-
Enhanced Shiny Applications (
rtoqmd_addin(),quartify_app(),quartify_app_web()):- Code Organization: Split monolithic
addins.R(2185 lines) into 3 separate files for better maintainability - Harmonized UI:
- GENERATE button moved to top of page (below title bar) with centered hex logo
- Consistent button placement across all 3 applications
- Blue title bar styling (
#0073e6) with white text - Removed Unicode symbols (checkmarks, arrows) for ASCII compliance
- Output Directory Selection: Added selector for custom output directory in directory mode
- Create Book Checkbox: New checkbox to enable/disable book creation in directory mode
- Multiple File Selection: Changed from single to multiple file selection in file mode
- Conditional UI Elements:
- "Open .qmd file" checkbox only visible in file mode
- "Open HTML file" checkbox only visible in file mode
- Document title field hidden in directory mode (no title needed for books)
- Mode Labels: Updated from "Un fichier" to "Un ou plusieurs fichiers" (FR) and "Single file" to "One or more files" (EN)
- Synchronized Loader: Loader now waits for Quarto rendering to complete before disappearing (checks for index.html creation)
- Code Organization: Split monolithic
-
Web Application Improvements (
quartify_app_web()):- Document title field hidden in batch mode
- Empty title automatically used in batch mode to avoid "My Analysis" in book chapters
- Removed directory selection option (file upload only for web deployment)
- Fixed ZIP download to include all generated files with proper structure:
qmd/folder contains all .qmd files and _quarto.ymlhtml/folder contains all HTML files with complete directory structure- Includes all resources (CSS, JS, fonts, images) for standalone book viewing
- Force synchronous rendering (
as_job = FALSE) to ensure all files are generated before download
-
Improved File Management:
- Automatic cleanup of existing book files before regeneration
- Temporary backup of
_quarto.ymlwhen rendering individual files - Prevents Quarto from detecting book structure during individual file renders
-
Enhanced User Experience:
- Changed loader background from opaque white to semi-transparent dark overlay
- Better visual feedback during conversion process with synchronized loader
- Success notifications with [OK] indicators
- Empty document title in directory/batch mode prevents placeholder text in generated books
- All text without accented characters for better compatibility
Bug Fixes
- Fixed "Book chapter 'index.qmd' not found" error during directory conversion
- Fixed
index.htmlgeneration issues in Quarto books - Resolved conflicts between individual file rendering and book structure
- Corrected file path detection for HTML output in book projects
- Fixed premature loader dismissal when Quarto renders in background
- Fixed
index.htmlmissing from ZIP downloads inquartify_app_web():- Quarto book rendering now waits for completion before file collection
- All HTML files including
index.htmlare now properly included in downloads - ZIP structure preserves complete directory hierarchy for functional offline viewing
- Resolved non-ASCII character warnings in R CMD check
Code Quality
- Removed all non-ASCII characters from source code for CRAN compliance
- Improved code organization with modular file structure
- Better maintainability with separated Shiny application files
CI/CD
- Docker image build now triggered manually via
workflow_dispatchinstead of automatic on push - Automatic push to DockerHub on main branch pushes
- Reduced unnecessary Docker builds during development
Full Changelog: v0.0.6...v0.0.7
v0.0.6
quartify 0.0.6
New Features
-
Web Deployment Version (
quartify_app_web()):- New web-friendly version designed for deployment on web servers
- Uses file upload/download instead of local file system access
- Deployed on SSP Cloud at https://quartify.lab.sspcloud.fr/
- No R installation required - use directly in your browser
- Upload your R script, configure options, and download generated .qmd and .html files
- Perfect for sharing quartify with non-R users
-
Docker Support:
- Added Dockerfile for containerized deployment
- Based on rocker/r-ver:4.4.1 with Quarto 1.4.549
- Automated CI/CD with GitHub Actions
- Docker images published to Docker Hub:
ddottaagr/quartify - Includes Helm chart for Kubernetes deployment
-
UI Improvements:
- Changed "GO" button to "GENERATE" across all interfaces for clarity
- Added bilingual support (EN/FR) for web version
- Improved button styling and layout consistency
Bug Fixes
- Fixed Quarto path issues in Docker environment
- Fixed image resource loading (hex logo and language flags) in web version
- Fixed relative path handling for
quarto_render()to avoid output path errors
Full Changelog: v0.0.5...v0.0.6
v0.0.5
quartify 0.0.5
New Features
-
Source Line Numbers:
- Added
show_source_linesparameter tortoqmd()to display original line numbers from source R script - When enabled, adds a comment at the beginning of each code chunk indicating the line range
- Format:
# Lines X-Y(English) or# Lignes X-Y(French) - Helps maintain traceability between documentation and source code
- Added checkbox in RStudio add-in interface with EN/FR translations
- Example output:
# Lines 19-20 iris |> count(Species)
- Completely automatic - no modification of R scripts required
- Default is TRUE - enabled by default for better traceability
- Added
-
Standalone Shiny App (
quartify_app()):- New exported function
quartify_app()for launching the conversion interface in any R environment - Works in Positron, VS Code, RStudio, terminal, or any IDE that supports R
- Opens in default web browser with full-featured interface
- Same functionality as RStudio add-in but IDE-agnostic
- Perfect for users who don't use RStudio but want the graphical interface
- Usage:
library(quartify); quartify_app() - Optional parameters:
launch.browser = TRUE(default) to open in browserport = NULL(default) for automatic port selection
- New exported function
v0.0.4
quartify 0.0.4
New Features
-
Custom HTML Output Path:
- Added
output_html_fileparameter tortoqmd()to specify custom HTML output location - Added
output_html_dirparameter tortoqmd_dir()to specify directory for batch HTML outputs - Added HTML file selector in RStudio add-in interface (optional field)
- HTML files can now be saved in different location than .qmd files
- Useful for organizing outputs in separate directories (e.g.,
docs/,html_output/)
- Added
-
Mermaid Diagram Support:
- Added support for Mermaid diagrams to create flowcharts, sequence diagrams, and other visualizations
- Use
#| mermaidcomment to start a Mermaid chunk in R scripts - Chunk options (lines starting with
#|) are automatically converted to Quarto format (%%|) - Diagram content follows without
#prefix and ends at empty line or comment - Example syntax:
#| mermaid #| eval: true flowchart TD A[Start] --> B[Process] B --> C[End]
- Converted to proper Quarto Mermaid chunks in .qmd output
Bug Fixes
- Fixed issue where Quarto render command needed to run from .qmd file directory
- Improved path handling for custom HTML output locations with relative paths
- Added proper working directory management during Quarto rendering
Full Changelog: v0.0.3...v0.0.4
v0.0.3
quartify 0.0.3
CRAN Preparation
- Added
VignetteBuilder: knitrto DESCRIPTION - Added
knitrandrmarkdownto Suggests for vignette building - Quoted 'RStudio' in DESCRIPTION to address CRAN check notes
- Converted non-ASCII characters in R/addins.R to Unicode escapes (\uxxxx) for portability
- Enhanced vignettes with red-highlighted critical rules sections for better visibility
- Fixed R version consistency in CI/CD examples (updated to 4.5.1)