diff options
author | Joey Hess <joey@kitenet.net> | 2010-05-08 13:51:05 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-05-08 13:51:05 -0400 |
commit | d0c17a4a46b48d8513c0167271f2f2eb8b9bc081 (patch) | |
tree | 865bd7e1cc2865bd595bfa23b8eb20f2632a25b0 /IkiWiki/Plugin/calendar.pm | |
parent | 1cf4536289396726f0ee858f46a3f133d1675c68 (diff) | |
download | ikiwiki-d0c17a4a46b48d8513c0167271f2f2eb8b9bc081.tar ikiwiki-d0c17a4a46b48d8513c0167271f2f2eb8b9bc081.tar.gz |
calendar: Display year name in title of month calendar.
Also, fix relative month calculations.
Diffstat (limited to 'IkiWiki/Plugin/calendar.pm')
-rw-r--r-- | IkiWiki/Plugin/calendar.pm | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/IkiWiki/Plugin/calendar.pm b/IkiWiki/Plugin/calendar.pm index d43320cac..0bf933dcd 100644 --- a/IkiWiki/Plugin/calendar.pm +++ b/IkiWiki/Plugin/calendar.pm @@ -132,12 +132,12 @@ sub format_month (@) { $archivebase = $params{archivebase} if defined $params{archivebase}; # Calculate URL's for monthly archives. - my ($url, $purl, $nurl)=("$monthname",'',''); + my ($url, $purl, $nurl)=("$monthname $params{year}",'',''); if (exists $pagesources{"$archivebase/$params{year}/$params{month}"}) { $url = htmllink($params{page}, $params{destpage}, "$archivebase/$params{year}/".$params{month}, noimageinline => 1, - linktext => $monthname, + linktext => "$monthname $params{year}", title => $monthname); } add_depends($params{page}, "$archivebase/$params{year}/$params{month}", @@ -396,15 +396,20 @@ sub preprocess (@) { $params{year} = $thisyear unless defined $params{year}; $params{month} = $thismonth unless defined $params{month}; - my $relativemonth=0; - if ($params{month} < 1) { - $params{month}=$thismonth+$params{month}; - $relativemonth=1; - } my $relativeyear=0; if ($params{year} < 1) { - $params{year}=$thisyear+$params{year}; $relativeyear=1; + $params{year}=$thisyear+$params{year}; + } + my $relativemonth=0; + if ($params{month} < 1) { + $relativemonth=1; + my $monthoff=$params{month}; + $params{month}=($thismonth+$monthoff) % 12; + $params{month}=12 if $params{month}==0; + my $yearoff=POSIX::ceil(($thismonth-$params{month}) / -12) + - int($monthoff / 12); + $params{year}-=$yearoff; } $params{month} = sprintf("%02d", $params{month}); |