diff options
-rw-r--r-- | doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn | 123 | ||||
-rw-r--r-- | doc/todo/using_meta_titles_for_parentlinks.html | 122 |
2 files changed, 121 insertions, 124 deletions
diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index cccd53d05..11735f770 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -2,8 +2,127 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title --[[madduck]] -> Agreed. [[todo/using_meta_titles_for_parentlinks]] contains a beginning of -> solution. A few quick notes about it: +---- + +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> + +-- + +> A few quick notes about it: > - Using <code>inline</code> would avoid the redefinition + code duplication. > - A few plugins would need to be upgraded. diff --git a/doc/todo/using_meta_titles_for_parentlinks.html b/doc/todo/using_meta_titles_for_parentlinks.html deleted file mode 100644 index 6da40a415..000000000 --- a/doc/todo/using_meta_titles_for_parentlinks.html +++ /dev/null @@ -1,122 +0,0 @@ -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> - -<p> -This is actually a duplicate for -[[bugs/pagetitle_function_does_not_respect_meta_titles]], where I'm -following up a bit. --[[intrigeri]] -</p>
\ No newline at end of file |