The Upcoming knitr v1.44: More Compatible with Quarto, and Locking `opts_current`

Original link: https://yihui.org/en/2023/09/knitr-1-44/

logo.png

After coming back from vacation , I mainly spent my
time on the knitr package maintenance. I will make a new release soon, and
want to quickly highlight a few things in this post. For the full list of
changes, please read the
NEWS.md in the Github
repo.

Working better with Quarto

The last version of knitr (v1.43) broke HTML Widgets in Quarto, which seems
to have affected several users (sorry about that). This version has fixed the
problem.

 Error in `add_html_caption()`: ! unused argument (xfun::grep_sub("^[^<]*<[^>]+aria-labelledby[ ]*=[ ]*\"([^\"]+)\".*$", "\\1", x))

Other relatively minor improvements are:

  • spin() supports the qmd format now, which is essentially the same as
    Rmd .

  • The correct type of progress bar will be used when rendering Quarto
    documents in RStudio’s background jobs or build pane.

  • All dashes in known knitr chunk option names will be automatically
    normalized to dots internally. Previously this job was done on Quarto’s
    side, but Quarto may miss certain chunk options. This change shouldn’t
    affect average users, but advanced users and developers may need to pay
    attention. For example, in knitr hooks, you should always use dots in
    chunk option names if the names are built-in in knitr . There are chunk
    options that are specific to Quarto, and these names will not be
    normalized, eg, fig-responsive .

Locking opts_current

It has been documented for long that knitr::opts_current is assumed to be
read-only, but some users still modify it via opts_current$set() . To prevent
the accidental modification, this object will be locked when evaluating the code
chunks. If you call opts_current$set() inside a code chunk, you will get an
error.

I’d welcome any feedback on any of these changes. Thank you!

This article is transferred from: https://yihui.org/en/2023/09/knitr-1-44/
This site is only for collection, and the copyright belongs to the original author.