X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/95199c5b04faaf0a619b64a492f46a785e4e4d60..b30fed47ea20c4b04c1cf9c68b6d69cfa0612c3a:/IkiWiki/Plugin/inline.pm diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 0b3d5e406..b16636a70 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -8,6 +8,9 @@ use Encode; use IkiWiki 2.00; use URI; +my %knownfeeds; +my %page_numfeeds; + sub import { #{{{ hook(type => "getopt", id => "inline", call => \&getopt); hook(type => "checkconfig", id => "inline", call => \&checkconfig); @@ -149,9 +152,29 @@ sub preprocess_inline (@) { #{{{ # that if they are removed or otherwise changed, the inline will be # sure to be updated. add_depends($params{page}, join(" or ", @list)); + + my $feednum=""; + + my $feedid=join("\0", map { $_."\0".$params{$_} } sort keys %params); + if (exists $knownfeeds{$feedid}) { + $feednum=$knownfeeds{$feedid}; + } + else { + if (exists $page_numfeeds{$params{destpage}}) { + if ($feeds) { + $feednum=$knownfeeds{$feedid}=++$page_numfeeds{$params{destpage}}; + } + } + else { + $feednum=$knownfeeds{$feedid}=""; + if ($feeds) { + $page_numfeeds{$params{destpage}}=1; + } + } + } - my $rssurl=basename(rsspage($params{page})); - my $atomurl=basename(atompage($params{page})); + my $rssurl=basename(rsspage($params{destpage}).$feednum) if $feeds && $rss; + my $atomurl=basename(atompage($params{destpage}).$feednum) if $feeds && $atom; my $ret=""; if ($config{cgiurl} && (exists $params{rootpage} || @@ -202,7 +225,7 @@ sub preprocess_inline (@) { #{{{ } $template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage})); $template->param(title => pagetitle(basename($page))); - $template->param(ctime => displaytime($pagectime{$page})); + $template->param(ctime => displaytime($pagectime{$page}, $params{timeformat})); if ($actions) { my $file = $pagesources{$page}; @@ -215,7 +238,7 @@ sub preprocess_inline (@) { #{{{ $template->param(have_actions => 1); $template->param(discussionlink => htmllink($page, - $params{page}, + $params{destpage}, gettext("Discussion"), noimageinline => 1, forcesubpage => 1)); @@ -228,7 +251,7 @@ sub preprocess_inline (@) { #{{{ } run_hooks(pagetemplate => sub { - shift->(page => $page, destpage => $params{page}, + shift->(page => $page, destpage => $params{destpage}, template => $template,); }); @@ -238,9 +261,9 @@ sub preprocess_inline (@) { #{{{ else { if (defined $type) { $ret.="\n". - linkify($page, $params{page}, - preprocess($page, $params{page}, - filter($page, $params{page}, + linkify($page, $params{destpage}, + preprocess($page, $params{destpage}, + filter($page, $params{destpage}, readfile(srcfile($file))))); } } @@ -256,19 +279,19 @@ sub preprocess_inline (@) { #{{{ } if ($rss) { - my $rssp=rsspage($params{page}); - will_render($params{page}, $rssp); + my $rssp=rsspage($params{destpage}).$feednum; + will_render($params{destpage}, $rssp); writefile($rssp, $config{destdir}, - genfeed("rss", $rssurl, $desc, $params{page}, @list)); - $toping{$params{page}}=1 unless $config{rebuild}; + genfeed("rss", $rssurl, $desc, $params{destpage}, @list)); + $toping{$params{destpage}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}=qq{}; } if ($atom) { - my $atomp=atompage($params{page}); - will_render($params{page}, $atomp); + my $atomp=atompage($params{destpage}).$feednum; + will_render($params{destpage}, $atomp); writefile($atomp, $config{destdir}, - genfeed("atom", $atomurl, $desc, $params{page}, @list)); - $toping{$params{page}}=1 unless $config{rebuild}; + genfeed("atom", $atomurl, $desc, $params{destpage}, @list)); + $toping{$params{destpage}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}=qq{}; } }