]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/calendar.pm
fix next/prev month padding bug
[ikiwiki.git] / IkiWiki / Plugin / calendar.pm
index 5b4bfac899afe8087f6cc94f1127365a9629ce07..cf133e8dc9061305819b2ad5c84732385d930074 100644 (file)
@@ -71,7 +71,6 @@ sub format_month (@) {
                                # month calendar when pages are added/removed
                                deptype => deptype("presence"))) {
                my $mtime = $IkiWiki::pagectime{$p};
-               my $src   = $pagesources{$p};
                my @date  = localtime($mtime);
                my $mday  = $date[3];
                my $month = $date[4] + 1;
@@ -79,7 +78,7 @@ sub format_month (@) {
                my $mtag  = sprintf("%02d", $month);
 
                # Only one posting per day is being linked to.
-               $linkcache{"$year/$mtag/$mday"} = "$src";
+               $linkcache{"$year/$mtag/$mday"} = $p;
        }
                
        my $pmonth = $params{month} - 1;
@@ -97,7 +96,10 @@ sub format_month (@) {
                $nyear++;
        }
 
-       my @list;
+       # Add padding.
+       $pmonth=sprintf("%02d", $pmonth);
+       $nmonth=sprintf("%02d", $nmonth);
+
        my $calendar="\n";
 
        # When did this month start?
@@ -123,24 +125,24 @@ sub format_month (@) {
        my ($url, $purl, $nurl)=("$monthname",'','');
        if (exists $pagesources{"$archivebase/$params{year}/$params{month}"}) {
                $url = htmllink($params{page}, $params{destpage}, 
-                       "$archivebase/$params{year}/".sprintf("%02d", $params{month}),
+                       "$archivebase/$params{year}/".$params{month},
                        linktext => " $monthname ");
        }
-       add_depends($params{page}, "$archivebase/$params{year}/".sprintf("%02d", $params{month}),
+       add_depends($params{page}, "$archivebase/$params{year}/$params{month}",
                deptype("presence"));
        if (exists $pagesources{"$archivebase/$pyear/$pmonth"}) {
                $purl = htmllink($params{page}, $params{destpage}, 
-                       "$archivebase/$pyear/" . sprintf("%02d", $pmonth),
+                       "$archivebase/$pyear/$pmonth",
                        linktext => " $pmonthname ");
        }
-       add_depends($params{page}, "$archivebase/$pyear/".sprintf("%02d", $pmonth),
+       add_depends($params{page}, "$archivebase/$pyear/$pmonth",
                deptype("presence"));
        if (exists $pagesources{"$archivebase/$nyear/$nmonth"}) {
                $nurl = htmllink($params{page}, $params{destpage}, 
-                       "$archivebase/$nyear/" . sprintf("%02d", $nmonth),
+                       "$archivebase/$nyear/$nmonth",
                        linktext => " $nmonthname ");
        }
-       add_depends($params{page}, "$archivebase/$nyear/".sprintf("%02d", $nmonth),
+       add_depends($params{page}, "$archivebase/$nyear/$nmonth",
                deptype("presence"));
 
        # Start producing the month calendar
@@ -194,8 +196,7 @@ EOF
                }
                
                my $tag;
-               my $mtag = sprintf("%02d", $params{month});
-               if (defined $pagesources{"$archivebase/$params{year}/$mtag/$day"}) {
+               if (defined $linkcache{"$params{year}/$params{month}/$day"}) {
                        if ($day == $today) {
                                $tag='month-calendar-day-this-day';
                        }
@@ -204,9 +205,8 @@ EOF
                        }
                        $calendar.=qq{\t\t<td class="$tag $downame{$wday}">};
                        $calendar.=htmllink($params{page}, $params{destpage}, 
-                                           pagename($linkcache{"$params{year}/$mtag/$day"}),
+                                           $linkcache{"$params{year}/$params{month}/$day"},
                                            "linktext" => "$day");
-                       push @list, pagename($linkcache{"$params{year}/$mtag/$day"});
                        $calendar.=qq{</td>\n};
                }
                else {