You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/01/28 02:20:48 UTC
svn commit: r1236952 - in /openejb/site/trunk: content/sitemap.xml
lib/path.pm lib/view.pm
Author: dblevins
Date: Sat Jan 28 01:20:47 2012
New Revision: 1236952
URL: http://svn.apache.org/viewvc?rev=1236952&view=rev
Log:
Ability to generate a google sitemap.xml
Added:
openejb/site/trunk/content/sitemap.xml
Modified:
openejb/site/trunk/lib/path.pm
openejb/site/trunk/lib/view.pm
Added: openejb/site/trunk/content/sitemap.xml
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/sitemap.xml?rev=1236952&view=auto
==============================================================================
(empty)
Modified: openejb/site/trunk/lib/path.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/path.pm?rev=1236952&r1=1236951&r2=1236952&view=diff
==============================================================================
--- openejb/site/trunk/lib/path.pm (original)
+++ openejb/site/trunk/lib/path.pm Sat Jan 28 01:20:47 2012
@@ -27,6 +27,8 @@ our @patterns = (
[qr!dev/index\.html$!, sitemap => { headers => { title => "Project Resources" }} ],
+ [qr!sitemap.xml$!, sitemapxml => { headers => { }} ],
+
);
@@ -37,6 +39,7 @@ our @patterns = (
our %dependencies = (
"/sitemap.html" => [ grep s!^content!!, glob "content/*.mdtext" ],
+ "/sitemap.xml" => [ grep s!^content!!, glob "content/*.mdtext" ],
"/dev/index.html" => [ grep s!^content!!, glob "content/dev/*.mdtext" ],
);
Modified: openejb/site/trunk/lib/view.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/view.pm?rev=1236952&r1=1236951&r2=1236952&view=diff
==============================================================================
--- openejb/site/trunk/lib/view.pm (original)
+++ openejb/site/trunk/lib/view.pm Sat Jan 28 01:20:47 2012
@@ -169,6 +169,56 @@ sub sitemap {
# return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
}
+sub sitemapxml {
+ my %args = @_;
+ my $template = "content/$args{path}";
+ $args{base} = _base($args{path});
+
+ my $dir = $template;
+ $dir =~ s!/[^/]+$!!;
+ opendir my $dh, $dir or die "Can't opendir $dir: $!\n";
+ my %data;
+ for (map "$dir/$_", grep $_ ne "." && $_ ne ".." && $_ ne ".svn", readdir $dh) {
+ if (-f and /\.md(text)?$/) {
+ my $file = $_;
+ $file =~ s/^content//;
+ no warnings 'once';
+ for my $p (@path::patterns) {
+ my ($re, $method, $args) = @$p;
+ next unless $file =~ $re;
+ my $s = view->can($method) or die "Can't locate method: $method\n";
+ my ($content, $ext, $vars) = $s->(path => $file, %$args);
+ $file =~ s/\.mdtext$/.$ext/;
+ $data{$file} = $vars;
+ last;
+ }
+ }
+ }
+
+ my $content .= '<?xml version="1.0" encoding="utf-8"?>' . "\n";
+ $content .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
+
+ for (sort keys %data) {
+ my $link = $_;
+ $link =~ s,.*/,,;
+
+ $content .= " <url>\n";
+ $content .= " <loc>http://tomee.apache.org/$link</loc>\n";
+
+ if ($link =~ m/tomcat/) {
+ $content .= " <priority>0.8</priority>\n";
+ }
+
+ $content .= " </url>\n";
+ }
+
+ $content .= "</urlset>\n";
+
+ $args{content} = $content;
+
+ return ($content, 'xml', \%args);
+}
+
sub _breadcrumbs {
my $path = shift;