aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/using_meta_titles_for_parentlinks.html
blob: 8a42bf4a83a51aa5bf431b430405ae161eadf37a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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>