]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/todo/pagespec_expansions.mdwn
web commit from 66.249.65.205: poll vote (Accept both)
[ikiwiki.git] / doc / todo / pagespec_expansions.mdwn
index 14ca0d25e81516c2345e25ba91ea873f1b8399e6..74fe9c13c441364d94e89f2a2aa0f347761e5d8d 100644 (file)
@@ -18,3 +18,34 @@ A couple of suggestions for improving the usefulness of pagespecs:
 > pagespecs match absolute by default. It would be nice to clear up that
 > inconsistency somehow, it's on my little list of things in ikiwiki that
 > arn't ideal. :-) --[[Joey]]
+
+I've looked at how to implement "./", yes, and I was a little hesitant
+to disturb the elegant implementation of pagespecs as it is now. That's 
+why I wrote this todo item rather than just a patch. :) As I see it,
+the simplest thing to do is check globs when building the pagespec 
+expression and translate "./foo" to "$from.'/foo'" in the resulting
+expression, and then add the $from paramater to pagespec_match. This does
+require an API change for all plugins which use pagespecs but hopefully
+it should be minor. I will work on a patch tomorrow.
+
+My use case for "@" (which is kind of a crummy symbol, but whatever) is
+my [projects page](http://www.betacantrips.com/projects/). I want to inline 
+"summary" or "introduction" pages that are exactly one level below the 
+inlining page, but not tarballs or other junk that might be in 
+subdirectories. (The issue is confounded here because of my index.mdwn 
+patch, but the principle is the same.) I chose "@" because it's similar in 
+physical shape to "*" but enclosed, suggesting limitations. I also thought
+it would be useful in simplifying hacks like in [[plugins/map]] but I see
+now that I was mistaken.. "four or fewer levels deep" would be 
+"@ or @/@ or @/@/@ or @/@/@/@". Well, I think it has a certain appeal but
+I can see why it might not be much of an improvement. :) --Ethan
+
+> OK, I took a shot at implementing the changes. I was thinking about making
+> pagespecs relative by default but I couldn't decide whether page
+> `foo/bar` inlining `*` should match `foo/bar/*` or `foo/*`.
+> So I punted and left things as absolute, with `./*` matching
+> `foo/bar/*`, which I think is pretty clear.
+> The patch is at [ikidev](http://ikidev.betacantrips.com/patches/pagespec_enhancements.patch)
+> and you can see it work at 
+> [this page](http://ikidev.betacantrips.com/one/two/three/index.html) or
+> [this page](http://ikidev.betacantrips.com/one/two/three/princess.html) --Ethan
\ No newline at end of file