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/18 23:39:45 UTC

svn commit: r1233099 - in /openejb/site/trunk: content/dev/index.html content/dev/index.mdtext content/sitemap.html lib/path.pm lib/view.pm

Author: dblevins
Date: Wed Jan 18 22:39:45 2012
New Revision: 1233099

URL: http://svn.apache.org/viewvc?rev=1233099&view=rev
Log:
Sitemap

Added:
    openejb/site/trunk/content/dev/index.html   (with props)
    openejb/site/trunk/content/sitemap.html   (with props)
Removed:
    openejb/site/trunk/content/dev/index.mdtext
Modified:
    openejb/site/trunk/lib/path.pm
    openejb/site/trunk/lib/view.pm

Added: openejb/site/trunk/content/dev/index.html
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/dev/index.html?rev=1233099&view=auto
==============================================================================
--- openejb/site/trunk/content/dev/index.html (added)
+++ openejb/site/trunk/content/dev/index.html Wed Jan 18 22:39:45 2012
@@ -0,0 +1,3 @@
+{% extends "basic.html" %}
+{% block title %}SiteMap{% endblock %}
+{% block content %}{{ content|markdown }}{% endblock %}

Propchange: openejb/site/trunk/content/dev/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/sitemap.html
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/sitemap.html?rev=1233099&view=auto
==============================================================================
--- openejb/site/trunk/content/sitemap.html (added)
+++ openejb/site/trunk/content/sitemap.html Wed Jan 18 22:39:45 2012
@@ -0,0 +1,3 @@
+{% extends "basic.html" %}
+{% block title %}SiteMap{% endblock %}
+{% block content %}{{ content|markdown }}{% endblock %}

Propchange: openejb/site/trunk/content/sitemap.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openejb/site/trunk/lib/path.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/path.pm?rev=1233099&r1=1233098&r2=1233099&view=diff
==============================================================================
--- openejb/site/trunk/lib/path.pm (original)
+++ openejb/site/trunk/lib/path.pm Wed Jan 18 22:39:45 2012
@@ -22,6 +22,11 @@ our @patterns = (
 
     [qr!\.md(text)?$!, basic => { template => "doc.html" } ],
 
+    [qr!sitemap\.html$!, sitemap => { headers => { title => "Sitemap" }} ],
+
+    [qr!dev/index\.html$!, sitemap => { headers => { title => "Project Resources" }} ],
+
+
 );
 
 # The %dependecies hash is used when building pages that reference or depend
@@ -29,7 +34,10 @@ our @patterns = (
 # links to.  The keys for %dependencies are filepaths, and the values are
 # arrayrefs containing other filepaths.
 
-our %dependencies = ();
+our %dependencies = (
+    "/sitemap.html" => [ grep s!^content!!, glob "content/*.mdtext" ],
+    "/dev/index.html" => [ grep s!^content!!, glob "content/dev/*.mdtext" ],
+);
 
 1;
 

Modified: openejb/site/trunk/lib/view.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/view.pm?rev=1233099&r1=1233098&r2=1233099&view=diff
==============================================================================
--- openejb/site/trunk/lib/view.pm (original)
+++ openejb/site/trunk/lib/view.pm Wed Jan 18 22:39:45 2012
@@ -104,6 +104,60 @@ sub example {
     return ($rendered, 'html', \%args);
 }
 
+sub sitemap {
+    my %args = @_;
+    my $template = "content/$args{path}";
+#    $args{breadcrumbs} .= _breadcrumbs($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 /\.mdtext$/) {
+            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 = "";
+
+    for (sort keys %data) {
+        my $link = $_;
+        $link =~ s,.*/,,;
+
+        my $title = $data{$_}->{headers}->{title};
+        $title = $link unless $title;
+
+        $content .= "- [$title]($link)\n";
+        for my $hdr (grep /^#/, split "\n", $data{$_}->{content}) {
+            $hdr =~ /^(#+)\s+([^#]+)?\s+\1\s+\{#([^}]+)\}$/ or next;
+            my $level = length $1;
+            $level *= 4;
+            $content .= " " x $level;
+            $content .= "- [$2]($_#$3)\n";
+        }
+    }
+
+    $args{content} = $content;
+    my $rendered = Dotiac::DTL->new($template)->render(\%args);
+
+    return ($rendered, 'html', \%args);
+#    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
+}
+
+
 sub _breadcrumbs {
     my $path        = shift;
     my $base        = shift;