diff --git a/R/revealjs_presentation.R b/R/revealjs_presentation.R
index 1ad46fc..9399e47 100644
--- a/R/revealjs_presentation.R
+++ b/R/revealjs_presentation.R
@@ -81,6 +81,7 @@
                                   keep_md = FALSE,
                                   lib_dir = NULL,
                                   pandoc_args = NULL,
+                                  extra_dependencies = NULL,
                                   ...) {
   
   # function to lookup reveal resource
@@ -138,13 +139,28 @@
   
   # additional reveal options
   if (is.list(reveal_options)) {
-    for (option in names(reveal_options)) {
-      value <- reveal_options[[option]]
+    
+    add_reveal_option <- function(option, value) {
       if (is.logical(value))
         value <- jsbool(value)
       else if (is.character(value))
         value <- paste0("'", value, "'")
-      args <- c(args, pandoc_variable_arg(option, value))
+      args <<- c(args, pandoc_variable_arg(option, value))
+    }
+    
+    for (option in names(reveal_options)) {
+      # special handling for nested chalkboard options
+      if (identical(option, "chalkboard")) {
+        chalkboard_options <- reveal_options[[option]]
+        for (chalkboard_option in names(chalkboard_options)) {
+          add_reveal_option(paste0("chalkboard-", chalkboard_option),
+                            chalkboard_options[[chalkboard_option]])
+        }
+      }
+      # standard top-level options
+      else {
+        add_reveal_option(option, reveal_options[[option]])
+      }
     }
   }
   
@@ -156,7 +172,7 @@
       stop("Using reveal_plugins requires self_contained: false")
     
     # validate specified plugins are supported
-    supported_plugins <- c("notes", "search", "zoom")
+    supported_plugins <- c("notes", "search", "zoom", "chalkboard")
     invalid_plugins <- setdiff(reveal_plugins, supported_plugins)
     if (length(invalid_plugins) > 0)
       stop("The following plugin(s) are not supported: ",
@@ -165,6 +181,11 @@
     # add plugins
     sapply(reveal_plugins, function(plugin) {
       args <<- c(args, pandoc_variable_arg(paste0("plugin-", plugin), "1"))
+      if (identical(plugin, "chalkboard")) {
+        extra_dependencies <<- append(extra_dependencies,
+                                     list(rmarkdown::html_dependency_font_awesome()))
+          
+      }
     })    
   }
   
@@ -223,7 +244,9 @@
     base_format = html_document_base(smart = smart, lib_dir = lib_dir,
                                      self_contained = self_contained,
                                      mathjax = mathjax,
-                                     pandoc_args = pandoc_args, ...))
+                                     pandoc_args = pandoc_args, 
+                                     extra_dependencies = extra_dependencies,
+                                     ...))
 }
 
 revealjs_themes <- function() {
