enable notes, search, menu and zoom plugins by default
reveal_plugins now defaults to c("notes", "search", "menu", "zoom");
pass NULL to render without plugins. Existing self_contained decks keep
working: the default set is dropped with a warning there instead of
triggering the hard stop, which still applies to explicitly requested
plugins.
Change-Id: I9041861a6914886e0c32ab5e37b8c4f55a5576c3
diff --git a/R/revealjs_presentation.R b/R/revealjs_presentation.R
index bdc4153..21212a7 100644
--- a/R/revealjs_presentation.R
+++ b/R/revealjs_presentation.R
@@ -100,9 +100,10 @@
#' be passed, using plugin name as first level key (e.g `list(slideNumber =
#' FALSE, menu = list(number = TRUE))`).
#' @param reveal_plugins Reveal plugins to include. Available plugins include
-#' "notes", "search", "zoom", "chalkboard", and "menu". Note that
-#' `self_contained` must be set to `FALSE` in order to use Reveal
-#' plugins.
+#' "notes", "search", "zoom", "chalkboard", and "menu". Defaults to
+#' `c("notes", "search", "menu", "zoom")`; pass `NULL` to render without
+#' any plugins. Note that `self_contained` must be set to `FALSE` in order
+#' to use Reveal plugins.
#' @param template Pandoc template to use for rendering. Pass "default" to use
#' the rmarkdown package default template; pass `NULL` to use pandoc's
#' built-in template; pass a path to use a custom template that you've
@@ -143,7 +144,7 @@
transition = "convex",
background_transition = "fade",
reveal_options = NULL,
- reveal_plugins = NULL,
+ reveal_plugins = c("notes", "search", "menu", "zoom"),
highlight = "default",
mathjax = "default",
template = "default",
@@ -257,7 +258,17 @@
# validate that we need to use self_contained for plugins
if (self_contained) {
- stop("Using reveal_plugins requires self_contained: false")
+ if (missing(reveal_plugins)) {
+ # the default plugin set collided with an explicitly requested
+ # self_contained render -- drop the defaults instead of failing
+ warning("Reveal plugins require self_contained: false -- ",
+ "rendering without the default plugins.",
+ call. = FALSE
+ )
+ reveal_plugins <- character(0)
+ } else {
+ stop("Using reveal_plugins requires self_contained: false")
+ }
}
# validate specified plugins are supported