hook(type => "needsbuild", id => "meta", call => \&needsbuild);
hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
hook(type => "pagetemplate", id => "meta", call => \&pagetemplate);
- hook(type => "sort", id => "meta_title", call => \&sort_meta_title);
}
sub getsetup () {
# Metadata collection that needs to happen during the scan pass.
if ($key eq 'title') {
$pagestate{$page}{meta}{title}=HTML::Entities::encode_numeric($value);
+ if (exists $params{sort}) {
+ $pagestate{$page}{meta}{titlesort}=$params{sort};
+ }
+ else {
+ $pagestate{$page}{meta}{titlesort}=$value;
+ }
return "";
}
elsif ($key eq 'description') {
}
}
-sub title {
- my $title = $pagestate{$_[0]}{meta}{title};
+sub titlesort {
+ my $key = $pagestate{$_[0]}{meta}{titlesort};
- if (defined $title) {
- return $title;
+ if (defined $key) {
+ return $key;
}
return pagetitle(IkiWiki::basename($_[0]));
}
-sub sort_meta_title {
- return title($_[0]) cmp title($_[1]);
-}
-
sub match {
my $field=shift;
my $page=shift;
IkiWiki::Plugin::meta::match("copyright", @_);
}
+sub cmp_meta_title {
+ IkiWiki::Plugin::meta::titlesort($_[0])
+ cmp
+ IkiWiki::Plugin::meta::titlesort($_[1])
+}
+
1