This is an automated email from the git hooks/post-receive script. js pushed a commit to annotated tag debian/0.106-1 in repository librdf-rdfa-generator-perl.
commit 43934aad0c28c48e078456f8a8563b35dbdba8b0 Author: Toby Inkster <m...@tobyinkster.co.uk> Date: Fri Jun 4 13:55:31 2010 +0000 cross-links in pretty RDFa; bump version number. --HG-- branch : RDF-RDFa-Generator extra : convert_revision : svn%3A3fe8e991-6959-4966-b76d-b07eca2b6e37/RDF-RDFa-Generator%40386 --- META.yml | 3 +- example1-out.html | 13 +---- example1.css | 13 +++++ example1.pl | 4 +- lib/RDF/RDFa/Generator.pm | 2 +- lib/RDF/RDFa/Generator/HTML/Head.pm | 2 +- lib/RDF/RDFa/Generator/HTML/Hidden.pm | 2 +- lib/RDF/RDFa/Generator/HTML/Pretty.pm | 93 ++++++++++++++++++++++++++---- lib/RDF/RDFa/Generator/HTML/Pretty/Note.pm | 2 +- 9 files changed, 106 insertions(+), 28 deletions(-) diff --git a/META.yml b/META.yml index 07dbe38..9a4b15d 100644 --- a/META.yml +++ b/META.yml @@ -29,4 +29,5 @@ resources: homepage: http://search.cpan.org/dist/RDF-RDFa-Generator/ license: http://dev.perl.org/licenses/ repository: http://goddamn.co.uk/viewvc/perlmods/RDF-RDFa-Generator/ -version: 0.05 +version: 0.06 + diff --git a/example1-out.html b/example1-out.html index 9aeb169..ac6675a 100644 --- a/example1-out.html +++ b/example1-out.html @@ -1,11 +1,2 @@ -<?xml version="1.0"?> -<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.0"> -<head profile="http://www.w3.org/1999/xhtml/vocab"> -<title>RDFa Document</title> -<meta nane="generator" value="RDF::RDFa::Generator::HTML::Pretty"/> -</head> -<body> -<h1>RDFa Document</h1> -<p><small>Generated by RDF::RDFa::Generator::HTML::Pretty.</small></p> -<div xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><div about="http://example.net/"><h3 class="resource">http://example.net/</h3><span class="rdf-type" rel="rdf:type"><img about="http://xmlns.com/foaf/0.1/Document" alt="http://xmlns.com/foaf/0.1/Document" src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXH [...] -</html> +<link rel=stylesheet href="example1.css"> +<div xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><div id="id-_:r049E17D46FDF11DF9B46D954215DFA7Br0" about="[_:r049E17D46FDF11DF9B46D954215DFA7Br0]"><h3 class="blank">_:r049E17D46FDF11DF9B46D954215DFA7Br0</h3><span class="rdf-type" rel="rdf:type"><img about="http://xmlns.com/foaf/0.1/Person" alt="http://xmlns.com/foaf/0.1/Person" src="data:image/gif;base [...] diff --git a/example1.css b/example1.css index fe9c401..1357dcb 100644 --- a/example1.css +++ b/example1.css @@ -31,3 +31,16 @@ div > div dl dt font-style: italic; font-size: smaller; } + +dd.seeAlso a, a[rel="seeAlso"] +{ + background: transparent url("data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEsSURBVDjLY/j//z8DJZhhmBuQvdj8a+p8w//xc3U5yTIgeb7h18bNUf/DZ2j8958qz0nQgPyltv9zF5v/TV9o/Ddxrv7fmvWh/1ednvi/ZLX/f9d+8b+23YI8eA0AOvn/hnPT/q89OwWsccXpCf8n7Cn5v/B41/+MpW7/TdvZ/+o2M/LjNADoZLDmvl35/zt3ZP9v3Zb2v2Fz4v+mren/Zxxq/h+zwOa/aj3DH5wGRM/W/L/y1IT/S0/0/l94rOv/vKMdQEOy/k8/1PQ/banHf8VahlfSlQwGOA0InK74z3Oi9D/nftF/1t38/+LmW/2f [...] + color: #393; + padding: 0 0 0 16px; + text-decoration: none; + font-size: 80%; +} +dd.seeAlso a[rel="seeAlso"] +{ + font-size: 100%; +} \ No newline at end of file diff --git a/example1.pl b/example1.pl index 0038b3d..ef64efe 100644 --- a/example1.pl +++ b/example1.pl @@ -23,5 +23,5 @@ my $graph = rdf_parse(<<TURTLE, type=>'turtle'); TURTLE -print RDF::RDFa::Generator->new(style=>'HTML::Pretty')->create_document($graph)->toString; - +my @nodes = RDF::RDFa::Generator->new(style=>'HTML::Pretty')->nodes($graph,id_prefix=>'id-',interlink=>'see also'); +print $_->toString foreach @nodes; diff --git a/lib/RDF/RDFa/Generator.pm b/lib/RDF/RDFa/Generator.pm index 78a5c36..938e436 100644 --- a/lib/RDF/RDFa/Generator.pm +++ b/lib/RDF/RDFa/Generator.pm @@ -13,7 +13,7 @@ package RDF::RDFa::Generator; use 5.008; use common::sense; -our $VERSION = '0.05'; +our $VERSION = '0.06'; use RDF::RDFa::Generator::HTML::Head; use RDF::RDFa::Generator::HTML::Hidden; diff --git a/lib/RDF/RDFa/Generator/HTML/Head.pm b/lib/RDF/RDFa/Generator/HTML/Head.pm index f4870a7..f599aef 100644 --- a/lib/RDF/RDFa/Generator/HTML/Head.pm +++ b/lib/RDF/RDFa/Generator/HTML/Head.pm @@ -6,7 +6,7 @@ use common::sense; use Encode qw'encode_utf8'; use XML::LibXML qw':all'; -our $VERSION = '0.05'; +our $VERSION = '0.06'; sub new { diff --git a/lib/RDF/RDFa/Generator/HTML/Hidden.pm b/lib/RDF/RDFa/Generator/HTML/Hidden.pm index a69ead3..6645f50 100644 --- a/lib/RDF/RDFa/Generator/HTML/Hidden.pm +++ b/lib/RDF/RDFa/Generator/HTML/Hidden.pm @@ -5,7 +5,7 @@ use base qw'RDF::RDFa::Generator::HTML::Head'; use common::sense; use XML::LibXML qw':all'; -our $VERSION = '0.05'; +our $VERSION = '0.06'; sub injection_site { diff --git a/lib/RDF/RDFa/Generator/HTML/Pretty.pm b/lib/RDF/RDFa/Generator/HTML/Pretty.pm index f6b34dc..1c48965 100644 --- a/lib/RDF/RDFa/Generator/HTML/Pretty.pm +++ b/lib/RDF/RDFa/Generator/HTML/Pretty.pm @@ -9,7 +9,7 @@ use Icon::FamFamFam::Silk; use RDF::RDFa::Generator::HTML::Pretty::Note; use XML::LibXML qw':all'; -our $VERSION = '0.05'; +our $VERSION = '0.06'; sub create_document { @@ -53,14 +53,17 @@ sub nodes push @{ $subjects->{$s} }, $st; } - foreach my $s (keys %$subjects) + foreach my $s (sort keys %$subjects) { my $subject_node = $root_node->addNewChild(XHTML_NS, 'div'); + my $id = _make_id($s, $opts{'id_prefix'}); + $subject_node->setAttribute('id', $id) if defined $id; + $self->_process_subject($subjects->{$s}->[0], $subject_node, $prefixes); $self->_resource_heading($subjects->{$s}->[0]->subject, $subject_node, $subjects->{$s}, $prefixes); $self->_resource_classes($subjects->{$s}->[0]->subject, $subject_node, $subjects->{$s}, $prefixes); - $self->_resource_statements($subjects->{$s}->[0]->subject, $subject_node, $subjects->{$s}, $prefixes); + $self->_resource_statements($subjects->{$s}->[0]->subject, $subject_node, $subjects->{$s}, $prefixes, $opts{'interlink'}||0, $opts{'id_prefix'}, $model); $self->_resource_notes($subjects->{$s}->[0]->subject, $subject_node, $model, $opts{'notes_heading'}||'Notes', $opts{'notes'}) if defined $opts{'notes'}; } @@ -93,6 +96,19 @@ sub nodes return $nodelist; } +sub _make_id +{ + my ($ident, $prefix) = @_; + + if ($prefix =~ /^[A-Za-z][A-Za-z0-9\_\:\.\-]*$/) + { + $ident =~ s/([^A-Za-z0-9\_\:\.])/sprintf('-%x-',ord($1))/ge; + return $prefix . $ident; + } + + return undef; +} + sub _resource_heading { my ($self, $subject, $node, $statements, $prefixes) = @_; @@ -139,7 +155,7 @@ sub _resource_classes sub _resource_statements { - my ($self, $subject, $node, $statements, $prefixes) = @_; + my ($self, $subject, $node, $statements, $prefixes, $interlink, $id_prefix, $model) = @_; my @statements = sort { $a->predicate->uri cmp $b->predicate->uri @@ -164,34 +180,35 @@ sub _resource_statements $DT->setAttribute('title', $st->predicate->uri); $DT->appendTextNode($self->_make_curie($st->predicate->uri, $prefixes)); } + $current_property = $st->predicate->uri; my $DD = $DL->addNewChild(XHTML_NS, 'dd'); if ($st->object->is_resource && $st->object->uri =~ /^javascript:/i) { - $DD->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); $DD->setAttribute('class', 'resource'); my $A = $DD->addNewChild(XHTML_NS, 'span'); - $A->setAttribute('about', $st->object->uri); + $A->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); + $A->setAttribute('resource', $st->object->uri); $A->appendTextNode($st->object->uri); } elsif ($st->object->is_resource) { - $DD->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); $DD->setAttribute('class', 'resource'); my $A = $DD->addNewChild(XHTML_NS, 'a'); + $A->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); $A->setAttribute('href', $st->object->uri); - $A->appendTextNode($st->object->uri); + $A->appendTextNode($st->object->uri); } elsif ($st->object->is_blank) { - $DD->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); $DD->setAttribute('class', 'blank'); my $A = $DD->addNewChild(XHTML_NS, 'span'); - $A->setAttribute('about', '[_:'.$st->object->blank_identifier.']'); + $A->setAttribute('rel', $self->_make_curie($st->predicate->uri, $prefixes)); + $A->setAttribute('resource', '[_:'.$st->object->blank_identifier.']'); $A->appendTextNode('_:'.$st->object->blank_identifier); } elsif ($st->object->is_literal @@ -230,6 +247,62 @@ sub _resource_statements $DD->setAttribute('datatype', $self->_make_curie($st->object->literal_datatype, $prefixes)); $DD->appendTextNode(encode_utf8($st->object->literal_value)); } + + if ($interlink && !$st->object->is_literal) + { + if ($model->count_statements($st->object, undef, undef)) + { + $DD->appendTextNode(' '); + my $seealso = $DD->addNewChild(XHTML_NS, 'a'); + $seealso->setAttribute('about', $st->object->is_resource ? $st->object->uri : '[_:'.$st->object->blank_identifier.']'); + $seealso->setAttribute('rel', 'seeAlso'); + $seealso->setAttribute('href', '#'._make_id($st->object->is_resource ? $st->object->uri : $st->object->blank_identifier, $id_prefix)); + $seealso->appendTextNode($interlink); + } + } + } + + if ($interlink) + { + my $iter = $model->get_statements(undef, undef, $subject); + if ($iter->peek) + { + my $seealsoDT = $DL->addNewChild(XHTML_NS, 'dt'); + $seealsoDT->setAttribute('class', 'seeAlso'); + $seealsoDT->appendTextNode($interlink); + + my $sadata = {}; + while (my $sast = $iter->next) + { + my $sas = $sast->subject->is_resource ? $sast->subject->uri : $sast->subject->blank_identifier; + my $p = $self->_make_curie($sast->predicate->uri, $prefixes); + $sadata->{$sas}->{$p} = $sast->predicate->uri; + } + + my $seealso = $DL->addNewChild(XHTML_NS, 'dd'); + $seealso->setAttribute('class', 'seeAlso'); + my @keys = sort keys %$sadata; + foreach my $sas (@keys) + { + my $span = $seealso->addNewChild(XHTML_NS, 'span'); + $span->appendTextNode('is '); + my @pkeys = sort keys %{$sadata->{$sas}}; + foreach my $curie (@pkeys) + { + my $i = $span->addNewChild(XHTML_NS, 'i'); + $i->appendTextNode($curie); + $i->setAttribute(title => $sadata->{$sas}->{$curie}); + $seealso->appendTextNode( $curie eq $pkeys[-1] ? '' : ', ' ); + } + $span->appendTextNode(' of '); + my $a = $span->addNewChild(XHTML_NS, 'a'); + $a->setAttribute('about', $sas !~ /^_:/ ? $sas : '[_:'.$sas.']'); + $a->setAttribute('rel', 'seeAlso'); + $a->setAttribute('href', '#'._make_id($sas, $id_prefix)); + $a->appendTextNode($sas); + $seealso->appendTextNode( $sas eq $keys[-1] ? '.' : '; ' ); + } + } } return $self; diff --git a/lib/RDF/RDFa/Generator/HTML/Pretty/Note.pm b/lib/RDF/RDFa/Generator/HTML/Pretty/Note.pm index 8cc4ea3..c8a496f 100644 --- a/lib/RDF/RDFa/Generator/HTML/Pretty/Note.pm +++ b/lib/RDF/RDFa/Generator/HTML/Pretty/Note.pm @@ -11,7 +11,7 @@ use common::sense; use constant XHTML_NS => 'http://www.w3.org/1999/xhtml'; use XML::LibXML qw':all'; -our $VERSION = '0.05'; +our $VERSION = '0.06'; =head1 DESCRIPTION -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/librdf-rdfa-generator-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits