code: function Cleaver(document, options, includePath) {
    this.document = document.toString();
    this.options = clone(options) || {};
    this.path = path.resolve(includePath || '.');
  
    if (!debugInited) {
      if (this.options.debug) {
        debug.enable('*');
      }
      debug = debug('cleaver');
      debugInited = true;
    }
  
    /**
     * Require helper using `this.path` as a context for where to locate any
     * specified assets
     */
    helper = require('./helper')(this.path, this.options.debug);
  
    this.templates = {
      layout: 'templates/layout.mustache',
      author: 'templates/author.mustache',
      slides: 'templates/default.mustache'
    };
  
    this.resources = {
      style: 'resources/default.css',
      githubStyle: 'resources/github.css',
      script: 'resources/script.js'
    };
  
    this.external = {
      style: []
    };
  
    this.slides = [];
    this.override = false;
  
    marked.setOptions({
      gfm: true,
      highlight: function (code, lang) {
        try {
          return hljs.highlight(lang, code).value;
        } catch (e) {
          return code;
        }
      }
    });
  }
docs: Constructor accepts a document (as a string) and a path from which to
  include external dependencies (stylesheets, scripts, etc)
  
  @param {string} document The input document
  @param {!Object} options Optional settings object to overwrite the options
  listed in the cleaver document
  @param {!string} includePath Optional resource path (default: '.')
  @constructor