Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
[ikiwiki] / doc / todo / modify_page_filename_in_plugin.mdwn
1 I'm writing a plugin to wikify c/c++ code.
2
3 By default ikiwiki generates xxx.html for a file called xxx.c.
4
5 The problem is that I occasionally have xxx.c and xxx.h in the same directory and there's a filename collision.
6
7 My solution is to allow plugins to provide a hook that sets the pagename. --[[/users/bstpierre]]
8
9 > You might also find the solution to [[bugs/multiple_pages_with_same_name]] helps you.  That patch is already applied. -- [[Will]]
10
11     --- /usr/share/perl5/IkiWiki.pm.ORIG    2008-10-03 14:12:50.000000000 -0400
12     +++ /usr/share/perl5/IkiWiki.pm 2008-10-07 11:57:26.000000000 -0400
13     @@ -196,11 +196,32 @@
14
15      sub pagename ($) {
16             my $file=shift;
17
18             my $type=pagetype($file);
19     +
20     +   if(defined $type &&
21     +      exists $hooks{pagename} &&
22     +      exists $hooks{pagename}{$type}) {
23     +
24     +      return $hooks{pagename}{$type}{call}($file);
25     +
26     +   } else {
27     +
28             my $page=$file;
29             $page=~s/\Q.$type\E*$// if defined $type;
30             return $page;
31     +   }
32      }
33
34      sub htmlpage ($) {
35