microformat-shiv.js
function(options) {
			var out = this.formatEmpty(),
				data = [],
				rels;

			this.init();
			options = (options)? options : {};
			this.mergeOptions(options);
			this.getDOMContext( options );

			// if we do not have any context create error
			if(!this.rootNode || !this.document){
				this.errors.push(this.noContentErr);
			}else{

				// only parse h-* microformats if we need to
				// this is added to speed up parsing
				if(this.hasMicroformats(this.rootNode, options)){
					this.prepareDOM( options );

					if(this.options.filters.length > 0){
						// parse flat list of items
						var newRootNode = this.findFilterNodes(this.rootNode, this.options.filters);
						data = this.walkRoot(newRootNode);
					}else{
						// parse whole document from root
						data = this.walkRoot(this.rootNode);
					}

					out.items = data;
					// don't clear-up DOM if it was cloned
					if(modules.domUtils.canCloneDocument(this.document) === false){
						this.clearUpDom(this.rootNode);
					}
				}

				// find any rels
				if(this.findRels){
					rels = this.findRels(this.rootNode);
					out.rels = rels.rels;
					out['rel-urls'] = rels['rel-urls'];
				}

			}

			if(this.errors.length > 0){
				return this.formatError();
			}
			return out;
		}
function(options) {
			var out = this.formatEmpty(),
				data = [],
				rels;

			this.init();
			options = (options)? options : {};
			this.mergeOptions(options);
			this.getDOMContext( options );

			// if we do not have any context create error
			if(!this.rootNode || !this.document){
				this.errors.push(this.noContentErr);
			}else{

				// only parse h-* microformats if we need to
				// this is added to speed up parsing
				if(this.hasMicroformats(this.rootNode, options)){
					this.prepareDOM( options );

					if(this.options.filters.length > 0){
						// parse flat list of items
						var newRootNode = this.findFilterNodes(this.rootNode, this.options.filters);
						data = this.walkRoot(newRootNode);
					}else{
						// parse whole document from root
						data = this.walkRoot(this.rootNode);
					}

					out.items = data;
					// don't clear-up DOM if it was cloned
					if(modules.domUtils.canCloneDocument(this.document) === false){
						this.clearUpDom(this.rootNode);
					}
				}

				// find any rels
				if(this.findRels){
					rels = this.findRels(this.rootNode);
					out.rels = rels.rels;
					out['rel-urls'] = rels['rel-urls'];
				}

			}

			if(this.errors.length > 0){
				return this.formatError();
			}
			return out;
		}
function ( options ) { var out = this . formatEmpty ( ) , data = [ ] , rels ; this . init ( ) ; options = ( options ) ? options : { } ; this . mergeOptions ( options ) ; this . getDOMContext ( options ) ; // if we do not have any context create error if ( ! this . rootNode || ! this . document ) { this . errors . push ( this . noContentErr ) ; } else { // only parse h-* microformats if we need to // this is added to speed up parsing if ( this . hasMicroformats ( this . rootNode , options ) ) { this . prepareDOM ( options ) ; if ( this . options . filters . length > 0 ) { // parse flat list of items var newRootNode = this . findFilterNodes ( this . rootNode , this . options . filters ) ; data = this . walkRoot ( newRootNode ) ; } else { // parse whole document from root data = this . walkRoot ( this . rootNode ) ; } out . items = data ; // don't clear-up DOM if it was cloned if ( modules . domUtils . canCloneDocument ( this . document ) === false ) { this . clearUpDom ( this . rootNode ) ; } } // find any rels if ( this . findRels ) { rels = this . findRels ( this . rootNode ) ; out . rels = rels . rels ; out [ 'rel-urls' ] = rels [ 'rel-urls' ] ; } } if ( this . errors . length > 0 ) { return this . formatError ( ) ; } return out ; }
internal parse function

@param  {Object} options
@return {Object}
internal parse function