HTML-Microformats
view release on metacpan or search on metacpan
NAME
HTML::Microformats - parse microformats in HTML
SYNOPSIS
use HTML::Microformats;
my $doc = HTML::Microformats
->new_document($html, $uri)
->assume_profile(qw(hCard hCalendar));
print $doc->json(pretty => 1);
use RDF::TrineShortcuts qw(rdf_query);
my $results = rdf_query($sparql, $doc->model);
DESCRIPTION
The HTML::Microformats module is a wrapper for parser and handler
modules of various individual microformats (each of those modules has a
name like HTML::Microformats::Format::Foo).
The general pattern of usage is to create an HTML::Microformats object
(which corresponds to an HTML document) using the "new_document" method;
then ask for the data, as a Perl hashref, a JSON string, or an
RDF::Trine model.
Constructor
"$doc = HTML::Microformats->new_document($html, $uri, %opts)"
Constructs a document object.
$html is the HTML or XHTML source (string) or an
XML::LibXML::Document.
$uri is the document URI, important for resolving relative URL
references.
%opts are additional parameters; currently only one option is
defined: $opts{'type'} is set to 'text/html' or
'application/xhtml+xml', to control how $html is parsed.
Profile Management
HTML::Microformats uses HTML profiles (i.e. the profile attribute on the
HTML <head> element) to detect which Microformats are used on a page.
Any microformats which do not have a profile URI declared will not be
parsed.
Because many pages fail to properly declare which profiles they use,
there are various profile management methods to tell HTML::Microformats
to assume the presence of particular profile URIs, even if they're
actually missing.
"$doc->profiles"
This method returns a list of profile URIs declared by the document.
"$doc->has_profile(@profiles)"
This method returns true if and only if one or more of the profile
URIs in @profiles is declared by the document.
"$doc->add_profile(@profiles)"
Using "add_profile" you can add one or more profile URIs, and they
are treated as if they were found on the document.
For example:
$doc->add_profile('http://microformats.org/profile/rel-tag')
This is useful for adding profile URIs declared outside the document
itself (e.g. in HTTP headers).
Returns a reference to the document.
"$doc->assume_profile(@microformats)"
For example:
$doc->assume_profile(qw(hCard adr geo))
This method acts similarly to "add_profile" but allows you to use
names of microformats rather than URIs.
Microformat names are case sensitive, and must match
HTML::Microformats::Format::Foo module names.
Returns a reference to the document.
"$doc->assume_all_profiles"
This method is equivalent to calling "assume_profile" for all known
microformats.
Returns a reference to the document.
Parsing Microformats
( run in 1.305 second using v1.01-cache-2.11-cpan-119454b85a5 )