re-wrap docs, add docs on slide level
diff --git a/R/revealjs_presentation.R b/R/revealjs_presentation.R
index d8a83c8..7f9ace8 100644
--- a/R/revealjs_presentation.R
+++ b/R/revealjs_presentation.R
@@ -1,80 +1,83 @@
#' Convert to a reveal.js presentation
-#'
+#'
#' Format for converting from R Markdown to a reveal.js presentation.
-#'
+#'
#' @inheritParams rmarkdown::beamer_presentation
#' @inheritParams rmarkdown::pdf_document
#' @inheritParams rmarkdown::html_document
-#'
+#'
#' @param center \code{TRUE} to vertically center content on slides
-#' @param theme Visual theme ("simple", "sky", "beige", "serif",
-#' "solarized", "blood", "moon", "night", "black", "league" or "white").
+#' @param slide_level Level of heading to denote individual slides. If
+#' \code{slide_level} is 2 (the default), a two-dimensional layout will be
+#' produced, with level 1 headers building horizontally and level 2 headers
+#' building vertically. It is not recommended that you use deeper nesting of
+#' section levels with reveal.js.
+#' @param theme Visual theme ("simple", "sky", "beige", "serif", "solarized",
+#' "blood", "moon", "night", "black", "league" or "white").
#' @param transition Slide transition ("default", "none", "fade", "slide",
#' "convex", "concave" or "zoom")
-#' @param background_transition Slide background-transition ("default", "none", "fade", "slide",
-#' "convex", "concave" or "zoom")
-#' @param reveal_options Additional options to specify for reveal.js (see
-#' \href{https://github.com/hakimel/reveal.js#configuration}{https://github.com/hakimel/reveal.js#configuration} for details).
-#' @param template Pandoc template to use for rendering. Pass "default"
-#' to use the rmarkdown package default template; pass \code{NULL}
-#' to use pandoc's built-in template; pass a path to use a custom template
-#' that you've created. Note that if you don't use the "default" template
-#' then some features of \code{revealjs_presentation} won't be available
-#' (see the Templates section below for more details).
+#' @param background_transition Slide background-transition ("default", "none",
+#' "fade", "slide", "convex", "concave" or "zoom")
+#' @param reveal_options Additional options to specify for reveal.js (see
+#' \href{https://github.com/hakimel/reveal.js#configuration}{https://github.com/hakimel/reveal.js#configuration}
+#' for details).
+#' @param template Pandoc template to use for rendering. Pass "default" to use
+#' the rmarkdown package default template; pass \code{NULL} to use pandoc's
+#' built-in template; pass a path to use a custom template that you've
+#' created. Note that if you don't use the "default" template then some
+#' features of \code{revealjs_presentation} won't be available (see the
+#' Templates section below for more details).
#' @param ... Ignored
-#'
+#'
#' @return R Markdown output format to pass to \code{\link{render}}
-#'
+#'
#' @details
-#'
-#' In reveal.js presentations you can use level 1 or level 2 headers for
-#' slides. If you use a mix of level 1 and level 2 headers then a
-#' two-dimensional layout will be produced, with level 1 headers building
-#' horizontally and level 2 headers building vertically.
#'
-#' For additional documentation on using revealjs presentations see \href{https://github.com/rstudio/revealjs}{https://github.com/rstudio/revealjs}.
+#' In reveal.js presentations you can use level 1 or level 2 headers for slides.
+#' If you use a mix of level 1 and level 2 headers then a two-dimensional layout
+#' will be produced, with level 1 headers building horizontally and level 2
+#' headers building vertically.
+#'
+#' For additional documentation on using revealjs presentations see
+#' \href{https://github.com/rstudio/revealjs}{https://github.com/rstudio/revealjs}.
#'
#' @section Templates:
-#'
-#' You can provide a custom HTML template to be used for rendering. The syntax
-#' for templates is described in the documentation on
-#' \href{http://johnmacfarlane.net/pandoc/demo/example9/templates.html}{pandoc
-#' templates}. You can also use the basic pandoc template by passing
-#' \code{template = NULL}.
-#'
-#' Note however that if you choose not to use the "default" reveal.js template
-#' then several aspects of reveal.js presentation rendering will behave
-#' differently:
-#'
-#' \itemize{
-#' \item{The \code{center} parameter does not work (you'd need to
-#' set this directly in the template).
-#' }
-#' \item{The built-in template includes some additional tweaks to styles
-#' to optimize for output from R, these won't be present.
-#' }
-#' \item{MathJax will not work if \code{self_contained} is \code{TRUE}
-#' (these two options can't be used together in normal pandoc templates).
-#' }
-#' }
-#'
+#'
+#' You can provide a custom HTML template to be used for rendering. The syntax
+#' for templates is described in the documentation on
+#' \href{http://johnmacfarlane.net/pandoc/demo/example9/templates.html}{pandoc
+#' templates}. You can also use the basic pandoc template by passing
+#' \code{template = NULL}.
+#'
+#' Note however that if you choose not to use the "default" reveal.js template
+#' then several aspects of reveal.js presentation rendering will behave
+#' differently:
+#'
+#' \itemize{ \item{The \code{center} parameter does not work (you'd need to
+#' set this directly in the template). } \item{The built-in template includes
+#' some additional tweaks to styles to optimize for output from R, these won't
+#' be present. } \item{MathJax will not work if \code{self_contained} is
+#' \code{TRUE} (these two options can't be used together in normal pandoc
+#' templates). } }
+#'
#' @examples
#' \dontrun{
-#'
+#'
#' library(rmarkdown)
#' library(revealjs)
-#'
+#'
#' # simple invocation
#' render("pres.Rmd", revealjs_presentation())
-#'
+#'
#' # specify an option for incremental rendering
#' render("pres.Rmd", revealjs_presentation(incremental = TRUE))
#' }
-#'
-#'
+#'
+#'
#' @export
revealjs_presentation <- function(incremental = FALSE,
center = FALSE,
+ slide_level = 2,
fig_width = 8,
fig_height = 6,
fig_retina = if (!fig_caption) 2,
@@ -123,6 +126,9 @@
jsbool <- function(value) ifelse(value, "true", "false")
args <- c(args, pandoc_variable_arg("center", jsbool(center)))
+ # slide level
+ args <- c(args, "--slide-level", "2")
+
# theme
theme <- match.arg(theme, revealjs_themes())
if (identical(theme, "default"))
diff --git a/man/revealjs_presentation.Rd b/man/revealjs_presentation.Rd
index 3be5259..13fb59f 100644
--- a/man/revealjs_presentation.Rd
+++ b/man/revealjs_presentation.Rd
@@ -4,13 +4,14 @@
\alias{revealjs_presentation}
\title{Convert to a reveal.js presentation}
\usage{
-revealjs_presentation(incremental = FALSE, center = FALSE, fig_width = 8,
- fig_height = 6, fig_retina = if (!fig_caption) 2, fig_caption = FALSE,
- smart = TRUE, self_contained = TRUE, theme = "simple",
- transition = "default", background_transition = "default",
- reveal_options = NULL, highlight = "default", mathjax = "default",
- template = "default", css = NULL, includes = NULL, keep_md = FALSE,
- lib_dir = NULL, pandoc_args = NULL, ...)
+revealjs_presentation(incremental = FALSE, center = FALSE,
+ slide_level = 2, fig_width = 8, fig_height = 6, fig_retina = if
+ (!fig_caption) 2, fig_caption = FALSE, smart = TRUE,
+ self_contained = TRUE, theme = "simple", transition = "default",
+ background_transition = "default", reveal_options = NULL,
+ highlight = "default", mathjax = "default", template = "default",
+ css = NULL, includes = NULL, keep_md = FALSE, lib_dir = NULL,
+ pandoc_args = NULL, ...)
}
\arguments{
\item{incremental}{\code{TRUE} to render slide bullets incrementally. Note
@@ -20,6 +21,12 @@
\item{center}{\code{TRUE} to vertically center content on slides}
+\item{slide_level}{Level of heading to denote individual slides. If
+\code{slide_level} is 2 (the default), a two-dimensional layout will be
+produced, with level 1 headers building horizontally and level 2 headers
+building vertically. It is not recommended that you use deeper nesting of
+section levels with reveal.js.}
+
\item{fig_width}{Default width (in inches) for figures}
\item{fig_height}{Default width (in inches) for figures}
@@ -43,17 +50,18 @@
documents MathJax is still loaded externally (this is necessary because of
it's size).}
-\item{theme}{Visual theme ("simple", "sky", "beige", "serif",
-"solarized", "blood", "moon", "night", "black", "league" or "white").}
+\item{theme}{Visual theme ("simple", "sky", "beige", "serif", "solarized",
+"blood", "moon", "night", "black", "league" or "white").}
\item{transition}{Slide transition ("default", "none", "fade", "slide",
"convex", "concave" or "zoom")}
-\item{background_transition}{Slide background-transition ("default", "none", "fade", "slide",
-"convex", "concave" or "zoom")}
+\item{background_transition}{Slide background-transition ("default", "none",
+"fade", "slide", "convex", "concave" or "zoom")}
-\item{reveal_options}{Additional options to specify for reveal.js (see
-\href{https://github.com/hakimel/reveal.js#configuration}{https://github.com/hakimel/reveal.js#configuration} for details).}
+\item{reveal_options}{Additional options to specify for reveal.js (see
+\href{https://github.com/hakimel/reveal.js#configuration}{https://github.com/hakimel/reveal.js#configuration}
+for details).}
\item{highlight}{Syntax highlighting style. Supported styles include
"default", "tango", "pygments", "kate", "monochrome", "espresso",
@@ -64,12 +72,12 @@
MathJax (which is copied into the output directory). You can pass an
alternate URL or pass \code{NULL} to exclude MathJax entirely.}
-\item{template}{Pandoc template to use for rendering. Pass "default"
-to use the rmarkdown package default template; pass \code{NULL}
-to use pandoc's built-in template; pass a path to use a custom template
-that you've created. Note that if you don't use the "default" template
-then some features of \code{revealjs_presentation} won't be available
-(see the Templates section below for more details).}
+\item{template}{Pandoc template to use for rendering. Pass "default" to use
+the rmarkdown package default template; pass \code{NULL} to use pandoc's
+built-in template; pass a path to use a custom template that you've
+created. Note that if you don't use the "default" template then some
+features of \code{revealjs_presentation} won't be available (see the
+Templates section below for more details).}
\item{css}{One or more css files to include}
@@ -93,37 +101,33 @@
Format for converting from R Markdown to a reveal.js presentation.
}
\details{
-In reveal.js presentations you can use level 1 or level 2 headers for
-slides. If you use a mix of level 1 and level 2 headers then a
-two-dimensional layout will be produced, with level 1 headers building
-horizontally and level 2 headers building vertically.
+In reveal.js presentations you can use level 1 or level 2 headers for slides.
+If you use a mix of level 1 and level 2 headers then a two-dimensional layout
+will be produced, with level 1 headers building horizontally and level 2
+headers building vertically.
-For additional documentation on using revealjs presentations see \href{https://github.com/rstudio/revealjs}{https://github.com/rstudio/revealjs}.
+For additional documentation on using revealjs presentations see
+\href{https://github.com/rstudio/revealjs}{https://github.com/rstudio/revealjs}.
}
\section{Templates}{
-
-You can provide a custom HTML template to be used for rendering. The syntax
-for templates is described in the documentation on
-\href{http://johnmacfarlane.net/pandoc/demo/example9/templates.html}{pandoc
-templates}. You can also use the basic pandoc template by passing
-\code{template = NULL}.
-
-Note however that if you choose not to use the "default" reveal.js template
-then several aspects of reveal.js presentation rendering will behave
-differently:
-
-\itemize{
- \item{The \code{center} parameter does not work (you'd need to
- set this directly in the template).
- }
- \item{The built-in template includes some additional tweaks to styles
- to optimize for output from R, these won't be present.
- }
- \item{MathJax will not work if \code{self_contained} is \code{TRUE}
- (these two options can't be used together in normal pandoc templates).
- }
-}
+
+ You can provide a custom HTML template to be used for rendering. The syntax
+ for templates is described in the documentation on
+ \href{http://johnmacfarlane.net/pandoc/demo/example9/templates.html}{pandoc
+ templates}. You can also use the basic pandoc template by passing
+ \code{template = NULL}.
+
+ Note however that if you choose not to use the "default" reveal.js template
+ then several aspects of reveal.js presentation rendering will behave
+ differently:
+
+ \itemize{ \item{The \code{center} parameter does not work (you'd need to
+ set this directly in the template). } \item{The built-in template includes
+ some additional tweaks to styles to optimize for output from R, these won't
+ be present. } \item{MathJax will not work if \code{self_contained} is
+ \code{TRUE} (these two options can't be used together in normal pandoc
+ templates). } }
}
\examples{
\dontrun{