]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/else_parameter_for_map_plugin.mdwn
patchmeister
[git.ikiwiki.info.git] / doc / todo / else_parameter_for_map_plugin.mdwn
index e6cd1adc7d0c4bf34005358e8f34b51cdf7dc4bc..981e50d43803959a09d9d5ec682d88ba1e8f6b73 100644 (file)
@@ -1,9 +1,56 @@
-[[!tag patch]]
+[[!tag patch done]]
 
 [[plugins/map]] (and I) could benefit from a bonus parameter:
 
-       else="Display this if no page matches the [[ikiwiki/PageSpec]]"
+       else="Display this if no page matches the PageSpec"
 
 This was quite simple, so I implemented this (branch "map" in my
 ikiwiki repo, see my user page for the up-to-date URL). Not patched the
 documentation yet, I'm waiting for feedback first, but I'll do it for sure. -- [[intrigeri]]
+
+> Can't a [[plugins/conditional]] be for this?
+> --[[Joey]]
+
+>> Hmmm, what do you mean? Adding a syntax such as the one below?
+>> Or something else?
+
+        \[[!if test="map(" then="..." else="..."]]
+
+>> What would you write in the `then` clause?
+>> I'm not opposed at all to rewrite my two-liner, but I don't understand.
+>> --[[intrigeri]]
+
+       \[[!if  test="foo/*" then="""
+       [[!map pages="foo/*"]]
+       """ else="no pages"]]
+
+--[[Joey]]
+
+>>> I'm not convinced: the syntax you're proposing implies to duplicate
+>>> the pagespec (once in the test clause, and once in the map query), which I find
+>>> not only inelegant, which I can live with, but also tiring and unpractical:
+>>> my `else` suggestion
+>>> finds its roots in map queries with rather long pagespecs. On the other
+>>> hand, if I'm the only one using map in such a way, I can live with this
+>>> heavy duplicated syntax without bloating the map plugin with features
+>>> no-one but me needs. On the other other hand, the patch is a 3-liner.
+>>> I'm not fixed yet, I'll think about it. --[[intrigeri]]
+
+>>>> Write a [[plugins/template]] which accepts a pagespec and an
+>>>> "else" clause, and then you won't have to duplicate the
+>>>> pagespec. --[[JoshTriplett]]
+
+>>>> Yeah, the patch is obviously very simple. My problem with it really is
+>>>> that there would seem to be several other places in ikiwiki where
+>>>> someone might want to be able to handle an "else" case where a
+>>>> pagespec expands to nothing. And adding else cases for all of them
+>>>> could be a bit much. --[[Joey]]
+
+>>>>> Agreed, and tagging as done. For the record, here is the [[plugins/template]] I use:
+
+        \[[!if test="<TMPL_VAR raw_pages>"
+        then="""<TMPL_VAR intro>
+        [[!map pages="<TMPL_VAR raw_pages>"]]"""
+        else="<TMPL_VAR else>"]]
+
+>>>>> --[[intrigeri]]