1 septembre 2023 à 12h31
Depuis : 5.3.2 The conditional shortcut syntax provides a convenient way to express if-then-else logic within WikiText. It evaluates a filter expression and considers the condition to be true if there is at least one result (regardless of the value of that result).
Within an "if" or "elseif" clause, the variable condition
contains the value of the first result of evaluating the filter condition.
A simple example:
<%if [{$:/info/url/protocol}match[file:]] %>
Loaded from a file URI
<%else%>
Not loaded from a file URI
<%endif%>
Affichera ceci :
Not loaded from a file URIOne or more <%elseif%>
clauses may be included before the <%else%>
clause:
<%if [{$:/info/url/protocol}match[file:]] %>
Loaded from a file URI
<%elseif [{$:/info/url/protocol}match[https:]] %>
Loaded from an HTTPS URI
<%elseif [{$:/info/url/protocol}match[http:]] %>
Loaded from an HTTP URI
<%else%>
Loaded from an unknown protocol
<%endif%>
Affichera ceci :
Loaded from an unknown protocolThe conditional shortcut syntax can be nested:
\procedure test(animal)
<%if [<animal>match[Elephant]] %>
It is an elephant
<%else%>
<%if [<animal>match[Giraffe]] %>
It is a giraffe
<%else%>
It is completely unknown
<%endif%>
<%endif%>
\end
<<test "Giraffe">>
<<test "Elephant">>
<<test "Antelope">>
Affichera ceci :
It is a giraffe It is an elephant It is completely unknownNotes:
- Clauses are parsed in inline mode by default. Force block mode parsing by following the opening
<%if %>
,<%elseif%>
or<%else%>
with two line breaks - Widgets and HTML elements must be within a single conditional clause; it is not possible to start an element in one conditional clause and end it in another
- The conditional shortcut syntax cannot contain pragmas such as procedure definitions