[[!tag patch done]]
[[plugins/map]] (and I) could benefit from a bonus parameter:
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]]
|