Release Notes
Features listed under the -dev
version have not yet been solidified and may change at any point.
0.4.3-dev.2: ???? (??-??-????)
Features
0.4.2: A Change Is Gonna Come (06-24-2024)
Breaking Changes
- We’ve update the minimum Quarto requirement to 1.4.554.
- This version of Quarto is apart of the latest RStudio IDE (Version: 2024.04.0, Date: 2024-04-29).
Features
Upgraded to webR v0.3.3 (#196)
Added ability to download the R history of commands executed through a new global menu in the right column and underneath Revealjs’ “Tools” menu. (#148)
Added the ability to have the monaco editor switch between Quarto’s light and dark theme modes. (#176)
Added two new document-level options:
Added the
editor-*
class of cell-level options to control the interactive code cell editor:editor-code-line-numbers
allows highlighting code lines in the editor window. (#204)editor-word-wrap
allows long lines to be wrapped inside of the code cell. Default"true"
. (#38)editor-quick-suggestions
enables autocomplete menu suggestions. Default"false"
.(#182, thanks egenn!)editor-max-height
limits growth of the editor window. (#177, thanks ute!)editor-font-scale
scales the code cell size relative to the page font size. Default is1
for HTML Documents, Books, and Websites and0.5
for Revealjs Slides. (#172 & #209, thanks ute!)
Enabled non-graphical computation within a
webr-r
cell whenOffScreenCanvas
is not available. (#155, thanks for raising it @mccarthy-m-g)- If
OffScreenCanvas
is not available, we now display a Quarto warning callout at the start of the document that emphasizes only non-graphical computation is available and a gentle nudge to upgrade the web browser being used. - The majority of modern browsers now have support for
OffScreenCanvas
. This previously effected users still on iOS 16 (Safari 16 and earlier).
- If
Changes
- Added a mouse over button to allow for downloading an image when generated. (#147)
- Increase the minimum Quarto version requirement to 1.4.554. (#198).
- Upgraded to webR v0.3.2 (#187)
- Added Lua type annotations and function documentation into the Quarto extensions’ Lua filter. (#190)
- Avoided distributing
webr-serviceworker.js
andwebr-worker.js
whenchannel-type
is notservice-worker
. (#210) - Dynamically write
webr-serviceworker.js
andwebr-worker.js
files based on the version chosen (#212) - Updated the version of the FontAwesome from 6.5.1 to 6.5.2. (#191)
Bug fixes
Documentation
- Added new editor options vignette.
- Updated community examples covering
quarto-webr
uses in 2024 Q1 (#193). - Improve the data loading documentation page by clarifying the virtual file system usage (#201).
0.4.1: Vivid Montage (03-25-2024)
Features
- Upgraded the embedded version of webR to v0.3.1. (#165)
read-only
is a new code cell option that prevents changes to code inside of aninteractive
context.
Bug fixes
- Fixed FontAwesome icons not appearing if
embed-resources: true
was set. (#95)
The embed-resources
option only works if the communication channel is either "automatic"
(default), "post-message"
, or "shared-array-buffer"
. Do not attempt to use it with "service-workers"
.
Changes
- Upgrade monaco-editor from 0.45.0 to 0.47.0 (#170)
Documentation
- Updated documentation using
plot2
totinyplot
due to a name change upstream. - Added a new section on using data within
{webr-r}
code blocks.
0.4.0: Ball of Yarn (02-05-2024)
Breaking changes
- Internal JavaScript functions used by the extension have been significantly changed.
- JavaScript initialization procedure has been further refined.
Features
- Optimized the underlying code handling insertion and execution of R code. (#118)
- Implemented a custom JSON format for code cell data and option sharing between Quarto and webR. (#120)
- Redesigned non-interactive cells to provide improved reliability and visual cues. (#120)
- Interactive cells now have a toolbar above them that provides three actions: Run Code, Start Over, and Copy. (#91)
- Initial code cell option support (#104, #117, #125, #151):
- quarto-webR:
context
andautorun
. - Attributes:
label
andclasses
. - Figures:
fig-cap
,dpi
,fig-width
,fig-height
,out-width
, &out-height
. - Cell output:
warning
/message
,results
, andoutput
- quarto-webR:
- Added
repos
document meta option key to specify custom package repositories containing compiled R WASM Packages not found in the main webR repository (#124, #132).
Changes
- Added new CSS IDs governing the webR initialization state. (#110)
- Added shim that overrides
install.packages()
withwebr::install()
throughwebr::shim_install()
this requires webR v0.2.2 to be in use. (#122) - Added the keyboard shortcut for Run Code –
Shift + Enter
– to mouseover text for the Run Code button. (#91) - Allow
{webr-r}
code cell to propagate into Quartomarkdown
formats forhugo-md
. (#150, h/t @ClaudiuPapasteri) - Updated the version of the MonacoEditor from 0.43.0 to 0.45.0. (#130)
- Updated the version of the FontAwesome from 6.4.2 to 6.5.1. (#131)
Bugfixes
- Prevented HTML output being shown as HTML by replacing HTML characters like
<
,>
,&
, etc., with their corresponding HTML entities. (#115, h/t @gvelasq) - Fixed display of text found after a code cell in RevealJS appearing off the page. (#102, #106)
- Fixed
setup
andoutput
contexts not syncing with values found inpackages
. (#114, #105, #88) - Fixed
unexpected input
error appearing spuriously on Windows machines by enforcing the end-of-line (EOL) character to beLF
(\n
) and, thus preventingCRLF
(\r\n
) from entering the picture. (#94 huge thank you and h/t to @ute. Thanks also to @alexCardazzi for initial reporting).
Documentation
- New section discussing code cell options in
{webr-r}
cells. - New section with demos of the Quarto extension’s features. (#128)
- Added a demo on non-interactive code cells. (#128)
- Added a demo on using custom repositories to install R WASM package binaries. (#128)
- Added a demo for showing initial code cell option support. (#141)
- Added a demo for showing autorunning interactive code cells.
- Modified the RevealJS presentation YAML to include an option to disable the webR status message header (#110)
- Updated blog posts on community examples page (#135)
- Updated Hiding and Executing Code to use panel sets when displaying output from
{quarto-webr}
and showing the underlying code. - Minor documentation tweaks.
Deployment
- Added an instructive error message regarding whether template files are missing. (#107)
0.3.9: Zoom-Zoom (11-16-2023)
Breaking changes
- With the update to webR v0.2.2, the
webr-worker.js
andwebr-serviceworker.js
files are no longer required to be present with the document under default options.
Features
- Upgraded the embedded version of webR to v0.2.2. (#96)
Bugfixes
Documentation
- Updated documentation to reflect the removal of
webr-worker.js
andwebr-serviceworker.js
scripts. (#59) - Added a section on setting global extension settings using
_quarto.yml
to the meta options (#46) - Added slide embedding CSS class alongside examples.
- Updated GIF on the README to show the UI improvements.
- Minor documentation tweaks.
0.3.8: New Coat of Paint (11-13-2023)
Features
- Added
autoload-packages
document meta option key that will automatically load packages specified in thepackages
key. The default value istrue
. (#75)- This feature simplifies the use of packages, eliminating the need to call
library()
in interactive code cells or setup code cells, as the specified packages will be loaded automatically.
- This feature simplifies the use of packages, eliminating the need to call
- Added new output classes to differentiate between STDOUT and STDERR text. (#60, #89)
- Error and warning messages will now appear red and regular output will appear black.
Bugfixes
- Fix placement of the “WebR Status” indicator when in the
revealjs
presentation format. (#84)
Documentation
- Added a subsection to using two keyboard shortcuts into the interactive code cell demo.
- Emphasized the extension must be in the same directory or contained within a Quarto project as the Quarto document being used. (#79, #26)
- Added an RevealJS presentation example. (#83)
- Added examples of embedding a RevealJS presentation inside of a website and book project. (#83)
- Added an example of using the extension with a Blog website. (#81)
- Added documentation on theming quarto elements. (#89)
- Miscellaneous documentation typo fixes.
Deployment
- Added a
tests/
directory that contains Quarto documents used across multiple browsers before triggering a point release. (#76) - Added the
open-in-html-browser
extension to devcontainer for better previewing options of HTML results. - GitHub codespaces now automatically open the README example when the devcontainer is launched.
0.3.7: Mutex On, Mutex Off (10-16-2023)
Features
- Added a Global Interpreter Lock (GIL) to ensures that only one code cell runs at a time, preventing simultaneous execution conflicts.
- With this enhancement, you can now enjoy smoother and more predictable execution of your code, without interference from concurrently running code cells.
- Added a visual spinning indicator to emphasize what code cell is currently running. (#64, #17)
- Improved status updates about installing R packages specified in the document’s
package
key. (#68) - Fully supported
pager
event types. (#58)- With this update, looking at R help documentation for a function is now possible.
Bugfixes
Documentation
- Added an
examples/
directory containing examples for HTML Documents, Books, and Websites. (#53) - Added a documentation page that contains the extension updates and release dates.
- Added an FAQ page covering questions from posit::conf(2023). (#56)
Deployment
- Switched from Quarto’s publishing action to individually rendering projects, merging output, and, then, publishing. (#73)
- By using a custom publish action, we can retain a single repository with nested quarto projects (e.g. A website project that also contains a book.)
0.3.6: Ready, Set, Run. (09-24-2023)
Feature
- Improved the run selected code shortcut to now also run the current line if no selection is present and advance to the next. (#43)
- Use: Cmd + Enter on macOS or Ctrl + Enter on Windows
Bugfixes
- Fixed space not being preserved (h/t @nguyenllpsych, #39)
- Fixed webR not initializing if a document lacked a title (h/t @jimhester, #40)
Documentation
- Added a walkthrough video to the getting started page.
- Added a new page containing community examples of the
quarto-webr
extension in the wild. - Added an example on fill-in-the-blank usage.
- Clarified how interactive code cells could be used to explore what-if scenarios.
- Minor documentation fixes.
Deployment
- Add new issue templates for questions and examples.
- Improved GitHub repo issue template formatting.
0.3.5: Seance of Communication Channels (09-17-2023)
Features
- New documentation website is available at: https://quarto-webr.thecoatlessprofessor.com
- Document option
channel-type
sets the communication channel webR uses.channel-type: automatic
(default): Communicates using eithershared-array-buffer
orservice-worker
.channel-type: shared-buffer-array
: Fastest communication option, but requires setting up HTTP headers.channel-type: service-worker
: Slower communication option and requires worker scripts to be next to the rendered document.channel-type: post-message
: Easiest setup option at the expense of being unable to interrupt the R process or accept user-input.
- Code cell option
context
controls whether the code and output are shown or suppressed.context: interactive
(default) shows both code and output.context: setup
suppresses both code and output.context: output
suppresses code but shows its output.- To use the new hidden code cell feature, the code cell needs
#| context: <value>
like so:
```{webr-r}
#| context: setup
my_hidden_variable = 11
```
Bugfixes
- Fixed webR status indicator appearing outside of the header. (#33)
- Fixed button styling difference between standalone documents and website-based documents.
Documentation
- Created the
docs
folder inside the repository to host the documentation website. - Moved documentation from the README.md file onto separate web pages.
- Acknowledgements now has a dedicated page thanking contributors and collaborators.
- Developer resources expands on the reference resources.
- Using R packages describes the best practices for using R’s ecosystem of extensions
- Customization Options describes the document level options available to be set in document’s YAML field.
- Added new documentation entries for hidden code cell evaluation and communication channels.
- Added a rendered version of the README example to the website.
- Incorporated additional examples into the “Exploring Interactive Code Cells” demo document.
Deployment
- Added a Quarto action to render and publish the documentation website.
- Added issue templates for feature requests and bug fixes.
- Symlink the
_extension
directory intodocs
to avoid needing to add the extension on each render.
0.3.2: Rocking the Monaco (09-13-2023)
Feature
- Upgraded the MonacoEditor version to v0.43.0 from v0.31.0
Bugfixes
- Fixed
quarto-webr
documents requiring a reload in Safari to see/interact with code cells (#21) - Fixed keyboard shortcuts not re-initializing correctly on multiple Monaco Editors by re-registering shortcuts on code cell focus (#28)
0.3.1: Maintenance Release: Upgrade to webR v0.2.1 (09-12-2023)
Feature
- Upgrades the extension to use
webR
v0.2.1
0.3.0: Across the webR-Verse to v0.2.0 (08-17-2023)
Feature
- Implements changes required to run
webR
v0.2.0
0.2.1: Demo, Demo, Demo! (08-17-2023)
Bug fix
- Attempted to resolve missing service workers for published Quarto webR enabled documents on https://quarto.pub
Deployment
- Added a GitHub actions website deployment workflow to generate sample pages.
- Added a
devcontainer.json
for development on GitHub - Added a script to update the version of Quarto used inside of the
devcontainer.json
.
0.2.0: Accessibility with the Monaco Editor (05-01-2023)
Breaking Changes
- We’ve transitioned the code editor used in the
quarto-webr
extension to Monaco Editor from CodeMirror for improved accessibility.- Special thanks go out to JooYoung Seo (Website) for identifying the accessibility issue and submitting a pull request to incorporate the editor.
Features
- Code editing areas on the Quarto document now use the Monaco Editor for improved accessibility.
- Execute code using keyboard shortcuts:
- Run selected code using:
[Cmd + Enter]
on macOS or[Ctrl+Enter]
on Windows - Run the entire code area using:
[Shift+Enter]
- Run selected code using:
- Dynamically growing code editor as new lines are added.
- Announcing the status changes of webR initialization states through arias.
0.1.0: Setting Options in Document YAML (04-11-2023)
Features
- Upgraded the version of webR to use v0.1.1.
- Set options directly inside the document’s YAML header to control webR:
- Support is available for setting the following WebR.WebROptions options:
home-dir
: The WebAssembly user’s home directory and initial working directory (Documentation
). Default:'/home/web_user'
.base-url
: The base URL used for downloading R WebAssembly binaries. (Documentation
). Default:'https://webr.r-wasm.org/[version]/'
.service-worker-url
: The base URL from where to load JavaScript worker scripts when loading webR with the ServiceWorker communication channel mode (Documentation
). Default:''
.
- Support is available for setting the following WebR.WebROptions options:
- webR initialization status stages are now described and shown as stoplights (inspired by Bob Rudis)
show-startup-message
: Display in the document header the state of WebR initialization. Default:true
show-header-message
: Display in the document header whether COOP and COEP headers are in use for faster page loads. Default:false
0.0.4: Execute webr cells when developing in VS Code or RStudio (03-30-2023)
Breaking Changes
- We’ve transitioned to using the
{webr-r}
code cell designation from our original{webr}
designation.- The
{webr-r}
tag allows for code cell evaluation prior to rendering the document - Moreover, the
{webr-r}
component does not need to be registered under theknitr
compute engine.
- The
0.0.3: Escape Escape! (03-19-2023)
Bugfix
- Escape characters
\
are further escaped.
```{webr}
add_one <- \(x) x + 1
add_one(2)
```
Should now appear in a webR code cell as:
<- \(x) x + 1
add_one add_one(2)
Documentation
- Added details on how to host webR content
- Added additional examples and details in the
webr-demo.qmd
file.
0.0.2: All about that margin (03-14-2023)
Bug Fixes
- Fixed the error of
figure margins too large
due to canvas sizing issues. - Removed the attempt to switch between
/
and''
if COOP and COEP are not present. Defaults to relative directory.
0.0.1: Democratizing Data Science (03-12-2023)
Features
- Enable webR code cells inside of a Quarto document.
This Quarto extension is open source software and is not affiliated with Posit, Quarto, or webR. The extension is at best a community effort to simplify the integration of webR inside of Quarto generated documents.