Firefox 3 introduces a new API for managing and parsing microformats. This article examines the generic microformat parsing API, which handles the heavy lifting of pulling data out of a microformat. This API is primarily intended to be used when implementing new microformats.
Methods
dateTimeGetter()
Specifically retrieves a date from a microformat node. After getting the text, it is normalized into an ISO 8601 date.
normalizedDate = Microformats.parser.dateTimeGetter(propnode, parentnode);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
A string containing the normalized date.
defaultGetter()
Uses the microformat patterns to decide what the correct text for a given microformat property is. This includes looking at thing such as abbr
, img
and alt
, area
and alt
, and value excerpting.
propertyValue = Microformats.parser.defaultGetter(propnode, parentnode, datatype);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
-
datatype
-
"HTML" if the search should be done using
innerHTML()
, or "text" to useinnerText()
. The default is "text".
Return value
A string containing the property's value.
emailGetter()
Specifically retrieves an email address from a microformat node. This removes the subject if one is specified, as well as the mailto:
prefix.
email = Microformats.parser.emailGetter(propnode, parentnode);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
A string containing the email address.
HTMLGetter()
Retrieves all the HTML from a particular DOM node.
html = Microformats.parser.HTMLGetter(propnode, parentnode);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
An object containing a function you can call to get the string and the HTML.
The functions you can call on the returned object are:
string = html.toString();
Returns a string using innerText()
.
string = html.toHTML();
Returns the node's HTML using innerHTML()
.
string = html.replace(a, b);
Returns a string in which all occurrences of a
in the HTML are replaced with b
.
string = html.match(a);
Performs the specified matching operation on the HTML and returns the result.
iso8601FromDate
Converts a JavaScript date object into an ISO 8601 formatted date.
isoDate = Microformats.parser.iso8601FromDate(date, punctuation)
Parameters
date
- The JavaScript
Date
object to convert. punctuation
true
if the date should have "-" and "/" in it.
Return value
A string containing the ISO 8601 formatted date.
textGetter()
Retrieves all the text from a particular DOM node, including all tags. This calls defaultGetter()
internally.
text = Microformats.parser.textGetter(propnode, parentnode);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
A string containing all the text from the specified microformat node, including the tags.
telGetter()
Specifically retrieves a telephone number from a microformat node. This handles the fact that telephone numbers use "value" as the name of one of their subproperties, but "value" is also used for value excerpting.
tel = Microformats.parser.telGetter(propnode, parentnode);
Parameters
propnode
- The DOM node to check.
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
A string containing the telephone number.
uriGetter()
Specifically retrieves a URI from a microformat node. This is done by looking at an href
, img
, object
, or area
to get the fully-qualified URI.
uri = Microformats.parser.uriGetter(propnode, parentnode);
Parameters
-
propnode
- The DOM node to check.
-
parentnode
- The property's parent node. If it is a subproperty, this is the parent property node. Otherwise this is the microformat node.
Return value
A string containing the fully-qualified URI.