summaryrefslogtreecommitdiff
path: root/doc/todo/else_parameter_for_map_plugin.mdwn
blob: 12a91b4ee21cc7e735567ba3c99e1d97271c59c6 (plain)

[[!tag patch]]

[[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]]