summaryrefslogtreecommitdiff
path: root/doc/todo/Allow_filenames_that_are_all_type.mdwn
blob: bebbcafa8a4855d6895976a74802f92f5f1c33b8 (plain)

This is a [[patch]] to allow filenames that are just the type. The best example of this is wanting to pass a Makefile through one of the [[todo/syntax_highlighting/]] plugins. With this patch, if the plugin can process files of type .Makefile then it will also process Makefile.

I put this patch on the [[todo/syntax_highlighting/]] page a while ago, but it seemed to get lost because it didn't have its own bug to track it. Now it does :). -- [[Will]]

This changes pagename(), but what about pagetype()? Many things in ikiwiki check if pagetype($file) returns true to see if it's a page, etc. --[[Joey]]

I think this patch is complete. It does not change pagename(), it changes pagetype() (the diff is fairly old - line numbers may have changed).

Before this patch, pagetype() required a . in the page name. With this patch it doesn't, as long as the extension is being kept. This allows the filename to be all extension. pagename() relies on pagetype() to detect the type. pagename() also removes the extension on some pages, but this patch only affects pages where the extension isn't removed.

So, yeah, I think this patch is complete. :) -- [[Will]]

Thanks, [[applied|done]], but I added a noextension parameter, since having keepextension allow files with no extension didn't make sense. Also, made it work for pages in subdirs.. --[[Joey]]

diff --git a/IkiWiki.pm b/IkiWiki.pm
index 8d728c9..1bd46a9 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -618,6 +618,8 @@ sub pagetype ($) {
 	
 	if ($page =~ /\.([^.]+)$/) {
 		return $1 if exists $hooks{htmlize}{$1};
+	} elsif ($hooks{htmlize}{$page}{keepextension}) {
+		return $page;
 	}
 	return;
 }