]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/pagespec_expansions.mdwn
web commit by http://ethan.betacantrips.com/: first-draft patch
[git.ikiwiki.info.git] / doc / todo / pagespec_expansions.mdwn
index 58c622f7cd9fb1cf457c7b424679d73d7f844efd..74fe9c13c441364d94e89f2a2aa0f347761e5d8d 100644 (file)
@@ -6,4 +6,46 @@ A couple of suggestions for improving the usefulness of pagespecs:
   interface for pagespec_match. What do you think? I have
   lots of pages a/b/c.mdwn that inline "a/b/c/*".
 
---Ethan
\ No newline at end of file
+--Ethan
+
+> I want this too, so that the [[examples]] can use pagespecs that don't
+> have to be changed when the pages are moved around. I don't know how I
+> feel about the "@" thing, but "./" seems good. I take it you've looked at
+> how to implement it?
+>
+> It's worth mentioning that there's a bit of an inconsistency; wikilinks
+> match relative by default and absolute if prefixed with a "/", while
+> 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