2008-10-07 18:34:52 +02:00
|
|
|
I'm writing a plugin to wikify c/c++ code.
|
|
|
|
|
|
|
|
By default ikiwiki generates xxx.html for a file called xxx.c.
|
|
|
|
|
|
|
|
The problem is that I occasionally have xxx.c and xxx.h in the same directory and there's a filename collision.
|
|
|
|
|
|
|
|
My solution is to allow plugins to provide a hook that sets the pagename. --[[/users/bstpierre]]
|
|
|
|
|
|
|
|
--- /usr/share/perl5/IkiWiki.pm.ORIG 2008-10-03 14:12:50.000000000 -0400
|
|
|
|
+++ /usr/share/perl5/IkiWiki.pm 2008-10-07 11:57:26.000000000 -0400
|
|
|
|
@@ -196,11 +196,32 @@
|
|
|
|
|
2008-12-17 21:22:16 +01:00
|
|
|
sub pagename ($) {
|
2008-10-07 18:34:52 +02:00
|
|
|
my $file=shift;
|
|
|
|
|
|
|
|
my $type=pagetype($file);
|
|
|
|
+
|
|
|
|
+ if(defined $type &&
|
|
|
|
+ exists $hooks{pagename} &&
|
|
|
|
+ exists $hooks{pagename}{$type}) {
|
|
|
|
+
|
|
|
|
+ return $hooks{pagename}{$type}{call}($file);
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
my $page=$file;
|
|
|
|
$page=~s/\Q.$type\E*$// if defined $type;
|
|
|
|
return $page;
|
|
|
|
+ }
|
2008-12-17 21:22:16 +01:00
|
|
|
}
|
2008-10-07 18:34:52 +02:00
|
|
|
|
2008-12-17 21:22:16 +01:00
|
|
|
sub htmlpage ($) {
|
2008-10-07 18:34:52 +02:00
|
|
|
|