#') are now
automatically formatted into structured callouts resembling pkgdown
reference pages\href{url}{text} becomes [text](url)\code{text} becomes `text`\strong{text} becomes **text**\emph{text} becomes *text*@section) are supported and
displayedWords: qmd to DESCRIPTION to prevent spell-check
warning^CRAN_CHECKLIST_.*\.md$ to .Rbuildignore
to exclude CRAN checklist files##, ###, ####) from being
filtered out# immediately followed by a
non-space character (e.g., #NOTE:, #TODO:,
#DEBUG) are now completely ignored during conversion#TODO:, #FIXME:,
#NOTE:, #DEBUG, #INTERNAL:,
#PRIVATE:, #HACK:, #OPTIMIZE:
markers# (e.g.,
# This is a comment) are converted to text in the
outputinstall_quartify_snippets() now uses correct paths for
all platforms:
%APPDATA%/RStudio/snippets~/.config/rstudio/snippets# prefix) to maintain valid R syntax# flowchart TD,
# A[Start] --> B[End]# prefix is automatically removed during conversion
to QuartoR/snippets.R converted to
English?rtoqmd)This is the first CRAN release of quartify! The package is now fully compliant with CRAN policies.
\dontrun{} with
if(interactive()){} in Shiny function examplesquartify_app() and quartify_app_web()
examples now properly indicate interactive-only usageon.exit(setwd(old_wd), add = TRUE)
after all setwd() callsrtoqmd.R, rtoqmd_dir.R, and
quartify_app_web.Rsetwd() restoration in error handlers
(now handled by on.exit())cat() with message() in
rtoqmd_dir.R per CRAN guidelinessuppressMessages()
if neededinstall_quartify_snippets() no longer writes to home
directory by default in examplespath parameter to allow custom snippet file
locationtempdir() for testingif(interactive())rtoqmd()path.expand() for input_file,
output_file, and output_html_fileuse_styler must be TRUE for
apply_styler to workquartify_app()rtoqmd_addin() with dynamic mode selection
(single/directory)#') are now
converted to callout-note blocks@param, @return,
@examples, etc.) preserved in callout contentinst/examples/example_roxygen.Rrtoqmd(), rtoqmd_dir() and all
Shiny applications (rtoqmd_addin(),
quartify_app(), quartify_app_web())Language: en-US field in DESCRIPTION to avoid
“qmd” misspelling NOTErender →
render_html in rtoqmd_dir()@return documentation for all exported functions
(rtoqmd_addin, quartify_app,
quartify_app_web)\dontrun{} to \donttest{} for
executable examples in rtoqmd() and
rtoqmd_dir()tempdir() instead of
current directorycat() calls with message() for
user-facing messages per CRAN guidelinesrender
arguments to render_html in Shiny appsrtoqmd_dir() back to \dontrun{}showNotification() with elegant modal dialogs
using shinyalert()shinyalert to package dependenciesuse_styler and use_lintr parameters 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 tabsetsrtoqmd() and
rtoqmd_dir() functionsinst/examples/example_code_quality.Rinstall_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 tabsrtoqmd_addin() error when no document is active
or unsaved (handled NULL/empty path cases)install_quartify_snippets() functioncreate_book parameter now defaults to TRUE in
rtoqmd_dir()_documentation to
_bookrtoqmd_addin(), quartify_app(),
quartify_app_web()):
addins.R (2185 lines) into 3 separate files for better
maintainability#0073e6) with white textquartify_app_web()):
qmd/ folder contains all .qmd files and
_quarto.ymlhtml/ folder contains all HTML files with complete
directory structureas_job = FALSE) to ensure
all files are generated before download_quarto.yml when rendering
individual filesindex.html generation issues in Quarto booksindex.html missing from ZIP downloads in
quartify_app_web():
index.html are now properly
included in downloadsworkflow_dispatch instead of automatic on pushquartify_app_web()):
ddottaagr/quartifyquarto_render() to
avoid output path errorsAdded 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
quartify_app()):
quartify_app() for launching the
conversion interface in any R environmentlibrary(quartify); quartify_app()launch.browser = TRUE (default) to open in browserport = NULL (default) for automatic port selectionoutput_html_file parameter to
rtoqmd() to specify custom HTML output locationoutput_html_dir parameter to
rtoqmd_dir() to specify directory for batch HTML
outputsdocs/, html_output/)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
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
rtoqmd() and
rtoqmd_dir() functionslang parameter to rtoqmd()
functionaria-label to home icon for accessibilityrtoqmd_dir to reference index####, ====,
----) and converts them to hierarchical markdown headers
with correct indentation levels (levels 2, 3, and 4)# Title : or # Titre : for document
title# Author : or # Auteur : for author
name# Date : for document date# Description : for document descriptionembed-resources: true for
self-contained files#') are automatically ignored during
conversion