Skip to contents

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{} with if(interactive()){} in Shiny function examples
    • quartify_app() and quartify_app_web() examples now properly indicate interactive-only usage
    • Users can see examples are meant for interactive sessions, not scripts
  • Working Directory Management:
    • Added immediate on.exit(setwd(old_wd), add = TRUE) after all setwd() calls
    • Ensures working directory is always restored, even if function errors
    • Fixed in rtoqmd.R, rtoqmd_dir.R, and quartify_app_web.R
    • Removed manual setwd() restoration in error handlers (now handled by on.exit())
  • Console Output:
    • Replaced cat() with message() in rtoqmd_dir.R per CRAN guidelines
    • Messages can now be suppressed with suppressMessages() if needed
    • More R-like behavior for console output
  • File Writing:
    • install_quartify_snippets() no longer writes to home directory by default in examples
    • Added path parameter 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() for input_file, output_file, and output_html_file
    • Quarto now receives absolute paths instead of tilde shortcuts
    • Resolves “No valid input files” error when using paths like “~/file.qmd”

Documentation Improvements

  • apply_styler Parameter:
    • Added comprehensive documentation in vignettes (EN and FR)
    • Clarified that use_styler must be TRUE for apply_styler to 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
  • 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

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

quartify 0.0.8

CRAN Submission Fixes

  • Final CRAN Compliance:
    • Added Language: en-US field in DESCRIPTION to avoid “qmd” misspelling NOTE
    • Fixed last partial argument match: renderrender_html in rtoqmd_dir()
    • Removed all non-ASCII characters: replaced accented characters (é → e) in French messages
    • Package now passes R CMD check with 0 errors, 0 warnings, 0 notes
  • Documentation Compliance:
    • Added ‘Quarto’ in single quotes in DESCRIPTION per CRAN policy
    • Added @return documentation for all exported functions (rtoqmd_addin, quartify_app, quartify_app_web)
    • Changed \dontrun{} to \donttest{} for executable examples in rtoqmd() and rtoqmd_dir()
    • Updated all examples to write to tempdir() instead of current directory
  • Code Quality:
    • Replaced cat() calls with message() for user-facing messages per CRAN guidelines
    • Fixed partial argument matching: changed all render arguments to render_html in Shiny apps
    • Fixed ERROR in R CMD check: changed non-executable example in rtoqmd_dir() back to \dontrun{}
  • User Interface Improvements:
    • Integrated shinyalert package for better user notifications
    • Replaced showNotification() with elegant modal dialogs using shinyalert()
    • Success and error messages now displayed in centered modal windows
    • Bilingual support: titles and messages adapt to selected language (EN/FR)
    • Added shinyalert to package dependencies

New Features

  • Code Quality Integration: New use_styler and use_lintr parameters for code quality checks:
    • use_styler: Automatically format code using styler and show differences in tabsets
    • use_lintr: Run lintr quality checks and display issues in tabsets
    • Available in both rtoqmd() and rtoqmd_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, Description
    • callout: Quarto callout structure
    • mermaid: Mermaid diagram chunk with options
    • tabset: 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

quartify 0.0.7

New Features

  • Quarto Book Creation:
    • create_book parameter now defaults to TRUE in rtoqmd_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 _documentation to _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)
  • 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.yml
      • html/ 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.yml when 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.html generation 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.html missing from ZIP downloads in quartify_app_web():
    • Quarto book rendering now waits for completion before file collection
    • All HTML files including index.html are 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_dispatch instead of automatic on push
  • Automatic push to DockerHub on main branch pushes
  • Reduced unnecessary Docker builds during development

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

quartify 0.0.5

New Features

  • Source Line Numbers:
    • Added show_source_lines parameter to rtoqmd() 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

  • 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 browser
      • port = NULL (default) for automatic port selection

quartify 0.0.4

New Features

  • Custom HTML Output Path:
    • Added output_html_file parameter to rtoqmd() to specify custom HTML output location
    • Added output_html_dir parameter to rtoqmd_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/)
  • Mermaid Diagram Support:
    • Added support for Mermaid diagrams to create flowcharts, sequence diagrams, and other visualizations

    • Use #| mermaid comment 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

  • Tabset Support:
    • Added support for tabsets to organize related content in interactive tabs

    • Use # tabset to start a tabset container, then # tab - Title for each tab

    • Perfect for displaying alternative views, different analyses, or grouped visualizations

    • Tabsets automatically close at RStudio section headers

    • Example syntax:

      # tabset
      # tab - Summary Statistics
      # Here are the basic summary statistics:
      summary(iris)
      
      # tab - Data Structure
      # Let's examine the structure:
      str(iris)
      
      # tab - First Rows
      # Here are the first few rows:
      head(iris)
    • Converted to Quarto {.panel-tabset} format in .qmd output

    • See inst/examples/example_tabset.R for complete examples

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

quartify 0.0.3

CRAN Preparation

  • Removed vignettes from package build (vignettes available online via pkgdown site)
  • Quoted ‘RStudio’ in DESCRIPTION to address CRAN check notes
  • Converted non-ASCII characters in R/addins.R to Unicode escapes (\uxxxx) for portability
  • Enhanced online documentation with red-highlighted critical rules sections for better visibility
  • Fixed R version consistency in CI/CD examples (updated to 4.5.1)

quartify 0.0.2

New Features

  • Improved RStudio Add-in Interface:
    • File browsers for input and output file selection using shinyFiles
    • Language buttons (EN/FR) moved to title bar next to GO button
    • Input and output file selectors on the same row for better UX
    • Title, Author, and Theme widgets organized on the same line
    • Checkboxes organized in 2 columns for better layout
    • Automatic language detection based on R session locale preferences
    • Session cleanup: app properly stops when browser window is closed
  • Theme Support:
    • Added HTML theme selection (25+ Quarto Bootswatch themes available)
    • Theme parameter in rtoqmd() and rtoqmd_dir() functions
    • Theme selection in RStudio add-in interface
  • Language Support:
    • Added lang parameter to rtoqmd() function
    • Table of contents title adapts to language: “Sommaire” (FR) or “Table of contents” (EN)
    • Add-in automatically detects user’s R session language
  • Enhanced Section Title Handling:
    • Flexible regex pattern accepts any RStudio section symbol (#, =, -)
    • Trailing symbols properly removed from section titles in output

Improvements

  • Updated interface labels:
    • “Render Html after conversion” (previously “Render after conversion”)
    • “Open Html output file after rendering” (previously “Open output file after rendering”)
    • “Number sections automatically (not needed if sections already numbered)” with helpful note
  • Removed unsupported format option:
    • Format parameter now always uses “html” (PDF removed from add-in interface)
    • Updated all documentation to reflect HTML-only support

Bug Fixes

  • Fixed pkgdown configuration:
    • Added aria-label to home icon for accessibility
    • Added rtoqmd_dir to reference index

Documentation

  • Updated README (EN/FR) with:
    • Automatic language detection feature
    • File browser information
    • Theme selection examples
    • Complete list of available themes
  • Enhanced vignettes with:
    • Multi-line Description field syntax
    • Comment conversion rules
    • Chunk splitting technique documentation
    • Theme usage examples

quartify 0.0.1

Initial Release

  • First public release of quartify package

Features

  • Automatic R to Quarto Conversion: Convert R scripts (.R) to Quarto markdown documents (.qmd) with proper formatting
  • RStudio Code Sections Support: Recognizes RStudio code section syntax (####, ====, ----) and converts them to hierarchical markdown headers with correct indentation levels (levels 2, 3, and 4)
  • Metadata Extraction: Automatically extracts metadata from special comments in R scripts:
    • # Title : or # Titre : for document title
    • # Author : or # Auteur : for author name
    • # Date : for document date
    • # Description : for document description
    • Metadata found in scripts overrides function parameters
  • Bilingual RStudio Add-in: Interactive Shiny interface with English/French language support for easy conversion through RStudio’s Addins menu
  • Comment Preservation: Regular comments are converted to explanatory text, while inline comments within code blocks are preserved
  • Markdown Table Support: Proper rendering of markdown tables in comments when lines are isolated with empty comment lines
  • Customizable Output:
    • HTML output format
    • Control section numbering
    • Enable/disable code folding
    • Automatic HTML rendering and opening in browser
  • RStudio Snippet: Included snippet for quick metadata header insertion in R scripts
  • Comprehensive Documentation:
    • Bilingual vignettes (English/French)
    • Detailed README with examples
    • Complete function documentation

Technical Details

  • Generated Quarto documents include proper YAML headers with table of contents configuration
  • Code chunks are non-executable by default (static documentation mode)
  • HTML output uses embed-resources: true for self-contained files
  • Roxygen comments (#') are automatically ignored during conversion