]> sipb.mit.edu Git - ikiwiki.git/commitdiff
(no commit message)
authorbstpierre <bstpierre@web>
Tue, 7 Oct 2008 16:34:52 +0000 (12:34 -0400)
committerJoey Hess <joey@kitenet.net>
Tue, 7 Oct 2008 16:34:52 +0000 (12:34 -0400)
doc/todo/modify_page_filename_in_plugin.mdwn [new file with mode: 0644]

diff --git a/doc/todo/modify_page_filename_in_plugin.mdwn b/doc/todo/modify_page_filename_in_plugin.mdwn
new file mode 100644 (file)
index 0000000..7c0a909
--- /dev/null
@@ -0,0 +1,33 @@
+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 @@
+
+     sub pagename ($) { #{{{
+            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;
+    +   }
+     } #}}}
+
+     sub htmlpage ($) { #{{{
+