NOTE: This is a
DistributionDocument. Please help maintain high quality documentation: This is a wiki, please
fix the documentation if you find errors or incomplete content. Put questions and suggestions concerning the
documentation of this topic in the
comments section below. Use the
Support web for problems you are having
using TWiki.
Parameterized Variables (Macros)
It is possible to pass parameters to TWiki variables. This is called a macro in a programming language.
To define a parameterized variable, set a variable that contains other variables, such as:
* Set EXAMPLE = Example variable using %DEFAULT%, %PARAM1% and %PARAM2%
* Set DEMO = Demo using %DEFAULT{ default="(undefined)" }%,
%PARAM1{ default="(undefined)" }% and %PARAM2{ default="(undefined)" }%
A special
%DEFAULT%
variable denotes the default (nameless) parameter of the calling variable. Variables optionally may list a
default="..."
parameter that gets used in case the calling variable does not specify that parameter.
To use a parameterized variable (or call a macro), add parameters within the curly brackets, such as:
* %EXAMPLE{ "foo" PARAM1="bar" PARAM2="baz" }%
* %DEMO{ "demo" PARAM2="parameter 2" }% -- note that PARAM1 is missing
which resolves to:
- Example variable using foo, bar and baz
- Demo using demo, (undefined) and parameter 2 -- note that PARAM1 is missing
Parameters in the variable definition are expanded using the following sequence:
- Parameter from variable call. In above example,
%PARAM1%
gets expanded to bar
.
- Session variable and preferences settings
Example
Define variables:
* Set DRINK = red wine
* Set FAVORITE = My %DEFAULT{default="favorite"}% dish is %DISH{default="steak"}%,
my %DEFAULT{default="favorite"}% drink is %DRINK%.

The default can be defined with a default parameter (
%DISH{default="steak"}%
), or as a preferences setting (
Set DRINK = ...
).
Use Variables:
%FAVORITE{ DISH="Sushi" DRINK="Sake" }%
Returns:
My favorite dish is Sushi,
my favorite drink is Sake.
%FAVORITE{}%
Returns:
My favorite dish is steak,
my favorite drink is red wine.
%FAVORITE{ "preferred" }%
Returns:
My preferred dish is steak,
my preferred drink is red wine.
Related: TWikiVariables,
IncludeTopicsAndWebPages
Comments & Questions about this Distribution Document Topic