code: function Autodoc(options) {
      options = Lazy(options || {})
        .defaults(Autodoc.options)
        .toObject();
  
      this.codeParser       = wrapParser(options.codeParser);
      this.commentParser    = wrapParser(options.commentParser);
      this.markdownParser   = wrapParser(options.markdownParser, Autodoc.processInternalLinks);
      this.highlighter      = options.highlighter;
      this.language         = options.language || 'javascript';
      this.compiler         = options.compiler[this.language];
      this.namespaces       = options.namespaces || [];
      this.tags             = options.tags || [];
      this.grep             = options.grep;
      this.javascripts      = options.javascripts || [];
      this.exampleHandlers  = exampleHandlers(options.exampleHandlers);
      this.template         = options.template;
      this.templateEngine   = options.templateEngine;
      this.templatePartials = options.templatePartials;
      this.extraOptions     = options.extraOptions || {};
      this.errors           = [];
  
      if (this.highlighter) {
        this.highlighter.loadMode(this.language);
      }
    }
docs: All of the options Autodoc supports.
  
  @typedef {Object} AutodocOptions
  @property {Parser|function(string):*} codeParser
  @property {Parser|function(string):*} commentParser
  @property {Parser|function(string):*} markdownParser
  @property {Array.<string>} namespaces
  @property {Array.<string>} tags
  @property {string} grep
  @property {Array.<string>} javascripts
  @property {string} template
  @property {TemplateEngine} templateEngine
  @property {Object.<string, string>} templatePartials
  @property {Array.<ExampleHandler>} exampleHandlers
  @property {Object} extraOptions
   
  @constructor
  @param {AutodocOptions=} options