enhance pagestats and rework example blog front page
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 15 Apr 2010 18:29:14 +0000 (14:29 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 15 Apr 2010 18:29:14 +0000 (14:29 -0400)
* pagestats: Class parameter can be used to override default class for
  custom styling.
* pagestats: Use style=list to get a list of tags, scaled by use like
  in a tag cloud. This is useful to put in a sidebar.
* Rework example blog front page.

IkiWiki/Plugin/pagestats.pm
debian/changelog
doc/examples/blog/archives.mdwn [new file with mode: 0644]
doc/examples/blog/comments.mdwn
doc/examples/blog/index.mdwn
doc/ikiwiki/directive/pagestats.mdwn

index 1c0b46830163da3872a0e4b62f0db4960ca3605c..48715bd3e18348fa77da30ba05ceaad0b1e3a9ca 100644 (file)
@@ -75,7 +75,7 @@ sub preprocess (@) {
        }
 
        if ($style eq 'table') {
-               return "<table class='pageStats'>\n".
+               return "<table class='".(exists $params{class} ? $params{class} : "pageStats")."'>\n".
                        join("\n", map {
                                "<tr><td>".
                                htmllink($params{page}, $params{destpage}, $_, noimageinline => 1).
@@ -87,16 +87,31 @@ sub preprocess (@) {
        else {
                # In case of misspelling, default to a page cloud
 
-               my $res = "<div class='pagecloud'>\n";
+               my $res;
+               if ($style eq 'list') {
+                       $res = "<ul class='".(exists $params{class} ? $params{class} : "list")."'>\n";
+               }
+               else {
+                       $res = "<div class='".(exists $params{class} ? $params{class} : "pagecloud")."'>\n";
+               }
                foreach my $page (sort keys %counts) {
                        next unless $counts{$page} > 0;
 
                        my $class = $classes[$counts{$page} * scalar(@classes) / ($max + 1)];
+                       
+                       $res.="<li>" if $style eq 'list';
                        $res .= "<span class=\"$class\">".
                                htmllink($params{page}, $params{destpage}, $page).
                                "</span>\n";
+                       $res.="</li>" if $style eq 'list';
+
+               }
+               if ($style eq 'list') {
+                       $res = "</ul>\n";
+               }
+               else {
+                       $res .= "</div>\n";
                }
-               $res .= "</div>\n";
 
                return $res;
        }
index 7c607b2a55c4104783724b77102606d08a16227d..c2b0c3c23987e76de100f700032750a8a1464779 100644 (file)
@@ -31,6 +31,11 @@ ikiwiki (3.20100410) UNRELEASED; urgency=low
     specify which pages to include on the calendar archive pages.
     (The pagespec can still also be specified on the ikiwiki-calendar command
     line.)
+  * pagestats: Class parameter can be used to override default class for
+    custom styling.
+  * pagestats: Use style=list to get a list of tags, scaled by use like
+    in a tag cloud. This is useful to put in a sidebar.
+  * Rework example blog front page.
 
  -- Joey Hess <joeyh@debian.org>  Sun, 04 Apr 2010 12:17:11 -0400
 
diff --git a/doc/examples/blog/archives.mdwn b/doc/examples/blog/archives.mdwn
new file mode 100644 (file)
index 0000000..14686cd
--- /dev/null
@@ -0,0 +1,7 @@
+[[!if test="enabled(calendar)" then="""
+Browse through blog archives by year:
+[[!map pages="./archives/* and !./archives/*/* and !*/Discussion"]]
+"""
+else="""
+Calendar based archives are not enabled. See [[posts]] for a full list of posts.
+"""]]
index 4735dea08f8c87813a56a340f3c0bb55d8b09ff6..0b503ba0198057b9b23d898d6f5bcfbd5ed3b9ad 100644 (file)
@@ -1,3 +1,3 @@
-This page will show all comments made to posts in my [[blog|index]].
+This page will show recent comments made to posts in the [[blog|index]].
 
 [[!inline pages="./posts/*/Discussion or internal(./posts/*/comment_*)"]]
index 01b714fcdfbcd6744a962bbe9f5bdf24f8dd021e..b273ba1a9b3d4740b4531f157f8b2f0ffe10b6f5 100644 (file)
@@ -1,9 +1,13 @@
-[[!pagestats pages="./tags/*" among="./posts/*"]]
+[[!template id=note text="""
 
-Welcome to my blog.
+* [[Tags]]: [[!pagestats style="list" pages="./tags/*" among="./posts/*"]]
+* [[Recent_Comments|comments]]
+* [[Archives]]
 
-Have a look at the most recent posts below, or browse the tag cloud on the
-right. Archives of all [[posts]] and all [[comments]] are also available.
+[[!if test="enabled(calendar)" then="""
+[[!calendar pages="./posts/* and !*/Discussion"]]
+
+"""]]
 
 [[!inline pages="./posts/* and !*/Discussion" show="10"
 actions=yes rootpage="posts"]]
index 68f4d2734ad06f1be5c2c379a8953a3a7ac0bb51..d0e0e7be720b738859b8d6788f721b3d410ab722 100644 (file)
@@ -4,10 +4,16 @@ This directive can generate stats about how pages link to each other. It can
 produce either a tag cloud, or a table counting the number of links to each
 page.
 
-Here's how to use it to create a [[tag]] cloud:
+Here's how to use it to create a [[tag]] cloud, with tags sized based
+on frequency of use:
 
        \[[!pagestats pages="tags/*"]]
 
+Here's how to create a list of tags, sized by use as they would be in a
+cloud.
+       
+       \[[!pagestats style="list" pages="tags/*"]]
+
 And here's how to create a table of all the pages on the wiki:
 
        \[[!pagestats style="table"]]
@@ -28,4 +34,7 @@ links:
 
        \[[!pagestats style="table" show="10"]]
 
+The optional `class` parameter can be used to control the class
+of the generated tag cloud `div` or page stats `table`.
+
 [[!meta robots="noindex, follow"]]