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;