This release focuses entirely on improving the panelset feature, especially in Quarto web pages and slides. Panelset is also now a Quarto extension that can be installed with quarto add gadenbuie/xaringanExtra
and can be used with any computation engine.
-
panelset now works even better in Quarto documents, using the same syntax as used for panelsets in R Markdown documents (#190).
-
panelset now supports a fenced div syntax where
::: {.panelset}
is used to start a panelset and each panel is defined by a new heading within the fenced div. When used in this way, the heading level of the subsections is ignored, the highest level subsection heading within the fenced div determines the section level that creates a new panel (#191). -
panelset CSS was revamped for better ergonomics, in particular to improve how the border bottom separating the tabs from the content and the bottom border of the active tab are handled.
style_panelset_tabs()
gains a newseparator_color
argument to replacetabs_border_bottom
(#192). -
panelset now fully supports panelset chunks in Quarto, either with
#| panelset: true
for chunk options or the alternative syntax specifying the panel names for the source and output panels (#193):```{r} #| panelset: #| - source: The Code #| - output: The Result rnorm(10) ```
Unlike in R Markdown, where you always need to place panelset chunks in a
::: {.panelset}
div, in Quarto, panelset code chunks automatically create their own panelsets with two tabs (code and output). Use the::: {.panelset}
syntax to add more than one panelset code chunk to the same panelset (#196). -
Nested panelsets are now supported (#194)! In xaringan slides and when using the hand-rolled panelset syntax, you can now nest panelsets within panelsets. In R Markdown or Quarto documents, panelsets chunks can be nested within panelset sections. Nesting panelset sections requires the fenced div syntax:
# Nested fenced divs ::: {.panelset #outer} ## One Outer panel One. ::: {.panelset #inner} ### One A Inner panel One A. ### One B Inner panel One B. ::: ## Two Outer panel Two. :::
-
panelset fully supports Quarto Revealjs Presentations. All of panelset’s features in xaringan are fully supported in Quarto slides, including automatically stepping through the panels on a slides (#195).
-
panelset now supports synchronized panels (#195)! Give each panelset a
group
attribute with a unique name, e.g.{.panelset group="language"}
, and the selected tab will be synchronized across all other panelsets with the same group name. The tab selection is synchronized by tab name, so if the user switches from the “R” tab to the “Python” tab, all panelsets withgroup="language"
will have their “Python” tab activated (if they have one).The chosen panel tab is stored in the user’s browser, which means that the user’s choice is reflected across all pages on your domain. It’s also remembered when they return to your page later (in the same browser). Technically, this feature uses the browser’s localStorage API and no user data is transmitted anywhere.
-
panelset is now also a Quarto extension that can be installed and used without requiring R (#195). To install the extension, run the following in your terminal.
quarto add gadenbuie/xaringanExtra
Then, in your Quarto document, add the following to the YAML front matter:
filters: - panelset
-
panelset now forces the chunk options
echo = TRUE
andeval = TRUE
, whenpanelset = TRUE
is used. Without these options, panelset’s knitr hooks can’t correctly convert the chunk source and output into two separate panels.When these options are disabled via a chunk option on the panelset chunk, panelset will give an error to help you spot this issue early. But if
echo
andeval
are globally set toFALSE
, panelset will now automatically set them toTRUE
. This is especially helpful in Quarto revealjs presentations where Quarto defaults toecho = FALSE
(#196).