]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/toplevel_index.mdwn
web commit by http://id.inelegant.org/
[git.ikiwiki.info.git] / doc / todo / toplevel_index.mdwn
index d972707d7df8878b07cd43725ddb4ce1be1dfda8..f749ad65598e8f027aab356ad96a274332dc902e 100644 (file)
@@ -2,3 +2,64 @@ Some inconsistences around the toplevel [[index]] page:
 
 * [[ikiwiki]] is a separate page; links to [[ikiwiki]] should better go to
   the [[index]] though.
+* The toplevel [[ikiwiki/Discussion]] page has some weird parentlinks
+  behavior. This could be special cased around with the following patch.
+  However, I'm unsure if I like the idea of more special cases around this.
+  It would be better to find a way to make the toplevel index page not be a
+  special case at all.
+
+Here is a patch:
+
+       --- IkiWiki/Render.pm   (revision 1187)
+       +++ IkiWiki/Render.pm   (working copy)
+       @@ -71,6 +71,7 @@
+               my $path="";
+               my $skip=1;
+               return if $page eq 'index'; # toplevel
+       +       $path=".." if $page=~s/^index\///;
+               foreach my $dir (reverse split("/", $page)) {
+                       if (! $skip) {
+                               $path.="../";
+
+---
+
+> I would like to suggest another tack, namely a bigger, better special case. 
+> The basic idea is that all indices of the form foo/bar/index get the wiki path foo/bar.
+> This makes some things more elegant:
+>
+> * All files having to do with foo/bar are in the foo/bar directory, rather 
+>   than the (admittedly minor) wart of having the index be in foo/.
+> * This sort of addresses [[bugs/broken_parentlinks]] in that example/ is 
+>   guaranteed to be a valid path. (There might be no index there, though.)
+> * This is more in line with standard HTML practice, as far as I understand it,
+>   namely that linking to a/b means a/b/index.html rather than a/b.html.
+>
+> This would change the inline plugin in strange ways -- I think if foo/index.html
+> contains \[[inline "* and !*/Discussion"]], it should skip inlining foo/index.html 
+> explicitly, but would inline index pages in child directories 
+> foo/bar/baz/index.html as bar/baz.
+>
+> It always bothers me that foo/bar/ files need a foo/bar.html in front of them, 
+> rather than a foo/bar/index.html, as is (to my mind) traditional.
+> 
+> Ethan
+>
+> Hmm, now I've had time to think about this, and this does conflict pretty hard with foo.html/Discussion 
+> pages. Well, back to the drawing board.
+>
+> Well, it seems unlikely that you'll have both foo/bar.html and foo/bar/index.html, 
+> so why not accept either as foo/bar? This would both preserve backwards
+> compatibility, as well as allow foo/bar/Discussion.
+>
+> Ethan
+>
+> No, in order for this to work, the wiki path foo/bar/baz could be any of:
+>
+> * foo/bar/baz.html
+> * foo/index/bar/index/baz.html
+> * foo/bar/index/baz.html
+> * foo/bar/index/baz/index.html
+>
+> Or many others. Which is probably even hackier than having both foo.html and foo/.
+>
+> Ethan
\ No newline at end of file