From 9cbcda14aca677008a7e2fe70463deda5cbdf34b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 23 Sep 2008 13:32:41 -0400 Subject: [PATCH] Print a debug message if a page has multiple source files. --- IkiWiki/Render.pm | 6 +++++- debian/changelog | 1 + doc/bugs/multiple_pages_with_same_name.mdwn | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 752d17643..ceb7c842c 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -279,7 +279,11 @@ sub refresh () { #{{{ else { $f=~s/^\Q$config{srcdir}\E\/?//; push @files, $f; - $exists{pagename($f)}=1; + my $pagename = pagename($f); + if ($exists{$pagename}) { + debug(sprintf(gettext("%s has multiple possible source pages"), $pagename)); + } + $exists{$pagename}=1; } } }, diff --git a/debian/changelog b/debian/changelog index d67fb73ce..5f7cc1be2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,6 +16,7 @@ ikiwiki (2.65) UNRELEASED; urgency=low * edittemplate: Link to template, to allow creating it. (Willu) * editpage: Add a missing check that the page name contains only legal characters, in addition to the existing check for pruned filenames. + * Print a debug message if a page has multiple source files. -- Joey Hess Wed, 17 Sep 2008 14:26:56 -0400 diff --git a/doc/bugs/multiple_pages_with_same_name.mdwn b/doc/bugs/multiple_pages_with_same_name.mdwn index 26269c9ce..548954f8f 100644 --- a/doc/bugs/multiple_pages_with_same_name.mdwn +++ b/doc/bugs/multiple_pages_with_same_name.mdwn @@ -4,6 +4,10 @@ I realised that this is going to have problems when you ask it to process `.c` a I tested it briefly with `test.java` and `test.mdwn` just to see what would happen. Things got quite strange. The source-highlighting plugin was called (probably for the java file), but then when it calls `pagetype($pagesources{$page})` to figure out the file type, that function returns `mdwn`, which confuses things somewhat. +> This is a known possible point of confusion. If there are multiple source +> files, it will render them both, in an arbitrary sequence, so one "wins". +> --[[Joey]] + Anyway, I'm thinking about possible solutions. The best option I've come up with so far is: when registering an htmlize hook, add a new optional paramter 'keep_extension'. This would make a source file of `hello.c` generate a page with name `hello.c` rather than the current `hello`. This would keep the pages unique (until someone makes `hello.c.mdwn`...). Suggestions welcome. @@ -12,6 +16,11 @@ Suggestions welcome. > Ok, this turned out not to be a hard change. [[patch]] is below. With this patch you can tell IkiWiki not to drop the suffix when you register a hook: `hook(type => "htmlize", id => $lang, call => \&htmlize, leavesuffix => 1);` +>> I think that's a good solution to the problem that most syntax plugins +>> have struggled with. It makes sense. It doesn't solve the case where +>> you have source files without any extension (eg `Makefile`), but at +>> least it covers the common cases. + diff --git a/IkiWiki.pm b/IkiWiki.pm index 4e4da11..853f905 100644 --- a/IkiWiki.pm -- 2.26.2