57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
[[!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]]
|