The `IkiWiki::pagetitle` function does not respect title changes via `meta.title`. It really should, so that links rendered with `htmllink` get the proper title in the link text. --[[madduck]] ---- 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.
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 ($$;@) {

-- > A few quick notes about it: > - Using inline would avoid the redefinition + code duplication. > - A few plugins would need to be upgraded. > - It may be necessary to adapt the testsuite in `t/pagetitle.t`, as well. > > --[[intrigeri]] > >> It was actually more complicated than expected. A working prototype is >> now in my `meta` branch, see my userpage for the up-to-date url. >> Thus tagging [[patch]]. --[[intrigeri]] >> >>> Joey, please consider merging my `meta` branch. --[[intrigeri]]