diff --git a/DESCRIPTION b/DESCRIPTION index 33174bc10b..13d91c5e73 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -6,6 +6,7 @@ Depends: dplyr, DT, dygraphs, + fansi, fs, ggplot2, gh, diff --git a/docs/advanced/environment-vars.qmd b/docs/advanced/environment-vars.qmd index f1ae1ef762..b45fcea03f 100644 --- a/docs/advanced/environment-vars.qmd +++ b/docs/advanced/environment-vars.qmd @@ -34,7 +34,7 @@ You can read about other ways to set environment variables in Quarto Projects in +---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `QUARTO_TEXLIVE_BINPATH` | Explicit path to the TeX Live binaries to be passed to `tlmgr option sys_bin` used when setting `tlmgr` and related to `PATH` using `tlmgr add path` . By default, Quarto looks in known places. | +---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `QUARTO_CHROMIUM` | Explicit path to binary to use for chrome headless. Quarto uses [Chrome Devtools Protocol](https://chromedevtools.github.io/devtools-protocol/) to do screenshot of HTML diagrams for PDF insertion. The binary must be compatible with this protocol. (e.g. Chrome, Chromium, Chrome Headless Shell, Edge, ...) | +| `QUARTO_CHROMIUM` | Explicit path to binary to use for chrome headless. When not set, Quarto searches for browsers in this order: (1) Quarto-installed Chrome Headless Shell, (2) system Chrome or Edge, (3) legacy Puppeteer Chromium. The binary must be compatible with [Chrome Devtools Protocol](https://chromedevtools.github.io/devtools-protocol/) (e.g. Chrome, Chromium, Chrome Headless Shell, Edge, ...). | +---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | `QUARTO_CHROMIUM_HEADLESS_MODE` | Used for adaption of the `--headless` mode used with `QUARTO_CHROMIUM` binary. Set to `"none"` for `--headless` , or to `"old"` or `"new"` to pass as argument, e.g. `--headless=` . Quarto 1.6 sets `"old"` as default, which works from Chrome 112 to 131. Starting Quarto 1.7.13, `"none"` is the default as [Chrome 132 removed old headless mode](https://developer.chrome.com/blog/removing-headless-old-from-chrome). | +---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/docs/authoring/diagrams.qmd b/docs/authoring/diagrams.qmd index 73e751c66b..7ef0dc2b16 100644 --- a/docs/authoring/diagrams.qmd +++ b/docs/authoring/diagrams.qmd @@ -23,7 +23,7 @@ As illustrated above, Mermaid diagrams are embedded using `{mermaid}` executable ::: callout-note -For print output formats like `pdf` or `docx`, diagram rendering makes use of the Chrome or Edge web browser to create a high-quality PNG. Quarto can automatically use an existing version of Chrome or Edge on your system, or alternatively if you don't have either installed, can use a lighter-weight library version of Chrome (see [Chrome Install](#chrome-install) below for details). +For print output formats like `pdf` or `docx`, diagram rendering makes use of the Chrome or Edge web browser to create a high-quality PNG. Quarto can automatically use an existing version of Chrome or Edge on your system, or alternatively if you don't have either installed, you can install a lighter-weight version called Chrome Headless Shell (see [Chrome Install](#chrome-install) below for details). ::: ## Mermaid @@ -234,14 +234,20 @@ To include code for `{dot}`, add `//| echo: true` to the top of the cell. For ex ## Chrome Install {#chrome-install} +{{< include /docs/prerelease/1.9/_pre-release-feature.qmd >}} + For printing to output formats like `pdf` or `docx`, diagram rendering makes use of the Chrome or Edge web browser to create a high-quality PNG. -Quarto can automatically use an existing version of Chrome or Edge on your system for rendering. Alternatively, if you don't have either, you can install a minimal version of Chrome for use by Quarto with the following command: +Quarto can automatically use an existing version of Chrome or Edge on your system for rendering. Alternatively, if you don't have either installed, you can install Chrome Headless Shell for use by Quarto: ``` {.bash filename="Terminal"} -quarto install chromium +quarto install chrome-headless-shell ``` +[Chrome Headless Shell](https://developer.chrome.com/blog/chrome-headless-shell) is a lightweight, headless-only browser from Google's [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing) infrastructure. It has fewer system dependencies than full Chromium, making it a good fit for Docker containers and WSL environments. + ::: callout-note -Quarto installs headless Chromium via Puppeteer. The bundled Chromium that Puppeteer installs may not work on Docker containers; please check [the Puppeteer documentation](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-in-docker) as well as [this article](https://pptr.dev/next/troubleshooting#running-puppeteer-on-wsl-windows-subsystem-for-linux) if you are attempting to install within Windows Subsystem for Linux (WSL). +## Legacy Chromium + +The older `quarto install chromium` command (which installs Chromium via Puppeteer) is still available but no longer recommended. If you use it, note that the Puppeteer-bundled Chromium may not work in Docker or WSL — see [Puppeteer troubleshooting](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-in-docker) for details. ::: diff --git a/renv.lock b/renv.lock index ae61241e50..7448bbf517 100644 --- a/renv.lock +++ b/renv.lock @@ -1723,6 +1723,37 @@ "NeedsCompilation": "no", "Author": "Hadley Wickham [aut, cre], Yihui Xie [aut] (ORCID: ), Michael Lawrence [ctb], Thomas Kluyver [ctb], Jeroen Ooms [ctb], Barret Schloerke [ctb], Adam Ryczkowski [ctb], Hiroaki Yutani [ctb], Michel Lang [ctb], Karolis Koncevičius [ctb], Posit Software, PBC [cph, fnd]", "Maintainer": "Hadley Wickham ", + "Repository": "RSPM" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.7", + "Source": "Repository", + "Title": "ANSI Control Sequence Aware String Functions", + "Description": "Counterparts to R string manipulation functions that account for the effects of ANSI text formatting control sequences.", + "Authors@R": "c( person(\"Brodie\", \"Gaslam\", email=\"brodie.gaslam@yahoo.com\", role=c(\"aut\", \"cre\")), person(\"Elliott\", \"Sales De Andrade\", role=\"ctb\"), person(given=\"R Core Team\", email=\"R-core@r-project.org\", role=\"cph\", comment=\"UTF8 byte length calcs from src/util.c\" ), person(\"Michael\",\"Chirico\", role=\"ctb\", email=\"michaelchirico4@gmail.com\", comment = c(ORCID=\"0000-0003-0787-087X\") ), person(given = \"Unicode, Inc.\", role = c(\"cph\", \"dtc\"), comment = \"Unicode Character Database derivative data in src/width.c\") )", + "Depends": [ + "R (>= 3.1.0)" + ], + "License": "GPL-2 | GPL-3", + "URL": "https://github.com/brodieG/fansi", + "BugReports": "https://github.com/brodieG/fansi/issues", + "VignetteBuilder": "knitr", + "Suggests": [ + "unitizer", + "knitr", + "rmarkdown" + ], + "Imports": [ + "grDevices", + "utils" + ], + "RoxygenNote": "7.3.3", + "Encoding": "UTF-8", + "Collate": "'constants.R' 'fansi-package.R' 'internal.R' 'load.R' 'misc.R' 'nchar.R' 'strwrap.R' 'strtrim.R' 'strsplit.R' 'substr2.R' 'trimws.R' 'tohtml.R' 'unhandled.R' 'normalize.R' 'sgr.R'", + "NeedsCompilation": "yes", + "Author": "Brodie Gaslam [aut, cre], Elliott Sales De Andrade [ctb], R Core Team [cph] (UTF8 byte length calcs from src/util.c), Michael Chirico [ctb] (ORCID: ), Unicode, Inc. [cph, dtc] (Unicode Character Database derivative data in src/width.c)", + "Maintainer": "Brodie Gaslam ", "Repository": "P3M" }, "farver": {