NAME
Web::Microformats2::Document - A parsed Microformats2 data structure
DESCRIPTION
An object of this class represents a Microformats2 data structure that has been either parsed from an HTML document or deserialized from JSON.
The expected use-case is that you will construct document objects either via the "parse" in Web::Microformats2::Parser method of Web::Microformats2::Parser, or by this class's "new_from_json" method. Once constructed, we expect you to treat documents as read-only.
See Web::Microformats2 for further context and purpose.
METHODS
Class Methods
new_from_json
$doc
= Web::Microformats2->new_from_json(
$json_string
)
Given a JSON string containing a properly serialized Microformats2 data structure, returns a Web::Microformats2::Document object.
Object Methods
as_json
$json
=
$doc
->as_json
Returns a JSON representation of this object, created according to Microformats2 serialization rules.
as_raw_data
$mf2_data_ref
=
$doc
->as_raw_data
Returns a hash reference containing unblessed data structures that map exactly to the JSON version of this object, as defined by Microformats2 serialization rules. In other words, it contains items
, rels
, and rel-urls
keys, and builds down from there.
Call this if you'd like to parse the Microformats2 metadata out of a document and then work with it at low level, as opposed to (or as well as) using the various convenience methods offered by this class.
Equivalent to calling decode_json()
(see "decode_json" in JSON) on the output of as_json
.
all_items
@items
=
$doc
->all_items;
Returns a list of all Web::Microformats2::Item objects this document contains at any level.
all_top_level_items
@items
=
$doc
->all_top_level_items;
Returns a list of all Web::Microformats2::Item objects this document contains at the top level.
get_first
$item
=
$doc
->get_first(
$item_type
);
# So:
$entry
=
$doc
->get_first(
'h-entry'
);
# Or...
$entry
=
$doc
->get_first(
'entry'
);
Given a Microformats2 item-type string -- e.g. "h-entry" (or just "entry") -- returns the first item of that type that this document contains (in document order, depth-first).
AUTHOR
Jason McIntosh (jmac@jmac.org)
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018 by Jason McIntosh.
This is free software, licensed under:
The MIT (X11) License