ikiwiki/doc/todo/using_meta_titles_for_paren...

117 lines
3.5 KiB
HTML

It is possible to set a Page-Title in the meta-plugin, but that one isn't
reused in parentlinks. This [[patch]] may fix it.
<ul>
<li> I give pagetitle the full path to a page.
<li> I redefine the 'pagetitle'-sub to deal with it.
<li> to maintain compatibility for IkiWikis without the meta-plugin, i added a 'basename' to the Original-pagetitle.
</ul>
<pre>
diff -c /usr/share/perl5/IkiWiki/Render.pm.distrib /usr/share/perl5/IkiWiki/Render.pm
*** /usr/share/perl5/IkiWiki/Render.pm.distrib Wed Aug 6 07:34:55 2008
--- /usr/share/perl5/IkiWiki/Render.pm Tue Aug 26 23:29:32 2008
***************
*** 102,108 ****
$template->param(
title => $page eq 'index'
? $config{wikiname}
! : pagetitle(basename($page)),
wikiname => $config{wikiname},
content => $content,
backlinks => $backlinks,
--- 102,108 ----
$template->param(
title => $page eq 'index'
? $config{wikiname}
! : pagetitle($page),
wikiname => $config{wikiname},
content => $content,
backlinks => $backlinks,
diff -c /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm
*** /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib Wed Aug 6 07:34:55 2008
--- /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm Tue Aug 26 23:19:43 2008
***************
*** 44,50 ****
"height_$height" => 1,
};
$path.="/".$dir;
! $title=IkiWiki::pagetitle($dir);
$i++;
}
return @ret;
--- 44,50 ----
"height_$height" => 1,
};
$path.="/".$dir;
! $title=IkiWiki::pagetitle($path);
$i++;
}
return @ret;
diff -c /usr/share/perl5/IkiWiki.pm.distrib /usr/share/perl5/IkiWiki.pm
*** /usr/share/perl5/IkiWiki.pm.distrib Wed Aug 6 07:48:34 2008
--- /usr/share/perl5/IkiWiki.pm Tue Aug 26 23:47:30 2008
***************
*** 792,797 ****
--- 792,799 ----
my $page=shift;
my $unescaped=shift;
+ $page=basename($page);
+
if ($unescaped) {
$page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
}
diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki/Plugin/meta.pm
*** /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib Wed Aug 6 07:34:55 2008
--- /usr/share/perl5/IkiWiki/Plugin/meta.pm Tue Aug 26 23:30:58 2008
***************
*** 3,8 ****
--- 3,9 ----
package IkiWiki::Plugin::meta;
use warnings;
+ no warnings 'redefine';
use strict;
use IkiWiki 2.00;
***************
*** 289,294 ****
--- 290,319 ----
}
} #}}}
+ sub IkiWiki::pagetitle ($;$) { #{{{
+ my $page=shift;
+ my $unescaped=shift;
+
+ if ($page =~ m#/#) {
+ $page =~ s#^/##;
+ $page =~ s#/index$##;
+ if ($pagestate{"$page/index"}{meta}{title}) {
+ $page = $pagestate{"$page/index"}{meta}{title};
+ } else {
+ $page = IkiWiki::basename($page);
+ }
+ }
+
+ if ($unescaped) {
+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
+ }
+ else {
+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
+ }
+
+ return $page;
+ } #}}}
+
package IkiWiki::PageSpec;
sub match_title ($$;@) { #{{{
</pre>