X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=events.pm;h=5994ba6571c94174bcae84d89c7d6f69eb5afbe2;hb=refs%2Fheads%2Fmaster;hp=e892d10c1548ad2bfa8d19e8aa665a0b8641f6cf;hpb=d0d09f26ee4f7303bd4fc80003f2233ea5549f22;p=ikiwiki%2Fevents.git diff --git a/events.pm b/events.pm index e892d10..5994ba6 100644 --- a/events.pm +++ b/events.pm @@ -202,7 +202,9 @@ sub event_of_page ($%) { (keys %{$IkiWiki::typedlinks{$event}{tag}})); @tags = map { - my $tag = $_; + my $tag_best = bestlink($params{page}, $_); + $tag_best = (length $tag_best > 0 ? $tag_best : bestlink($event, $_)); + my $tag = (length $tag_best > 0 ? $tag_best : $_); my $title = exists $pagestate{$tag}{meta}{title} ? $pagestate{$tag}{meta}{title} @@ -211,11 +213,12 @@ sub event_of_page ($%) { = htmllink ( $params{page} , $params{destpage} - , '/'.$tag + , $tag , linktext => $title , noimageinline => 1 , title => $title ); - add_depends($params{page}, $event, deptype('content')); + #add_depends($params{page}, $event, deptype('content')); + # NOTE: useless now that deptype('content') is default. #add_depends($params{page}, $tag, deptype('content')); # XXX: much too heavy :\ and midnight refresh may fix it anyway. my $class = qq{$tag}; @@ -288,7 +291,7 @@ sub event_html ($$%) { , $date->year() ); add_depends($params{page}, $year_page, deptype("presence")); - if ($pagesources{$year_page}) { + if (exists $pagesources{$year_page}) { $year_html = htmllink ( $params{page} @@ -307,7 +310,7 @@ sub event_html ($$%) { , $date->month() ); add_depends($params{page}, $month_page, deptype("presence")); - if ($pagesources{$month_page}) { + if (exists $pagesources{$month_page}) { $month_html = htmllink ( $params{page} @@ -327,7 +330,7 @@ sub event_html ($$%) { , $date->day() ); add_depends($params{page}, $day_page, deptype("presence")); - if ($pagesources{$day_page}) { + if (exists $pagesources{$day_page}) { $day_html = htmllink ( $params{page} @@ -368,8 +371,8 @@ sub preprocess_day (@) { = pagespec_match_list ( $params{page} , $params{pages} - , deptype => deptype("presence") - # NOTE: add presence dependencies to update calendar when pages are added/removed + , deptype => deptype("content") + # NOTE: add content dependency to update calendar when pages are tagged ); my $event_html = event_html @@ -414,13 +417,15 @@ sub preprocess_month (@) { = pagespec_match_list ( $params{page} , $params{pages} - , deptype => deptype("presence") - # NOTE: add presence dependencies to update calendar when pages are added/removed + , deptype => deptype("content") + # NOTE: add presence dependency to update calendar when pages are tagged ); my %events_by_day = map {($_=>[])} (1 .. $last_day); foreach my $event (events_of_pages(\@pages, %params)) { - push @{$events_by_day{$event->{date}->{day}}}, $event; + my $day = $event->{date}->{day}; + push @{$events_by_day{$day}}, $event + if defined $day; } my $t='