diff --git a/IkiWiki/Plugin/pagestats.pm b/IkiWiki/Plugin/pagestats.pm index 460a5969a..ac0a463e3 100644 --- a/IkiWiki/Plugin/pagestats.pm +++ b/IkiWiki/Plugin/pagestats.pm @@ -31,6 +31,19 @@ sub getsetup () { }, } +sub linktext ($%) { + # Return the text of the link to a tag, depending on option linktext. + my ($page, %params) = @_; + if (exists $params{show} && + exists $pagestate{$page} && + exists $pagestate{$page}{meta}{$params{show}}) { + return $pagestate{$page}{meta}{$params{show}}; + } + else { + return undef; + } +} + sub preprocess (@) { my %params=@_; $params{pages}="*" unless defined $params{pages}; @@ -84,7 +97,7 @@ sub preprocess (@) { return "\n". join("\n", map { "" } sort { $counts{$b} <=> $counts{$a} } keys %counts). @@ -107,7 +120,7 @@ sub preprocess (@) { $res.="
  • " if $style eq 'list'; $res .= "". - htmllink($params{page}, $params{destpage}, $page). + htmllink($params{page}, $params{destpage}, $page, linktext => linktext($page, %params)). "\n"; $res.="
  • " if $style eq 'list'; diff --git a/doc/ikiwiki/directive/pagestats.mdwn b/doc/ikiwiki/directive/pagestats.mdwn index 8d2be0946..ab8397366 100644 --- a/doc/ikiwiki/directive/pagestats.mdwn +++ b/doc/ikiwiki/directive/pagestats.mdwn @@ -40,4 +40,10 @@ that name still works, if its value is numeric. The optional `class` parameter can be used to control the class of the generated tag cloud `div` or page stats `table`. +By default, the names of pages are shown. The `show` parameter +can be used (with a non-numeric value) to show the titles or descriptions +of pages instead (as set by the [[meta]] directive). For example: + + \[[!pagestats pages="tags/*" show="title"]] + [[!meta robots="noindex, follow"]]
    ". - htmllink($params{page}, $params{destpage}, $_, noimageinline => 1). + htmllink($params{page}, $params{destpage}, $_, noimageinline => 1, linktext => linktext($_, %params)). "".$counts{$_}."