diff --git a/man/revealjs_presentation.Rd b/man/revealjs_presentation.Rd
new file mode 100644
index 0000000..b97422e
--- /dev/null
+++ b/man/revealjs_presentation.Rd
@@ -0,0 +1,134 @@
+% Generated by roxygen2 (4.0.2): do not edit by hand
+\name{revealjs_presentation}
+\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 = "default",
+  transition = "default", highlight = "default", mathjax = "default",
+  template = "default", includes = NULL, keep_md = FALSE,
+  lib_dir = NULL, pandoc_args = NULL, ...)
+}
+\arguments{
+\item{incremental}{\code{TRUE} to render slide bullets incrementally. Note
+that if you want to reverse the default incremental behavior for an
+individual bullet you can preceded it with \code{>}. For example:
+\emph{\code{> - Bullet Text}}}
+
+\item{center}{\code{TRUE} to vertically center content on slides}
+
+\item{fig_width}{Default width (in inches) for figures}
+
+\item{fig_height}{Default width (in inches) for figures}
+
+\item{fig_retina}{Scaling to perform for retina displays (defaults to 2 when
+\code{fig_caption} is \code{FALSE}, which currently works for all widely
+used retina displays). Set to \code{NULL} to prevent retina scaling. Note
+that this will always be \code{NULL} when \code{keep_md} is specified (this
+is because \code{fig_retina} relies on outputting HTML directly into the
+markdown document).}
+
+\item{fig_caption}{\code{TRUE} to render figures with captions}
+
+\item{smart}{Produce typographically correct output, converting straight
+quotes to curly quotes, --- to em-dashes, -- to en-dashes, and ... to
+ellipses.}
+
+\item{self_contained}{Produce a standalone HTML file with no external
+dependencies, using data: URIs to incorporate the contents of linked
+scripts, stylesheets, images, and videos. Note that even for self
+contained documents MathJax is still loaded externally (this is
+necessary because of it's size).}
+
+\item{theme}{Visual theme ("default", "simple", sky", "beige", "serif", or
+"solarized").}
+
+\item{transition}{Slide transition ("default", "cube", "page", "concave",
+"zoom", "linear", "fade", or "none")}
+
+\item{highlight}{Syntax highlighting style. Supported styles include
+"default", "tango", "pygments", "kate", "monochrome", "espresso",
+"zenburn", and "haddock". Pass \code{NULL} to prevent syntax highlighting.}
+
+\item{mathjax}{Include mathjax. The "default" option uses an https URL from
+the official MathJax CDN. The "local" option uses a local version of
+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{includes}{Named list of additional content to include within the
+document (typically created using the \code{\link{includes}} function).}
+
+\item{keep_md}{Keep the markdown file generated by knitting.}
+
+\item{lib_dir}{Directory to copy dependent HTML libraries (e.g. jquery,
+bootstrap, etc.) into. By default this will be the name of the document
+with \code{_files} appended to it.}
+
+\item{pandoc_args}{Additional command line options to pass to pandoc}
+
+\item{...}{Additional function arguments to pass to the base R Markdown HTML
+  output formatter}
+}
+\value{
+R Markdown output format to pass to \code{\link{render}}
+}
+\description{
+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.
+
+For more information on markdown syntax for presentations see
+\href{http://johnmacfarlane.net/pandoc/demo/example9/producing-slide-shows-with-pandoc.html}{producing
+slide shows with pandoc}.
+}
+\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).
+  }
+}
+}
+\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))
+}
+}
+
