The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
format.quarto_tabset() did not escape
</> in captured output from arbitrary R
objects (e.g. a tibble’s <fct> column-type tag),
which could be parsed as an unknown HTML tag by quarto/pandoc (#1).
?quarto_format now documents the resulting escaping policy:
only quarto_tabset()’s captured object output is escaped
this way; quarto_span()/quarto_div() content
is validated rather than captured, and quarto_markdown()
passes raw markup through untouched by design.quarto_plot wrapper used
to capture ggplot2 objects inside quarto_tabset() had its
class silently stripped by c()-based list flattening in
format.quarto_tabset(). Plot capture now preserves the
quarto_plot class and is dispatched via a dedicated
knit_print.quarto_plot() method instead of relying on
ggplot’s own knit_print method by
coincidence.quarto_div() now validates its content
argument: every element must be a character vector or a
quarto_object, mirroring the checks already applied by
quarto_group()/quarto_markdown(). Previously
an unsupported object (e.g. a bare list, a model object, or a number)
would pass silently into quarto_div() and only fail later
inside format(). An empty div (content = NULL,
content = list(), or content = character(0))
is still permitted.quarto_tabset() now raises a specific error (“content
has no names, and names was not supplied…”) when
content is unnamed and names isn’t supplied,
instead of the generic (and misleading) “names must be a character
vector”.quarto_tabset() now auto-detects and renders a wider
range of graphics objects as images, rather than only ggplot2 (#2): base
R recorded plots (grDevices::recordPlot()), grid grobs,
lattice/trellis objects, and patchwork objects (which subclass ggplot2
and already worked once the quarto_plot flattening bug was
fixed). Added as_quarto_graphic(), an escape hatch that
tags an arbitrary object so it is treated as a graphic even when
quartose doesn’t otherwise recognize its class. This adds
grDevices and grid to Imports;
both are base R packages bundled with every R installation, so this does
not add any new installation burden.quarto_div() now supports graphics objects in
content (#3), using the same detection and rendering
machinery as quarto_tabset(). format() returns
a single string as before when content has no graphics
objects, and a list (mixing strings and plot objects, as
quarto_tabset() already does) when it does.R/class.R),
format.<class>() methods turn a stored object into
Quarto syntax on demand (R/format.R), and a shared
print.quarto_object()/knit_print.quarto_object()
pair (R/print.R) gives a human-readable console summary via
print() and emits the actual Quarto markup via
cat() when knitr::knit_print() is called
inside a results: asis chunk.quarto_object plus a class-specific subclass:
quarto_section() for headers; quarto_tabset()
for tabsets, with optional section title and manual tab naming via
names; quarto_div() and
quarto_span() for divs and spans with CSS classes;
quarto_markdown() for passing raw markdown/character
content through untouched; and quarto_group() for bundling
several quarto objects so they print together.quarto_tabset() content can include ggplot2 objects:
these are captured and rendered only when knit_print() is
called, via an internal quarto_plot wrapper.
quarto_div() does not yet support plot content.R/validate.R) checks types
and lengths for each constructor (e.g. level must be a
whole number between 1 and 6;
quarto_group()/quarto_markdown() require their
content elements to all be quarto objects or character
vectors, respectively), raising informative errors via
rlang::abort().These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.