diff --git a/news/changelog-1.4.md b/news/changelog-1.4.md index 6a107c16f9..67d065de3c 100644 --- a/news/changelog-1.4.md +++ b/news/changelog-1.4.md @@ -83,6 +83,7 @@ - Exit if project pre or post render script fails - Use InternalError in typescript code, and offer a more helpful error message when an internal error happens. - ([#6042](https://github.com/quarto-dev/quarto-cli/issues/6042)): Correctly support empty lines in YAML blocks. +- ([#6154](https://github.com/quarto-dev/quarto-cli/issues/6154)): `quarto check knitr` does not fail anymore when user's `.Rprofile` contains `cat()` calls. ## Docusaurus Format diff --git a/src/core/knitr.ts b/src/core/knitr.ts index 09080809ba..a96c444d46 100644 --- a/src/core/knitr.ts +++ b/src/core/knitr.ts @@ -1,9 +1,8 @@ /* -* knitr.ts -* -* Copyright (C) 2020-2022 Posit Software, PBC -* -*/ + * knitr.ts + * + * Copyright (C) 2020-2022 Posit Software, PBC + */ import * as colors from "fmt/colors.ts"; @@ -44,7 +43,11 @@ export async function knitrCapabilities() { stdout: "piped", }); if (result.success && result.stdout) { - const caps = readYamlFromString(result.stdout) as KnitrCapabilities; + const jsonLines = result.stdout + .replace(/^.*--- YAML_START ---/sm, "") + .replace(/--- YAML_END ---.*$/sm, ""); + + const caps = readYamlFromString(jsonLines) as KnitrCapabilities; // check knitr requirement const knitrVersion = caps.packages.knitr ? coerce(caps.packages.knitr) diff --git a/src/resources/capabilities/knitr.R b/src/resources/capabilities/knitr.R index 253cd1d09b..89499aa533 100644 --- a/src/resources/capabilities/knitr.R +++ b/src/resources/capabilities/knitr.R @@ -1,4 +1,5 @@ version <- getRversion() +cat("--- YAML_START ---\n") cat("versionMajor:", version$major, "\n") cat("versionMinor:", version$minor, "\n") cat("versionPatch:", version$patch, "\n") @@ -21,4 +22,5 @@ if (requireNamespace("rmarkdown", quietly = TRUE)) { } else { cat("null") } -cat("\n") \ No newline at end of file +cat("\n") +cat("--- YAML_END ---\n") \ No newline at end of file