tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kma...@apache.org
Subject svn commit: r1133642 - in /openejb/site/trunk/lib: OpenEJBSiteDotiacFilter.pm path.pm view.pm
Date Thu, 09 Jun 2011 03:00:27 GMT
Author: kmalhi
Date: Thu Jun  9 03:00:26 2011
New Revision: 1133642

URL: http://svn.apache.org/viewvc?rev=1133642&view=rev
Log:
view.pm and path.pm are required. Adding these files as is from lucy site, with one file renamed
to OpenEJBSiteDotiacFilter.pm. Contents of these files would require updation. Throwing them
in there to fulfill the directory structure requirements of the CMS

Added:
    openejb/site/trunk/lib/OpenEJBSiteDotiacFilter.pm
    openejb/site/trunk/lib/path.pm
    openejb/site/trunk/lib/view.pm

Added: openejb/site/trunk/lib/OpenEJBSiteDotiacFilter.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/OpenEJBSiteDotiacFilter.pm?rev=1133642&view=auto
==============================================================================
--- openejb/site/trunk/lib/OpenEJBSiteDotiacFilter.pm (added)
+++ openejb/site/trunk/lib/OpenEJBSiteDotiacFilter.pm Thu Jun  9 03:00:26 2011
@@ -0,0 +1,48 @@
+package OpenEJBSiteDotiacFilter;
+use strict;
+use warnings;
+use Text::Markdown qw( markdown );
+use Dotiac::DTL::Value;
+use Dotiac::DTL::Filter;
+
+sub import {
+    *Dotiac::DTL::Filter::markdown = \&markdown_filter;
+}
+
+sub markdown_filter {
+    my $value = shift;
+
+    # Use raw value rather than escape (by calling repr() rather than
+    # string()) so that we can embed html in our .mdtext documents.
+    my $raw  = $value->repr;
+    my $html = markdown($raw);
+
+    # Blindly mark return value as safe.
+    my $retval = Dotiac::DTL::Value->safe($html);
+
+    return $retval;
+}
+
+1;
+
+__END__
+
+=head1 LICENSE
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.  The
+    ASF licenses this file to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance with the
+    License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+    License for the specific language governing permissions and limitations
+    under the License.
+
+=cut
+

Added: openejb/site/trunk/lib/path.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/path.pm?rev=1133642&view=auto
==============================================================================
--- openejb/site/trunk/lib/path.pm (added)
+++ openejb/site/trunk/lib/path.pm Thu Jun  9 03:00:26 2011
@@ -0,0 +1,44 @@
+package path;
+use strict;
+use warnings;
+
+# The @patterns array is used to map filepaths to page treatments.  Each
+# element must be an arrayref with 3 elements of its own: a regex pattern for
+# selecting filepaths, the name of the subroutine from view.pm which will be
+# invoked to generate the page, and a hashref of named parameters which will
+# be passed to the view subroutine.
+
+our @patterns = (
+    [ qr!\.mdtext$!, basic => { template => "basic.html" } ],
+);
+
+# The %dependecies hash is used when building pages that reference or depend
+# upon other pages -- e.g. a sitemap, which depends upon the pages that it
+# links to.  The keys for %dependencies are filepaths, and the values are
+# arrayrefs containing other filepaths.
+
+our %dependencies = ();
+
+1;
+
+__END__
+
+=head1 LICENSE
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.  The
+    ASF licenses this file to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance with the
+    License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+    License for the specific language governing permissions and limitations
+    under the License.
+
+=cut
+

Added: openejb/site/trunk/lib/view.pm
URL: http://svn.apache.org/viewvc/openejb/site/trunk/lib/view.pm?rev=1133642&view=auto
==============================================================================
--- openejb/site/trunk/lib/view.pm (added)
+++ openejb/site/trunk/lib/view.pm Thu Jun  9 03:00:26 2011
@@ -0,0 +1,93 @@
+package view;
+
+=head1 INTERFACE
+
+Each function within view.pm which will be used for page generation must
+implement a standard interface.
+
+    sub my_view {
+        my %args = @_;
+        ...
+        return ($content, $extension, @optional);
+    }
+
+First, each function must accept labeled parameters.  The only parameter which
+will always be present is "path"; see the documentation in path.pm for the
+"@patterns" array with regards to invocation with additional parameters.
+
+Second, each function must return a list with at least two elements: the first
+element must be the page content, and the second must be a file extention.
+Returning additional elements in the list (as some of the functions below do)
+is optional.
+
+    return ($content, 'html', \%args);
+
+The constraints imposed by this interface may cause difficulties, for example
+when you want to generate both "foo.html" and "foo.pdf".  However, it is
+usually possible to work around such issues with symlinks and dependency
+management in path.pm.
+
+=cut
+
+use strict;
+use warnings;
+use Carp;
+use Dotiac::DTL;
+use ASF::Util qw( read_text_file );
+use OpenEJBSiteDotiacFilter;
+
+BEGIN { push @Dotiac::DTL::TEMPLATE_DIRS, "templates"; }
+
+# A "basic" view, which takes 'template' and 'path' parameters.
+
+sub basic {
+    my %args = @_;
+    my $filepath = "content$args{path}";
+    read_text_file($filepath, \%args);
+    $args{path} =~ s/\.mdtext$/\.html/;
+    $args{breadcrumbs} = _breadcrumbs($args{path});
+    my $template_path = "templates/$args{template}";
+    my $rendered = Dotiac::DTL->new($template_path)->render(\%args);
+    return ($rendered, 'html', \%args);
+}
+
+sub _breadcrumbs {
+    my $path        = shift;
+    my @breadcrumbs = (
+        qq|<a href="http://www.apache.org/">Apache</a>|,
+        qq|<a href="/">Incubator</a>|,
+    );
+    my @path_components = split( m!/!, $path );
+    pop @path_components;
+    my $relpath = "";
+    for (@path_components) {
+        $relpath .= "$_/";
+        next unless $_;
+        push @breadcrumbs, qq(<a href="$relpath">\u$_</a>);
+    }
+    return join "&nbsp;&raquo&nbsp;", @breadcrumbs;
+}
+
+1;
+
+__END__
+
+=head1 LICENSE
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.  The
+    ASF licenses this file to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance with the
+    License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+    License for the specific language governing permissions and limitations
+    under the License.
+
+=cut
+



Mime
View raw message