HTML-Microformats
view release on metacpan or search on metacpan
examples/misc/example2.pl view on Meta::CPAN
12.34, 56.78
</span>
</div>
<div class="agent vcard">
<span class="fn">007</span>
</div>
</div>
<div class="figure">
<img class="image" src="photo.jpeg" alt="">
<p class="legend">
<a rel="tag" href="http://en.wikipedia.org/wiki/Photography">Photo</a>
of <span class="subject">Albert Einstein</span> by
<span class="vcard credit">
<span class="fn">Paul Ehrenfest</span>
(<span class="role">photographer</span>)
</span>
</p>
</div>
<div class="vcard" id="celso-hcard">
lib/HTML/Microformats/Format/figure.pm view on Meta::CPAN
use HTML::Microformats::DocumentContext;
use HTML::Microformats::Format::figure;
use Scalar::Util qw(blessed);
my $context = HTML::Microformats::DocumentContext->new($dom, $uri);
my @objects = HTML::Microformats::Format::figure->extract_all(
$dom->documentElement, $context);
foreach my $fig (@objects)
{
printf("<%s> %s\n", $fig->get_image, $fig->get_legend->[0]);
foreach my $maker ($p->get_credit)
{
if (blessed($maker))
{
printf(" - by %s\n", $maker->get_fn);
}
else
{
printf(" - by %s\n", $maker);
}
lib/HTML/Microformats/Format/figure.pm view on Meta::CPAN
unless ($rnp eq substr $dnp, 0, length $rnp)
{
$elem->addChild($desc_node->clone(1));
}
}
}
# Just does class=credit, class=subject and rel=tag.
$self->_simple_parse($elem);
my @legends;
push @legends, $elem if $elem->getAttribute('class')=~/\b(legend)\b/;
push @legends, searchClass('legend', $elem);
foreach my $l ($elem->getElementsByTagName('legend'))
{
push @legends, $l
unless $l->getAttribute('class')=~/\b(legend)\b/; # avoid duplicates
}
foreach my $legend_node (@legends)
{
my $legend;
if ($legend_node == $image_node)
{
$legend = ms($legend_node->getAttribute('title'), $legend_node)
if $legend_node->hasAttribute('title');
}
else
{
$legend = stringify($legend_node, 'value');
}
push @{ $self->{'DATA'}->{'legend'} }, $legend if defined $legend;
}
}
sub extract_all
{
my ($class, $dom, $context, %options) = @_;
my @rv;
my @elements = searchClass('figure', $dom);
foreach my $f ($dom->getElementsByTagName('figure'))
lib/HTML/Microformats/Format/figure.pm view on Meta::CPAN
sub format_signature
{
my $vcard = 'http://www.w3.org/2006/vcard/ns#';
my $geo = 'http://www.w3.org/2003/01/geo/wgs84_pos#';
my $foaf = 'http://xmlns.com/foaf/0.1/';
return {
'root' => 'figure',
'classes' => [
['image', '1u#'],
['legend', '+#'],
['credit', 'M*', {embedded=>'hCard'}],
['subject', 'M*', {embedded=>'hCard adr geo hEvent'}],
],
'options' => {
'rel-tag' => 'category',
},
'rdf:type' => ["${foaf}Image"] ,
'rdf:property' => {
'legend' => { literal => ['http://purl.org/dc/terms/description'] },
'category' => { resource => ['http://www.holygoat.co.uk/owl/redwood/0.1/tags/taggedWithTag'] },
},
};
}
sub add_to_model
{
my $self = shift;
my $model = shift;
( run in 1.321 second using v1.01-cache-2.11-cpan-49f99fa48dc )