calendar: all dependencies are contentless

master
Joey Hess 2009-10-04 16:05:41 -04:00
parent e529c561f5
commit a6689f9c7a
2 changed files with 15 additions and 12 deletions

View File

@ -104,19 +104,22 @@ sub format_month (@) {
"$archivebase/$year/".sprintf("%02d", $month), "$archivebase/$year/".sprintf("%02d", $month),
linktext => " $monthname "); linktext => " $monthname ");
} }
add_depends($params{page}, "$archivebase/$year/".sprintf("%02d", $month)); add_depends($params{page}, "$archivebase/$year/".sprintf("%02d", $month),
content => 0);
if (exists $cache{$pagespec}{"$pyear/$pmonth"}) { if (exists $cache{$pagespec}{"$pyear/$pmonth"}) {
$purl = htmllink($params{page}, $params{destpage}, $purl = htmllink($params{page}, $params{destpage},
"$archivebase/$pyear/" . sprintf("%02d", $pmonth), "$archivebase/$pyear/" . sprintf("%02d", $pmonth),
linktext => " $pmonthname "); linktext => " $pmonthname ");
} }
add_depends($params{page}, "$archivebase/$pyear/".sprintf("%02d", $pmonth)); add_depends($params{page}, "$archivebase/$pyear/".sprintf("%02d", $pmonth),
content => 0);
if (exists $cache{$pagespec}{"$nyear/$nmonth"}) { if (exists $cache{$pagespec}{"$nyear/$nmonth"}) {
$nurl = htmllink($params{page}, $params{destpage}, $nurl = htmllink($params{page}, $params{destpage},
"$archivebase/$nyear/" . sprintf("%02d", $nmonth), "$archivebase/$nyear/" . sprintf("%02d", $nmonth),
linktext => " $nmonthname "); linktext => " $nmonthname ");
} }
add_depends($params{page}, "$archivebase/$nyear/".sprintf("%02d", $nmonth)); add_depends($params{page}, "$archivebase/$nyear/".sprintf("%02d", $nmonth),
content => 0);
# Start producing the month calendar # Start producing the month calendar
$calendar=<<EOF; $calendar=<<EOF;
@ -209,11 +212,11 @@ EOF
# Add dependencies to update the calendar whenever pages # Add dependencies to update the calendar whenever pages
# matching the pagespec are added or removed. # matching the pagespec are added or removed.
add_depends($params{page}, $params{pages}); add_depends($params{page}, $params{pages}, content => 0);
# Explicitly add all currently linked pages as dependencies, so # Explicitly add all currently linked pages as dependencies, so
# that if they are removed, the calendar will be sure to be updated. # that if they are removed, the calendar will be sure to be updated.
foreach my $p (@list) { foreach my $p (@list) {
add_depends($params{page}, $p); add_depends($params{page}, $p, content => 0);
} }
return $calendar; return $calendar;
@ -246,19 +249,19 @@ sub format_year (@) {
"$archivebase/$year", "$archivebase/$year",
linktext => "$year"); linktext => "$year");
} }
add_depends($params{page}, "$archivebase/$year"); add_depends($params{page}, "$archivebase/$year", content => 0);
if (exists $cache{$pagespec}{"$pyear"}) { if (exists $cache{$pagespec}{"$pyear"}) {
$purl = htmllink($params{page}, $params{destpage}, $purl = htmllink($params{page}, $params{destpage},
"$archivebase/$pyear", "$archivebase/$pyear",
linktext => "\&larr;"); linktext => "\&larr;");
} }
add_depends($params{page}, "$archivebase/$pyear"); add_depends($params{page}, "$archivebase/$pyear", content => 0);
if (exists $cache{$pagespec}{"$nyear"}) { if (exists $cache{$pagespec}{"$nyear"}) {
$nurl = htmllink($params{page}, $params{destpage}, $nurl = htmllink($params{page}, $params{destpage},
"$archivebase/$nyear", "$archivebase/$nyear",
linktext => "\&rarr;"); linktext => "\&rarr;");
} }
add_depends($params{page}, "$archivebase/$nyear"); add_depends($params{page}, "$archivebase/$nyear", content => 0);
# Start producing the year calendar # Start producing the year calendar
$calendar=<<EOF; $calendar=<<EOF;
@ -310,7 +313,7 @@ EOF
else { else {
$calendar.=qq{\t<td class="$tag">$monthabbr</td>\n}; $calendar.=qq{\t<td class="$tag">$monthabbr</td>\n};
} }
add_depends($params{page}, "$archivebase/$year/$mtag"); add_depends($params{page}, "$archivebase/$year/$mtag", content => 0);
$calendar.=qq{\t</tr>\n} if ($month % $params{months_per_row} == 0); $calendar.=qq{\t</tr>\n} if ($month % $params{months_per_row} == 0);
} }

6
debian/changelog vendored
View File

@ -13,9 +13,9 @@ ikiwiki (3.14159266) UNRELEASED; urgency=low
* Added support framework for multiple types of dependencies. * Added support framework for multiple types of dependencies.
* Allow declaring that a dependency does not encompass the content of a * Allow declaring that a dependency does not encompass the content of a
page. (By passing content => 0 to add_depends.) page. (By passing content => 0 to add_depends.)
* pagecount: Use a contentless dependency, which makes this * pagecount, calendar: Use a contentless dependency, which makes these
directive much less expensive to use, since page edits will directives much less expensive to use, since page edits will
no longer trigger an unnecessary update of the page count. no longer trigger an unnecessary update.
* map: Use a contentless dependency unless show= is specified. * map: Use a contentless dependency unless show= is specified.
This makes simple maps efficient enough that they can be used on sidebars! This makes simple maps efficient enough that they can be used on sidebars!
* inline: Use a contentless dependency in quick mode. * inline: Use a contentless dependency in quick mode.