From e21b4be707b44d4a4bd3924bf5fa3deaa7cb99ab Mon Sep 17 00:00:00 2001 From: Salim B Date: Wed, 4 Oct 2023 15:41:11 +0200 Subject: [PATCH 01/10] Add param `profile` to `quarto_inspect()` --- R/inspect.R | 32 +++++++++++++++++++++++--------- man/quarto_inspect.Rd | 17 +++++++++++++---- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/R/inspect.R b/R/inspect.R index 963082b8..48b6af2f 100644 --- a/R/inspect.R +++ b/R/inspect.R @@ -5,9 +5,14 @@ #' and dependent resources. #' #' @param input The input file or project directory to inspect. +#' @param profile [Quarto project +#' profile](https://quarto.org/docs/projects/profiles.html) to use. If +#' `NULL`, the default profile is used. #' -#' @return Named list. For input files, the list has members engine, format, -#' and resources. For projects the list has members engines and config +#' @return Named list. For input files, the list contains the elements +#' `quarto`, `engines`, `formats`, `resources`, plus `project` if the file is +#' part of a Quarto project. For projects, the list contains the elements +#' `quarto`, `dir`, `engines`, `config` and `files`. #' #' @importFrom jsonlite fromJSON #' @@ -18,18 +23,27 @@ #' #' # Inspect project #' quarto_inspect("myproject") -#' } #' +#' # Inspect project's advanced profile +#' quarto_inspect( +#' input = "myproject", +#' profile = "advanced" +#' )} #' @export -quarto_inspect <- function(input = ".") { +quarto_inspect <- function(input = ".", + profile = NULL) { quarto_bin <- find_quarto() - output <- system2(quarto_bin, stdout = TRUE, c( - "inspect", - path.expand(input) - )) + output <- system2( + command = quarto_bin, + args = c( + "inspect", + if (!is.null(profile)) c("--profile", profile), + path.expand(input) + ), + stdout = TRUE + ) fromJSON(output) } - diff --git a/man/quarto_inspect.Rd b/man/quarto_inspect.Rd index 4b1cd1e7..d896257c 100644 --- a/man/quarto_inspect.Rd +++ b/man/quarto_inspect.Rd @@ -4,14 +4,19 @@ \alias{quarto_inspect} \title{Inspect Quarto Input File or Project} \usage{ -quarto_inspect(input = ".") +quarto_inspect(input = ".", profile = NULL) } \arguments{ \item{input}{The input file or project directory to inspect.} + +\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile} to use. If +\code{NULL}, the default profile is used.} } \value{ -Named list. For input files, the list has members engine, format, -and resources. For projects the list has members engines and config +Named list. For input files, the list contains the elements +\code{quarto}, \code{engines}, \code{formats}, \code{resources}, plus \code{project} if the file is +part of a Quarto project. For projects, the list contains the elements +\code{quarto}, \code{dir}, \code{engines}, \code{config} and \code{files}. } \description{ Inspect a Quarto project or input path. Inspecting a project returns its @@ -25,6 +30,10 @@ quarto_inspect("notebook.Rmd") # Inspect project quarto_inspect("myproject") -} +# Inspect project's advanced profile +quarto_inspect( + input = "myproject", + profile = "advanced" +)} } From daa5f0515c810171c049fc06ffcc75c0bcbc641c Mon Sep 17 00:00:00 2001 From: Salim B Date: Wed, 4 Oct 2023 17:10:53 +0200 Subject: [PATCH 02/10] Make `quarto_render()` arg checks more robust --- R/render.R | 25 +++++++++---------------- man/quarto_render.Rd | 2 +- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/R/render.R b/R/render.R index abf6c84e..84f9c543 100644 --- a/R/render.R +++ b/R/render.R @@ -54,7 +54,7 @@ quarto_render <- function(input = NULL, output_format = NULL, output_file = NULL, - execute = TRUE, + execute = NULL, execute_params = NULL, execute_dir = NULL, execute_daemon = NULL, @@ -96,30 +96,29 @@ quarto_render <- function(input = NULL, workingDir = getwd(), importEnv = TRUE ) - return (invisible(NULL)) + return(invisible(NULL)) } - # build args args <- c("render", input) - if (!missing(output_format)) { + if (!is.null(output_format)) { args <- c(args, "--to", paste(output_format, collapse = ",")) } - if (!missing(output_file)) { + if (!is.null(output_file)) { args <- c(args, "--output", output_file) } - if (!missing(execute)) { + if (!is.null(execute)) { args <- c(args, ifelse(isTRUE(execute), "--execute", "--no-execute")) } - if (!missing(execute_params)) { + if (!is.null(execute_params)) { params_file <- tempfile(pattern = "quarto-params", fileext = ".yml") write_yaml(execute_params, params_file) args <- c(args, "--execute-params", params_file) } - if (!missing(execute_dir)) { + if (!is.null(execute_dir)) { args <- c(args, "--execute-dir", execute_dir) } - if (!missing(execute_daemon)) { + if (!is.null(execute_daemon)) { args <- c(args, "--execute-daemon", as.character(execute_daemon)) } if (isTRUE(execute_daemon_restart)) { @@ -131,7 +130,7 @@ quarto_render <- function(input = NULL, if (isTRUE(use_freezer)) { args <- c(args, "--use-freezer") } - if (!missing(cache)) { + if (!is.null(cache)) { args <- c(args, ifelse(isTRUE(cache), "--cache", "--no-cache")) } if (isTRUE(cache_refresh)) { @@ -153,9 +152,3 @@ quarto_render <- function(input = NULL, # no return value invisible(NULL) } - - - - - - diff --git a/man/quarto_render.Rd b/man/quarto_render.Rd index 55334218..a6783913 100644 --- a/man/quarto_render.Rd +++ b/man/quarto_render.Rd @@ -8,7 +8,7 @@ quarto_render( input = NULL, output_format = NULL, output_file = NULL, - execute = TRUE, + execute = NULL, execute_params = NULL, execute_dir = NULL, execute_daemon = NULL, From e640dea7d38fcf219ea850f8f5a80646cdccc791 Mon Sep 17 00:00:00 2001 From: Salim B Date: Wed, 4 Oct 2023 17:29:54 +0200 Subject: [PATCH 03/10] Add param `profile` to `quarto_render()` --- R/inspect.R | 4 +--- R/render.R | 7 +++++++ man/quarto_render.Rd | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/R/inspect.R b/R/inspect.R index 48b6af2f..a5e333d8 100644 --- a/R/inspect.R +++ b/R/inspect.R @@ -4,10 +4,8 @@ #' config and engines. Inspecting an input path return its formats, engine, #' and dependent resources. #' +#' @inheritParams quarto_render #' @param input The input file or project directory to inspect. -#' @param profile [Quarto project -#' profile](https://quarto.org/docs/projects/profiles.html) to use. If -#' `NULL`, the default profile is used. #' #' @return Named list. For input files, the list contains the elements #' `quarto`, `engines`, `formats`, `resources`, plus `project` if the file is diff --git a/R/render.R b/R/render.R index 84f9c543..00b841d6 100644 --- a/R/render.R +++ b/R/render.R @@ -29,6 +29,9 @@ #' @param cache_refresh Force refresh of execution cache. #' @param debug Leave intermediate files in place after render. #' @param quiet Suppress warning and other messages. +#' @param profile [Quarto project +#' profile](https://quarto.org/docs/projects/profiles.html) to use. If +#' `NULL`, the default profile is used. #' @param pandoc_args Additional command line options to pass to pandoc. #' @param as_job Render as an RStudio background job. Default is "auto", #' which will render individual documents normally and projects as @@ -65,6 +68,7 @@ quarto_render <- function(input = NULL, cache_refresh = FALSE, debug = FALSE, quiet = FALSE, + profile = NULL, pandoc_args = NULL, as_job = getOption("quarto.render_as_job", "auto")) { @@ -142,6 +146,9 @@ quarto_render <- function(input = NULL, if (isTRUE(quiet)) { args <- c(args, "--quiet") } + if (!is.null(profile)) { + args <- c(args, "--profile", profile) + } if (!is.null(pandoc_args)) { args <- c(args, pandoc_args) } diff --git a/man/quarto_render.Rd b/man/quarto_render.Rd index a6783913..0a5c14f5 100644 --- a/man/quarto_render.Rd +++ b/man/quarto_render.Rd @@ -19,6 +19,7 @@ quarto_render( cache_refresh = FALSE, debug = FALSE, quiet = FALSE, + profile = NULL, pandoc_args = NULL, as_job = getOption("quarto.render_as_job", "auto") ) @@ -63,6 +64,9 @@ respectively for Rmd and Jupyter input files).} \item{quiet}{Suppress warning and other messages.} +\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile} to use. If +\code{NULL}, the default profile is used.} + \item{pandoc_args}{Additional command line options to pass to pandoc.} \item{as_job}{Render as an RStudio background job. Default is "auto", From 02d8164a27807e1500ea8fe422aea441fbcb9ee7 Mon Sep 17 00:00:00 2001 From: Salim B Date: Wed, 4 Oct 2023 23:23:42 +0200 Subject: [PATCH 04/10] Properly support multiple profiles --- R/inspect.R | 2 +- R/render.R | 6 +++--- man/quarto_inspect.Rd | 4 ++-- man/quarto_render.Rd | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/R/inspect.R b/R/inspect.R index a5e333d8..2d60e890 100644 --- a/R/inspect.R +++ b/R/inspect.R @@ -37,7 +37,7 @@ quarto_inspect <- function(input = ".", command = quarto_bin, args = c( "inspect", - if (!is.null(profile)) c("--profile", profile), + if (!is.null(profile)) c("--profile", paste0(profile, collapse = ",")), path.expand(input) ), stdout = TRUE diff --git a/R/render.R b/R/render.R index 00b841d6..7df96c9b 100644 --- a/R/render.R +++ b/R/render.R @@ -30,8 +30,8 @@ #' @param debug Leave intermediate files in place after render. #' @param quiet Suppress warning and other messages. #' @param profile [Quarto project -#' profile](https://quarto.org/docs/projects/profiles.html) to use. If -#' `NULL`, the default profile is used. +#' profile(s)](https://quarto.org/docs/projects/profiles.html) to use. Either +#' a character vector of profile names or `NULL` to use the default profile. #' @param pandoc_args Additional command line options to pass to pandoc. #' @param as_job Render as an RStudio background job. Default is "auto", #' which will render individual documents normally and projects as @@ -147,7 +147,7 @@ quarto_render <- function(input = NULL, args <- c(args, "--quiet") } if (!is.null(profile)) { - args <- c(args, "--profile", profile) + args <- c(args, "--profile", paste0(profile, collapse = ",")) } if (!is.null(pandoc_args)) { args <- c(args, pandoc_args) diff --git a/man/quarto_inspect.Rd b/man/quarto_inspect.Rd index d896257c..ea87f969 100644 --- a/man/quarto_inspect.Rd +++ b/man/quarto_inspect.Rd @@ -9,8 +9,8 @@ quarto_inspect(input = ".", profile = NULL) \arguments{ \item{input}{The input file or project directory to inspect.} -\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile} to use. If -\code{NULL}, the default profile is used.} +\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile(s)} to use. Either +a character vector of profile names or \code{NULL} to use the default profile.} } \value{ Named list. For input files, the list contains the elements diff --git a/man/quarto_render.Rd b/man/quarto_render.Rd index 0a5c14f5..6a94a47b 100644 --- a/man/quarto_render.Rd +++ b/man/quarto_render.Rd @@ -64,8 +64,8 @@ respectively for Rmd and Jupyter input files).} \item{quiet}{Suppress warning and other messages.} -\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile} to use. If -\code{NULL}, the default profile is used.} +\item{profile}{\href{https://quarto.org/docs/projects/profiles.html}{Quarto project profile(s)} to use. Either +a character vector of profile names or \code{NULL} to use the default profile.} \item{pandoc_args}{Additional command line options to pass to pandoc.} From 47b5da5af06b3079583730b9f506624b5cf51b4b Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 12:06:16 +0200 Subject: [PATCH 05/10] correctly order arguments and use processx::run --- R/inspect.R | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/R/inspect.R b/R/inspect.R index 2d60e890..eafa1ae6 100644 --- a/R/inspect.R +++ b/R/inspect.R @@ -12,8 +12,6 @@ #' part of a Quarto project. For projects, the list contains the elements #' `quarto`, `dir`, `engines`, `config` and `files`. #' -#' @importFrom jsonlite fromJSON -#' #' @examples #' \dontrun{ #' # Inspect input file file @@ -27,21 +25,20 @@ #' input = "myproject", #' profile = "advanced" #' )} +#' @importFrom jsonlite fromJSON #' @export quarto_inspect <- function(input = ".", profile = NULL) { quarto_bin <- find_quarto() - output <- system2( - command = quarto_bin, - args = c( - "inspect", - if (!is.null(profile)) c("--profile", paste0(profile, collapse = ",")), - path.expand(input) - ), - stdout = TRUE - ) + args <- c("inspect", path.expand(input)) + + if (!is.null(profile)) { + args <- c(args, c("--profile", paste0(profile, collapse = ","))) + } + + res <- processx::run(quarto_bin, args) - fromJSON(output) + fromJSON(res$stdout) } From 6a4c7672e257977ff78b2dfa61491b584f2103c9 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 12:11:01 +0200 Subject: [PATCH 06/10] Revert "Make `quarto_render()` arg checks more robust" This reverts commit daa5f0515c810171c049fc06ffcc75c0bcbc641c. We'll handle arg check improvement separately in another PR. --- R/render.R | 17 +++++++++-------- man/quarto_render.Rd | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/R/render.R b/R/render.R index 22d1ef90..2e691cd3 100644 --- a/R/render.R +++ b/R/render.R @@ -66,7 +66,7 @@ quarto_render <- function(input = NULL, output_format = NULL, output_file = NULL, - execute = NULL, + execute = TRUE, execute_params = NULL, execute_dir = NULL, execute_daemon = NULL, @@ -114,26 +114,27 @@ quarto_render <- function(input = NULL, return(invisible(NULL)) } + # build args args <- c("render", input) - if (!is.null(output_format)) { + if (!missing(output_format)) { args <- c(args, "--to", paste(output_format, collapse = ",")) } - if (!is.null(output_file)) { + if (!missing(output_file)) { args <- c(args, "--output", output_file) } - if (!is.null(execute)) { + if (!missing(execute)) { args <- c(args, ifelse(isTRUE(execute), "--execute", "--no-execute")) } - if (!is.null(execute_params)) { + if (!missing(execute_params)) { params_file <- tempfile(pattern = "quarto-params", fileext = ".yml") write_yaml(execute_params, params_file) args <- c(args, "--execute-params", params_file) } - if (!is.null(execute_dir)) { + if (!missing(execute_dir)) { args <- c(args, "--execute-dir", execute_dir) } - if (!is.null(execute_daemon)) { + if (!missing(execute_daemon)) { args <- c(args, "--execute-daemon", as.character(execute_daemon)) } if (isTRUE(execute_daemon_restart)) { @@ -145,7 +146,7 @@ quarto_render <- function(input = NULL, if (isTRUE(use_freezer)) { args <- c(args, "--use-freezer") } - if (!is.null(cache)) { + if (!missing(cache)) { args <- c(args, ifelse(isTRUE(cache), "--cache", "--no-cache")) } if (isTRUE(cache_refresh)) { diff --git a/man/quarto_render.Rd b/man/quarto_render.Rd index d8072d58..7d803003 100644 --- a/man/quarto_render.Rd +++ b/man/quarto_render.Rd @@ -8,7 +8,7 @@ quarto_render( input = NULL, output_format = NULL, output_file = NULL, - execute = NULL, + execute = TRUE, execute_params = NULL, execute_dir = NULL, execute_daemon = NULL, From e5097e78604182a88911422574f97bba158d42de Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 12:28:58 +0200 Subject: [PATCH 07/10] create CLI argument with helpers --- R/quarto-args.R | 9 +++++++++ R/render.R | 2 +- tests/testthat/test-quarto-args.R | 13 +++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 R/quarto-args.R create mode 100644 tests/testthat/test-quarto-args.R diff --git a/R/quarto-args.R b/R/quarto-args.R new file mode 100644 index 00000000..81757c13 --- /dev/null +++ b/R/quarto-args.R @@ -0,0 +1,9 @@ +cli_arg_profile <- function(profile, ...) { + arg <- c("--profile", paste0(profile, collapse = ",")) + append_cli_args(arg, ...) +} + +append_cli_args <- function(new, append_to = NULL, after = length(append_to)) { + if (!is.null(append_to)) return(append(append_to, new, after)) + new +} diff --git a/R/render.R b/R/render.R index 2e691cd3..ab3e6a9e 100644 --- a/R/render.R +++ b/R/render.R @@ -172,7 +172,7 @@ quarto_render <- function(input = NULL, args <- c(args, "--quiet") } if (!is.null(profile)) { - args <- c(args, "--profile", paste0(profile, collapse = ",")) + args <- cli_arg_profile(profile, args) } if (!is.null(pandoc_args)) { args <- c(args, pandoc_args) diff --git a/tests/testthat/test-quarto-args.R b/tests/testthat/test-quarto-args.R new file mode 100644 index 00000000..abfa3820 --- /dev/null +++ b/tests/testthat/test-quarto-args.R @@ -0,0 +1,13 @@ +test_that("append to existing", { + expect_identical(append_cli_args("a"), "a") + expect_identical(append_cli_args(c("a", "b")), c("a", "b")) + expect_identical(append_cli_args("c", c("a", "b")), c("a", "b", "c")) + expect_identical(append_cli_args("b", c("a", "c"), 1), c("a", "b", "c")) + expect_identical(append_cli_args(c("b","c"), c("a", "d"), 1), c("a", "b", "c", "d")) +}) + +test_that("create profile arg", { + expect_identical(cli_arg_profile("a"), c("--profile", "a")) + expect_identical(cli_arg_profile(c("a", "b")), c("--profile", "a,b")) + expect_identical(cli_arg_profile(c("a", "b"), "input.qmd"), c("input.qmd", "--profile", "a,b")) +}) From 28314e22eb72079429533702c615dc4bc1caef55 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 12:45:05 +0200 Subject: [PATCH 08/10] Add some tests --- tests/testthat/project/_quarto-test.yml | 2 + tests/testthat/project/_quarto.yml | 3 ++ tests/testthat/test-inspect.R | 17 +++++++-- tests/testthat/test.ipynb | 49 +++++++++++++++++++++++++ tests/testthat/test.qmd | 25 +++++++++++++ 5 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 tests/testthat/project/_quarto-test.yml create mode 100644 tests/testthat/test.ipynb create mode 100644 tests/testthat/test.qmd diff --git a/tests/testthat/project/_quarto-test.yml b/tests/testthat/project/_quarto-test.yml new file mode 100644 index 00000000..b42c8ff1 --- /dev/null +++ b/tests/testthat/project/_quarto-test.yml @@ -0,0 +1,2 @@ +execute: + echo: true diff --git a/tests/testthat/project/_quarto.yml b/tests/testthat/project/_quarto.yml index b998f74d..eb8af50a 100644 --- a/tests/testthat/project/_quarto.yml +++ b/tests/testthat/project/_quarto.yml @@ -1,2 +1,5 @@ project: type: site + +execute: + echo: false diff --git a/tests/testthat/test-inspect.R b/tests/testthat/test-inspect.R index 0df63af7..74c2ffec 100644 --- a/tests/testthat/test-inspect.R +++ b/tests/testthat/test-inspect.R @@ -1,11 +1,22 @@ -test_that("R Markdown documents can be inspected", { +test_that("Documents can be inspected", { skip_if_no_quarto() - metadata <- quarto_inspect("test.Rmd") + metadata <- quarto_inspect(test_path("test.Rmd")) + expect_type(metadata$formats, "list") + metadata <- quarto_inspect(test_path("test.qmd")) + expect_type(metadata$formats, "list") + metadata <- quarto_inspect(test_path("test.ipynb")) expect_type(metadata$formats, "list") }) test_that("Quarto projects can be inspected", { skip_if_no_quarto() - metadata <- quarto_inspect("project") + metadata <- quarto_inspect(test_path("project")) + expect_type(metadata$config, "list") +}) + +test_that("Quarto projects can be inspected with profile", { + skip_if_no_quarto() + metadata <- quarto_inspect(test_path("project"), "test") expect_type(metadata$config, "list") + expect_identical(metadata$config$execute$echo, TRUE) }) diff --git a/tests/testthat/test.ipynb b/tests/testthat/test.ipynb new file mode 100644 index 00000000..b36e93d6 --- /dev/null +++ b/tests/testthat/test.ipynb @@ -0,0 +1,49 @@ +{ + "cells": [ + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "---\n", + "title: \"Untitled\"\n", + "format: html\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Quarto\n", + "\n", + "Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see .\n", + "\n", + "## Running Code\n", + "\n", + "When you click the **Render** button a document will be generated that includes both content and the output of embedded code. You can embed code like this:\n", + "\n", + "```{r}\n", + "1 + 1\n", + "```\n", + "\n", + "You can add options to executable code like this\n", + "\n", + "```{r}\n", + "#| echo: false\n", + "2 * 2\n", + "```\n", + "\n", + "The `echo: false` option disables the printing of code (only output is displayed)." + ] + } + ], + "metadata": { + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/tests/testthat/test.qmd b/tests/testthat/test.qmd new file mode 100644 index 00000000..719c4961 --- /dev/null +++ b/tests/testthat/test.qmd @@ -0,0 +1,25 @@ +--- +title: "Untitled" +format: html +--- + +## Quarto + +Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see . + +## Running Code + +When you click the **Render** button a document will be generated that includes both content and the output of embedded code. You can embed code like this: + +```{r} +1 + 1 +``` + +You can add options to executable code like this + +```{r} +#| echo: false +2 * 2 +``` + +The `echo: false` option disables the printing of code (only output is displayed). From cb046d30e10b65fb7edd1f972a30696f72793d30 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 12:45:20 +0200 Subject: [PATCH 09/10] An an option to activate some echo for easier debugging --- R/inspect.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/inspect.R b/R/inspect.R index eafa1ae6..f3f67880 100644 --- a/R/inspect.R +++ b/R/inspect.R @@ -38,7 +38,7 @@ quarto_inspect <- function(input = ".", args <- c(args, c("--profile", paste0(profile, collapse = ","))) } - res <- processx::run(quarto_bin, args) + res <- processx::run(quarto_bin, args, echo_cmd = getOption("quarto.echo_cmd", FALSE)) fromJSON(res$stdout) } From d4f5bf9ef83c3c14289af64764adf9461df95eef Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Fri, 13 Oct 2023 14:04:21 +0200 Subject: [PATCH 10/10] Add news and bump version [skip ci] --- DESCRIPTION | 2 +- NEWS.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 69e413f8..8b49806c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: quarto Title: R Interface to 'Quarto' Markdown Publishing System -Version: 1.3.2 +Version: 1.3.3 Authors@R: c( person("JJ", "Allaire", , "jj@rstudio.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-0174-9868")), diff --git a/NEWS.md b/NEWS.md index 0e3961fe..b10d269e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # quarto (development version) +* Add `profile` arguments to `quarto_render()` and `quarto_inspect()` (thanks, #95, @andrewheiss, #123, @salim-b). + * Add `metadata` and `metadata_file` to `quarto_render()` to pass modify Quarto metadata from calling render. If both are set, `metadata` will be merged over `metadata_file` content. Internally, metadata will be passed as a `--metadata-file` to `quarto render` (thanks, @mcanouil, #52, @maelle, #49). * Added a `NEWS.md` file to track changes to the package.