Macros
Special text strings expand on the fly to display user data or system info
Macros are text strings -
%MACRONAME%
or
%MACRONAME{ parameter="value" }%
- that expand into content whenever a topic is rendered for viewing. There are two types of macros:
- Preference settings: Can be defined and changed by the user
- Predefined macros: Defined by the system or by Plugins (for example, the SpreadSheetPlugin introduces a
%CALC{}%
macro)
Using Macros
To use a macro type its name. For example,
- type
%T%
to get (a preference settings)
- type
%TOPIC%
to get Macros
(a predefined macro?)
- type
%CALC{ "$UPPER(Text)" }%
to get TEXT
(a macro? defined by a Plugin)
Note:
- To leave a macro unexpanded, precede it with an exclamation point, e.g. type
!%TOPIC%
to get %TOPIC%
- Macros are expanded relative to the topic they are used in, not the topic they are defined in
- Type
%ALLVARIABLES%
to get a full listing of all macros defined for a particular topic
Macro Names
Macro names must start with a letter. The following characters can be letters, numbers and the underscore '_'. You can use both upper-case and lower-case letters and you can mix the characters. E.g.
%MYVAR%
,
%MyVar%
,
%My2ndVar%
, and
%My_Var%
are all valid macro names. Macros are case sensitive.
%MyVAR%
and
%MYVAR%
are not the same macro.
By convention all settings, predefined macros and macros used by plugins are always UPPER-CASE.
Preferences
Preferences settings are simple macros that do
not accept parameters, and are
defined in topics. A lot of the macros you will encounter are of this type.
Preferences can be defined by the user in various places.
Setting Preferences
You can set macros in all the following places:
- default level in System.DefaultPreferences (not recommended)
- plugin topics (see Plugins)
- local site level in Main.SitePreferences
- user level in individual user topics in Main web
- web level in WebPreferences of a parent web
- web level in WebPreferences of the web
- topic level in topics in webs
- session macros (if sessions are enabled)
Settings at higher-numbered levels override settings of the same macro at lower numbered levels, unless the macro was included in the setting of FINALPREFERENCES at a lower-numbered level, in which case it is locked at the value it has at that level.
If you are setting a preference and using it in the same topic, note that Foswiki reads all the
preference settings from the saved version of the topic before it displays anything. This means you can use a macro anywhere in the topic, even if you set it somewhere inconspicuous near the end.
But beware: it also means that if you change the setting of a macro you are using in the same topic,
Preview
will show the wrong thing, and you must
Save
the topic to see it correctly.
The syntax for setting macros is the same anywhere:
[multiple of 3 spaces] * [space] Set [space] MACRONAME [space] = [space] value
Examples:
Spaces between the = sign and the value will be ignored. You can split a value over several lines by indenting following lines with spaces - as long as you don't try to use * as the first character on the following line.
Example:
* Set MACRONAME = value starts here
and continues here
Whatever you include in your Macro will be expanded on display, exactly as if it had been entered directly.
Example: Create a custom logo macro
You can also set
preference settings in a topic by clicking the link
Edit topic preference settings
under
More topic actions
. Preferences set in this manner are not visible in the topic text, but take effect nevertheless.
Access Control Settings
These are special types of preference settings to control access to content.
AccessControl explains these security settings in detail.
Local values for preferences
Certain topics (a users home topic, web site and default preferences topics) have a problem; macros defined in those topics can have two meanings. For example, consider a user topic. A user may want to use a double-height edit box when they are editing their home topic - but
only when editing their home topic. The rest of the time, they want to have a normal edit box. This separation is achieved using
Local
in place of
Set
in the macro definition. For example, if the user sets the following in their home topic:
* Set EDITBOXHEIGHT = 10
* Local EDITBOXHEIGHT = 20
Then when they are editing any other topic, they will get a 10 high edit box. However when they are editing their home topic, they will get a 20 high edit box.
Local
can be used wherever a preference needs to take a different value depending on where the current operation is being performed.
Use this powerful feature with great care!
%ALLVARIABLES%
can be used to get a listing of the values of all macros in their evaluation order, so you can see macro scope if you get confused.
Predefined Macros
Most predefined macros return values that were either set in the configuration when Foswiki was installed, or taken from server info (such as current username, or date and time). Some, like
%SEARCH%
, are powerful and general tools.
- Predefined macros can be overridden by preference settings (except TOPIC and WEB)
- Plugins may extend the set of predefined macros (see individual Plugins topics for details)
- Take the time to thoroughly read through ALL preference macros. If you actively configure your site, review macros periodically. They cover a wide range of functions, and it can be easy to miss the one perfect macro for something you have in mind. For example, see
%BASETOPIC%
, %INCLUDE%
, and the mighty %SEARCH%
.
This version of Foswiki - Foswiki-1.0.9, Sun, 17 Jan 2010, build 6075 - predefines the following macros:
ACTIVATEDPLUGINS -- list of currently activated plugins
- Syntax:
%ACTIVATEDPLUGINS%
- Expands to: TWikiCompatibilityPlugin, SpreadSheetPlugin, AutoViewTemplatePlugin, BreadCrumbsPlugin, CalendarPlugin, ChartPlugin, CommentPlugin, DBCachePlugin, EditChapterPlugin, EditTablePlugin, ExplicitNumberingPlugin, ExternalLinkPlugin, FilterPlugin, FlexWebListPlugin, GluePlugin, HeadlinesPlugin, IfDefinedPlugin, ImagePlugin, InterwikiPlugin, JQueryLibPlugin, JQueryPlugin, LatexModePlugin, LdapNgPlugin, MathModePlugin, NatEditPlugin, NatSkinPlugin, NewUserPlugin, PreferencesPlugin, RedirectPlugin, RenderListPlugin, RenderPlugin, SendEmailPlugin, SetVariablePlugin, SlideShowPlugin, SmiliesPlugin, SubscribePlugin, SyntaxHighlightingPlugin, TablePlugin, TagMePlugin, TwistyPlugin, UploadPlugin, VarCachePlugin, VotePlugin, ZonePlugin
- Related: PLUGINDESCRIPTIONS, FAILEDPLUGINS, PLUGINVERSION
ADDTOHEAD
You can write
%ADDTOHEAD{...}%
in a topic or template. This variable accepts the following parameters:
-
_DEFAULT
optional, id of the head block. Used to generate a comment in the output HTML.
-
text
optional, text to use for the head block. Mutually exclusive with topic
.
-
topic
optional, full Foswiki path name of a topic that contains the full text to use for the head block. Mutually exclusive with text
. Example: topic="System.MyTopic"
.
-
requires
optional, comma-separated list of id's of other head blocks this one depends on.
%ADDTOHEAD%
expands in-place to the empty string, unless there is an error in which case the variable expands to an error string.
Use
%RENDERHEAD%
to generate the sorted head tags.
ADDTOZONE
%ADDTOZONE{
"zone"
...
}%
- zone: optional, comma-separated list of zones the content should be added to, special zones are
body
and head
, defaults to head
- tag: optional, identificator for the material to be added, to be used in
requires
- requires: comma-separated list of tags that must occur before the current material, constraints the order of all material in a zone
- text: optional, text to be added to the named zone, mutually exclusive with
topic
- topic: optional, full qualified web-topic name that contains the text to be added, mutually exclusive with
text
- section: optional, section of the
topic
to be added, defaults to the default section between STARTINCLUDE and STOPINCLUDE
Note, that using
topic
and
section
is actually a short form of
%ADDTOZONE{
"myzone"
text="$percntINCLUDE{\"topic\" section=\"section\" warn=\"off\"}$percnt"
}%
See also
VarRENDERZONE
ALLVARIABLES -- list of currently defined macros
- Syntax:
%ALLVARIABLES%
- Expands to: a table showing all defined macros in the current context
AQUA -- start aqua colored text
-
AQUA
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%AQUA% aqua text %ENDCOLOR%
- Expands to: aqua text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
ATTACHURL -- full URL for attachments in the current topic
ATTACHURLPATH -- path of the attachment URL of the current topic
AUTHREALM -- authentication realm
- String defined as {AuthRealm} in configure. This is used in certain password encodings, and in login templates as part of the login prompt.
- Syntax:
%AUTHREALM%
- Expands to: Enter your LoginName. (Typically First name and last name, no space, no dots, capitalized, e.g. JohnSmith, unless you chose otherwise). Visit UserRegistration if you do not have one.
- Related: UserAuthentication, SESSIONID, SESSIONVAR, LOGIN, LOGOUT, SESSION_VARIABLE
BASETOPIC -- base topic where an INCLUDE started
- The name of the topic where a single or nested INCLUDE started - same as
%TOPIC%
if there is no INCLUDE
- This is the name of the topic requested by the user.
- Syntax:
%BASETOPIC%
- Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, TOPIC
BASEWEB -- base web where an INCLUDE started
- The web name where the includes started, e.g. the web of the first topic of nested includes. Same as
%WEB%
in case there is no include.
- This is the name of the web requested by the user.
- Syntax:
%BASEWEB%
- Related: BASETOPIC, INCLUDINGWEB, INCLUDE, WEB
BB -- bullet with line break
BB2 -- level 2 bullet with line break
BB3 -- level 3 bullet with line break
BB4 -- level 4 bullet with line break
BLACK -- start black colored text
-
BLACK
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%BLACK% black text %ENDCOLOR%
- Expands to: black text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
BLUE -- start blue colored text
-
BLUE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%BLUE% blue text %ENDCOLOR%
- Expands to: blue text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
BR -- line break
BROWN -- start brown colored text
-
BROWN
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%BROWN% brown text %ENDCOLOR%
- Expands to: brown text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
BULLET -- bullet character
CALC{"formula"} -- add spreadsheet calculations to tables and outside tables
- The
%CALC{"formula"}%
macro is handled by the SpreadSheetPlugin. There are around 90 formulae, such as $ABS()
, $EXACT()
, $EXISTS()
, $GET()/$SET()
, $IF()
, $LOG()
, $LOWER()
, $PERCENTILE()
, $TIME()
, $VALUE()
.
- Syntax:
%CALC{"formula"}%
- Examples:
-
%CALC{"$SUM($ABOVE())"}%
returns the sum of all cells above the current cell
-
%CALC{"$EXISTS(Web.SomeTopic)"}%
returns 1
if the topic exists
-
%CALC{"$UPPER(Collaboration)"}%
returns COLLABORATION
- Related: IF, SpreadSheetPlugin
CARET -- caret symbol
COMMENT{ attributes } -- insert an edit box into the topic to easily add comments.
- A
%COMMENT%
without parameters shows a simple text box.
- The following standard attributes are recognized
Name | Description | Default |
type | This is the name of the template to use for this comment. Comment templates are defined in a Foswiki template - see Customisation, below. If this attribute is not defined, the type is whatever is defined by COMMENTPLUGIN_DEFAULT_TYPE, either in this topic or in your WebPreferences. | below |
default | Default text to put into the textarea of the prompt. | |
target | Name of the topic to add the comment to | the current topic |
location | Regular expression specifying the comment location in the target topic. Read carefully the CommentPlugin documentation! | |
mode | For compatibility with older versions only, synonymous with type | |
nonotify | Set to "on" to disable change notification for target topics | off |
noform | Set to "on" to disable the automatic form that encloses your comment block - remember to insert <form> tags yourself! See CommentPluginExamples#noform for an example. | off |
nopost | Set to "on" to disable insertion of the posted text into the topic. | off |
remove | Set to "on" to remove the comment prompt after the first time it is clicked. | off |
button | Button label text | Add comment |
DATE -- signature format date
DISPLAYTIME{"format"} -- formatted display time
- Formatted time - either GMT or Local server time, depending on {DisplayTimeValues} setting in configure. Same format qualifiers as
%GMTIME%
- Syntax:
%DISPLAYTIME%
OR %DISPLAYTIME{"format"}%
-
%DISPLAYTIME%
The time is shown as hh:mm (24 hour clock)
- Expands to:
10 Nov 2024 - 20:45
- Example:
%DISPLAYTIME{"$hou:$min"}%
expands to 20:45
- Related: GMTIME, SERVERTIME
EDITACTION -- Selects an edit template
- The EDITACTION preference setting lets you define the use of an editaction template instead of the standard edit. If EDITACTION is defined as
text
, then hide the form. If EDITACTION is defined as form
hide the normal text area and only edit the form.
- Syntax: Set EDITACTION = text|form
- Expands to: %EDITACTION%
- Related: CommandAndCGIScripts#edit
- When EDITACTION is defined as text or form the Edit and Edit Raw buttons simply add
;action=text
or ;action=form
to the URL for the edit script. If you have defined an EDITACTION preference setting you can still edit the topic content or the form by removing the ;action=form
or ;action=text
from the edit URL in the browser and reload.
EDITTABLE{ attributes } -- edit tables using edit fields and other input fields
- The
%EDITTABLE{}%
macro is handled by the EditTablePlugin
- Syntax:
%EDITTABLE{ attributes }%
- Supported attributes:
Attribute | Comment | Default |
header | Specify the header format of a new table like "|*Food*|*Drink*|" . Useful to start a table with only a button | (no header) |
format | The format of one column when editing the table. A cell can be a text input field, or any of these edit field types: • Text input field (1 line): | text, <size>, <initial value> | • Textarea input field: | textarea, <rows>x<columns>, <initial value> | • Drop down box: | select, <size>, <option 1>, <option 2>, etc* | * only one item can be selected • Radio buttons: | radio, <size*>, <option 1>, <option 2>, etc | * size indicates the number of buttons per line in edit mode • Checkboxes: | checkbox, <size*>, <option 1>, <option 2>, etc | * size indicates the number of checkboxes per line in edit mode • Fixed label: | label, 0, <label text> | • Row number: | row, <offset> | • Date: | date, <size>, <initial value>, <DHTML date format> | (see Date Field Type) | "text, 16" for all cells |
changerows | Rows can be added and removed if "on" Rows can be added but not removed if "add" Rows cannot be added or removed if "off" | CHANGEROWS plugin setting |
quietsave | Quiet Save button is shown if "on" , hidden if "off" | QUIETSAVE plugin setting |
include | Other topic defining the EDITTABLE parameters. The first %EDITTABLE% in the topic is used. This is useful if you have many topics with the same table format and you want to update the format in one place. Use topic or web.topic notation. | (none) |
helptopic | Topic name containing help text shown below the table when editing a table. The %STARTINCLUDE% and %STOPINCLUDE% macros can be used in the topic to specify what is shown. | (no help text) |
headerislabel | Table header cells are read-only (labels) if "on" ; header cells can be edited if "off" or "0" | "on" |
editbutton | Set edit button text, e.g. "Edit this table" ; set button image with alt text, e.g. "Edit table, %PUBURL%/%SYSTEMWEB%/DocumentGraphics/edittopic.gif" ; hide edit button at the end of the table with "hide" (Note: Button is automatically hidden if an edit button is present in a cell) | EDITBUTTON plugin setting |
buttonrow | Set to top to put the edit buttons above the table. | bottom |
javascriptinterface | Use javascript to directly move and delete row without page refresh. Enable with "on" , disable with "off" . | JAVASCRIPTINTERFACE plugin setting |
- Example:
%EDITTABLE{ format="| text, 20 | select, 1, one, two, three |" changerows="on" }%
| *Name* | *Type* |
| Foo | two |
- Related: See EditTablePlugin for more details
ENCODE{"string"} -- encodes a string to HTML entities
- Encode "special" characters to HTML numeric entities. Encoded characters are:
- all non-printable ASCII characters below space, except newline (
"\n"
) and linefeed ("\r"
)
- HTML special characters
"<"
, ">"
, "&"
, single quote ('
) and double quote ("
)
- TML special characters
"%"
, "["
, "]"
, "@"
, "_"
, "*"
, "="
and "|"
- Syntax:
%ENCODE{"string"}%
- Supported parameters:
Parameter: | Description: | Default: |
"string" | String to encode | required (can be empty) |
type="entity" type="safe" type="html" type="quotes" type="url" | Control how special characters are encoded entity : Encode special characters into HTML entities, like a double quote into " . Does not encode \n or \r . safe : Encode characters '"<>% into HTML entities. html : As type="entity" except it also encodes \n and \r quotes : Escape double quotes with backslashes (\" ), does not change other characters url : Encode special characters for URL parameter use, like a double quote into %22 (this is the default) | type="url" |
- Example:
%ENCODE{"spaced name"}%
expands to spaced%20name
- Values of HTML input fields must be entity encoded.
Example: <input type="text" name="address" value="%ENCODE{ "any text" type="entity" }%" />
- Double quotes in strings must be escaped when passed into other macros.
Example: %SEARCH{ "%ENCODE{ "string with "quotes"" type="quotes" }%" noheader="on" }%
- ENCODE can be used to filter user input from URL parameters and similer to protect against cross-site scripting. The safest approach is to use
type="entity"
. This can however prevent an application from fully working. You can then use type="safe"
which encodes only the characters '"<>%
into HTML entities (same as encode="safe"). When ENCODE is passing a string inside another macro always use double quotes ("") type="quote". For maximum security against cross-site scripting you are adviced to install the Foswiki:Extensions.SafeWikiPlugin.
ENDCOLOR -- end colored text
-
ENDCOLOR
is a shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%RED% red text %ENDCOLOR%
- Expands to: red text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: VarAQUA, VarBLACK, VarBLUE, VarBROWN, VarGRAY, VarGREEN, VarLIME, VarMAROON, VarNAVY, VarOLIVE, VarORANGE, VarPINK, VarPURPLE, VarRED, VarSILVER, VarTEAL, VarWHITE, VarYELLOW, DefaultPreferences, StandardColors
ENDSECTION{"name"} -- marks the end of a named section within a topic
- Syntax:
%ENDSECTION{"name"}%
- Syntax:
%ENDSECTION{type="include"}%
- Supported parameter:
Parameter: | Description: |
"name" | Name of the section. |
type="..." | Type of the section being terminated; supported types "section" , "include" , "expandvariables" , "templateonly" . |
- If the
STARTSECTION
is named, the corresponding ENDSECTION
must also be named with the same name. If the STARTSECTION
specifies a type, then the corresponding ENDSECTION
must also specify the same type. If the section is unnamed, ENDSECTION
will match with the nearest unnamed %STARTSECTION%
of the same type above it.
- Related: STARTSECTION
ENV{"varname"} -- inspect the value of an environment variable
- Returns the current value of the environment variable in the CGI (Common Gateway Interface) environment. This is the environment that the CommandAndCGIScripts are running in.
- Note: For security reasons, only those environment variables whose names match the regular expression in
{AccessibleENV}
in the Security Settings/Miscellaneous section of configure
can be displayed. Any other variable will just be shown as an empty string, irrespective of its real value.
- Example:
%ENV{MOD_PERL}%
displays as: not set
- If an environment variable is undefined (as against being set to the empty string) it will be returned as
not set
.
- Related: HTTP_HOST, REMOTE_ADDR, REMOTE_PORT, REMOTE_USER
FAILEDPLUGINS -- debugging for plugins that failed to load, and handler list
FORMFIELD{"fieldname"} -- renders a field in the form attached to some topic
- Syntax:
%FORMFIELD{"fieldname"}%
- Supported parameters:
Parameter: | Description: | Default: |
"fieldname" | The name of a Data form field | required |
topic="..." | Topic where form data is located. May be of the form Web.TopicName | Current topic |
format="..." | Format string. $value expands to the field value, and $name expands to the field name, $title to the field title, $form to the name of the form the field is in. The standard format tokens are also expanded. | "$value" |
default="..." | Text shown if the field is defined in the topic, but the field value is empty. For example, a text field for which all the content has been deleted. | "" |
alttext="..." | Text shown if the field is not defined in the topic (even if it is specified in the form definition). For example, this is used when a field exists in the form definition, but the referring topic hasn't been edited since it was added. | "" |
- Example:
%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(no project name given)" alttext="ProjectName field not found in form"}%
- Related: SEARCH
GMTIME{"format"} -- formatted GM time
- Syntax:
%GMTIME%
OR %GMTIME{"format"}%
-
%GMTIME%
uses the default date format defined by the {DefaultDateFormat} setting in configure
- expands to 10 Nov 2024 - 19:45
- Supported special format tokens:
Token: | Unit: | Example |
$seconds | seconds | 59 |
$minutes | minutes | 59 |
$hours | hours | 23 |
$day | day of month | 31 |
$wday | day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) | Thu |
$dow | day of the week (Sun = 0) | 2 |
$week | number of week in year (ISO 8601) | 34 |
$month | short name of month | Dec |
$mo | 2 digit month | 12 |
$year | 4 digit year | 1999 |
$ye | 2 digit year | 99 |
$tz | either "GMT" (if set to gmtime), or "Local" (if set to servertime) | GMT |
$iso | ISO format timestamp | 2024-11-10T19:45:21Z |
$rcs | RCS format timestamp | 2024/11/10 19:45:21 |
$http | E-mail & http format timestamp | Sun, 10 Nov 2024 19:45:21 GMT |
$epoch | Number of seconds since 00:00 on 1st January, 1970 | 1731267921 |
- Tokens can be shortened to 3 characters
- Example:
%GMTIME{"$day $month, $year - $hour:$min:$sec"}%
expands to 10 Nov, 2024 - 19:45:21
- When used in a template topic, this macro will be expanded when the template is used to create a new topic. See TemplateTopics#TemplateTopicsVars for details.
- Related: GMTIME, REVINFO, SERVERTIME
GRAY -- start gray colored text
-
GRAY
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%GRAY% gray text %ENDCOLOR%
- Expands to: gray text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
GREEN -- start green colored text
-
GREEN
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%GREEN% green text %ENDCOLOR%
- Expands to: green text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
GROUPS -- a formatted list of groups
H -- help icon
- Current value: H =
- Related: I, ICON, M, N, P, Q, S, T, U, X, Y
HOMETOPIC -- home topic in each web
HTTP -- get HTTP headers
HTTP_HOST -- environment variable
HTTPS -- get HTTPS headers
- The same as
%HTTP%
but operates on the HTTPS environment variables present when the SSL protocol is in effect. Can be used to determine whether SSL is turned on.
- Syntax:
%HTTPS%
- Syntax:
%HTTPS{"Header-name"}%
- Related: HTTP, REMOTE_ADDR, REMOTE_PORT, REMOTE_USER
I -- idea icon
- Current value: I =
- Related: H, ICON, M, N, P, Q, S, T, U, X, Y
ICON{"name"} -- small documentation graphic or icon of common attachment types
- Generates the HTML img tag of a small graphic image attached to DocumentGraphics. Images typically have a 16x16 pixel size. You can select a specific image by name, or you can give a full filename, in which case the type of the file will be used to select one of a collection of common file type icons.
- Syntax:
%ICON{"name"}%
- Examples:
-
%ICON{"flag-gray"}%
returns
-
%ICON{"pdf"}%
returns
-
%ICON{"smile.pdf"}%
returns
-
%ICON{"/dont/you/dare/smile.pdf"}%
returns
-
%ICON{"http://trunk.foswiki.org/pub/System/DocumentGraphics/xsl.gif"}%
returns
- Graphic samples:
arrowbright
, bubble
, choice-yes
, hand
- File type samples:
bmp
, doc
, gif
, hlp
, html
, mp3
, pdf
, ppt
, txt
, xls
, xml
, zip
- Related: ICONURL, ICONURLPATH, DefaultPreferences, FileAttachments, DocumentGraphics
ICONURL{"name"} -- URL of small documentation graphic or icon
- Generates the full URL of a DocumentGraphics image, which Foswiki renders as an image. The related
%ICON{"name"}%
generates the full HTML img tag. Specify image name or full filename (see ICON for details on filenames.)
- Syntax:
%ICONURL{"name"}%
- Examples:
-
%ICONURL{"arrowbright"}%
returns https://wiki.iac.ethz.ch/pub/System/DocumentGraphics/arrowbright.gif
-
%ICONURL{"novel.pdf"}%
returns https://wiki.iac.ethz.ch/pub/System/DocumentGraphics/pdf.gif
-
%ICONURL{"/queen/boheme.mp3"}%
returns https://wiki.iac.ethz.ch/pub/System/DocumentGraphics/mp3.gif
- Related: ICONURLPATH, ICON, DefaultPreferences, FileAttachments, DocumentGraphics
ICONURLPATH{"name"} -- URL path of small documentation graphic or icon
- Generates the URL path of a DocumentGraphics image, typically used in an HTML img tag. Specify image name or full filename (see ICON for details on filenames.)
- Syntax:
%ICONURLPATH{"name"}%
- Examples:
-
%ICONURLPATH{"locktopic"}%
returns /pub/System/DocumentGraphics/locktopic.gif
-
%ICONURLPATH{"eggysmell.xml"}%
returns /pub/System/DocumentGraphics/xml.gif
-
%ICONURLPATH{"/doc/xhtml.xsl"}%
returns /pub/System/DocumentGraphics/xsl.gif
- Related: ICONURL, ICON, DefaultPreferences, FileAttachments, DocumentGraphics
IF{"condition" ...} -- simple conditionals
- Evaluate a condition and show one text or another based on the result. See details in IfStatements
- Syntax:
%IF{"CONDITION" then="THEN" else="ELSE"}%
shows "THEN"
if "CONDITION"
evaluates to TRUE
, otherwise "ELSE"
will be shown
- Example:
%IF{"defined FUNFACTOR" then="FUNFACTOR is defined" else="FUNFACTOR is not defined"}%
renders as FUNFACTOR is not defined
- Related: $IF() of SpreadSheetPlugin
INCLUDE{"page"} -- include other topic or web page
- Syntax:
%INCLUDE{"page" ...}%
- Supported parameters:
Parameter: | Description: | Default: |
"SomeTopic" | The name of a topic located in the current web, i.e. %INCLUDE{"WebNotify"}% | |
"Web.Topic" | A topic in another web, i.e. %INCLUDE{"System.SiteMap"}% | |
"http://..." | A full qualified URL, i.e. %INCLUDE{"http://foswiki.org:80/index.html"}% . Supported content types are text/html and text/plain . if the URL resolves to an attachment file on the server this will automatically translate to a server-side include. | |
"doc:Foswiki::..." level="3" | Generates the embedded documentation in the given perl module. The optional =level parameter lets you define the base level for headings in the included text. |
pattern="..." | Include a subset of a topic or a web page. Specify a RegularExpression that scans from start ('^' ) to end and contains the text you want to keep in parenthesis, e.g., pattern="^.*?(from here.*?to here).*" . IncludeTopicsAndWebPages has more. | none |
rev="2" | Include a previous topic revision; N/A for URLs | top revision |
raw="on" | When a page is included, normally Wiki will process it, doing the following: 1) Alter relative links to point back to originating host, 2) Remove some basic HTML tags (html, head, body, script) and finally 3) Remove newlines from HTML tags spanning multiple lines. If you prefer to include exactly what is in the source of the originating page set this to on . raw="on" is short for disableremoveheaders="on" , disableremovescript="on" , disableremovebody="on" , disablecompresstags="on" and disablerewriteurls="on" . | disabled |
literal="on" | While using the raw option will indeed include the raw content, the included content will still be processed and rendered like regular topic content. To disable parsing of the included content, set the literal option to "on" . | disabled |
disableremoveheaders="on" | Bypass stripping headers from included HTML (everything until first </head> tag) | disabled |
disableremovescript="on" | Bypass stripping all <script> tags from included HTML | disabled |
disableremovebody="on" | Bypass stripping the </body> tag and everything around over and below it | disabled |
disablecompresstags="on" | Bypass replacing newlines in HTML tags with spaces. This compression step rewrites unmatched <'s into < entities unless bypassed | disabled |
disablerewriteurls="on" | Bypass rewriting relative URLs into absolute ones | disabled |
warn="off" | Warn if topic include fails: Fail silently (if off ); output default warning (if set to on ); else, output specific text (use $topic for topic name) | %INCLUDEWARNING% preferences setting |
section="name" | Includes only the specified named section, as defined in the included topic by the STARTSECTION and ENDSECTION macros. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section | |
PARONE="val 1" PARTWO="val 2" | Any other parameter will be defined as a macro within the scope of the included topic. The example parameters on the left will result in %PARONE% and %PARTWO% being defined within the included topic. | |
- JavaScript in included webpages is filtered out as a security precaution per default (disable filter with
disableremovescript
parameter)
- Examples: See IncludeTopicsAndWebPages
- Related: BASETOPIC, BASEWEB, INCLUDINGTOPIC, INCLUDINGWEB, STARTINCLUDE, STOPINCLUDE, STARTSECTION, ENDSECTION
INCLUDINGTOPIC -- name of topic that includes current topic
- The name of the topic that includes the current topic - same as
%TOPIC%
in case there is no include
- If a topic is used in a chain of INCLUDEs, INCLUDINGTOPIC is set to the topic directly INCLUDing this one, NOT the topic that has been requested by the user (which is set in BASETOPIC)
- WARNING: While this Macro may appear to work, unless you require the subtle difference between INCLUDINGTOPIC and BASETOPIC, you probably should use BASETOPIC.
- Syntax:
%INCLUDINGTOPIC%
- Related: BASETOPIC, INCLUDINGWEB, INCLUDE, TOPIC
INCLUDINGWEB -- web that includes current topic
- The web name of the topic that includes the current topic - same as
%WEB%
if there is no INCLUDE.
- If a topic is used in a chain of INCLUDEs, INCLUDINGWEB is set to the topic directly INCLUDing this one, NOT the web that has been requested by the user (which is set in BASEWEB)
- WARNING: While this Macro may appear to work, unless you require the subtle difference between INCLUDINGWEB and BASEWEB, you probably should use BASEWEB.
- Syntax:
%INCLUDINGWEB%
- Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, WEB
LANGUAGE -- current user's language
- Returns the language code for the language used as the current user. This is the language actually used by Foswiki (e.g. in user interface).
- The language is detected from the user's browser, unless some site/web/user/session-defined setting overrides it:
- If the
LANGUAGE
preference is set, it's used as user's language instead of any language detected from the browser.
- Avoid defining
LANGUAGE
at a non per-user way, so each user can choose his/her preferred language.
- Related: LANGUAGES
LANGUAGES -- list available languages
- List the languages available (as
PO
files). These are the languages in which the user interface is available.
- Syntax:
%LANGUAGES{...}%
- Supported parameters:
Parameter: | Description: | Default: |
format | format for each item. See below for format tokens available in the format string. | " * $langname" |
separator | separator between items. | "\n" (newline) |
marker="selected" | Text for $marker if the item matches selection | "selected" |
selection="%LANGUAGE%" | Current language to be selected in list | (none) |
-
format
tokens: Token | Meaning |
$langname | language's name, as informed by the translators |
$langtag | language's tag. Ex: en , pt-br , etc. |
- Example:
<select>%LANGUAGES{format="<option $marker value='$langtag'>$langname</option>" selection="%LANGUAGE%"}%</select>
creates an option list of the available languages with the current language selected
LIME -- start lime colored text
-
LIME
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%LIME% lime text %ENDCOLOR%
- Expands to: lime text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
LOCALSITEPREFS -- web.topicname of site preferences topic
- The full name of the local site preferences topic. These local site preferences overload the system level preferences defined in System.DefaultPreferences.
- Syntax:
%LOCALSITEPREFS%
- Expands to:
Main.SitePreferences
, renders as SitePreferences
LOGIN -- present a full login link
LOGOUT -- present a full logout link
M -- moved to... icon
- Current value: M =
- Related: H, I, ICON, N, P, Q, S, T, U, X, Y
MAINWEB -- synonym for USERSWEB
- Deprecated. Please use %USERSWEB% instead.
MAKETEXT -- creates text using Foswiki's I18N infrastructure
- Syntax:
%MAKETEXT{"string" args="..."}%
- Supported parameters:
Parameter | Description | Default |
"text" or string="text" | The text to be displayed. | none |
args="param1, param2" | a comma-separated list of arguments to be interpolated in the string, replacing the [_N] placeholders in it. | none |
- Examples:
-
%MAKETEXT{string="Notes:"}%
expands to
Notes:
-
%MAKETEXT{"If you have any questions, please contact [_1]." args="%WIKIWEBMASTER%"}%
expands to
If you have any questions, please contact urs.beyerle@env.ethz.ch.
-
%MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="%SYSTEMWEB%.ResetPassword,%WIKIUSERNAME%"}%
expands to
Did you want to reset Main.WikiGuest's password?
- Notes:
- Foswiki will translate the
string
to the current user's language only if it has such string in its translation table for that language.
- Amperstands (
&
) followed by one letter (one of a...z, A...Z) (say, X
) in the translatable string will be translated to <span class='foswikiAccessKey'>X</span>
. This is used to implement access keys. If you want to write an actual amperstand that stays just before a letter, write two consecutive amperstands (&&
): they will be transformed in just one.
- translatable string starting with underscores (
_
) are reserved. You cannot use translatable phrases starting with an underscore.
- Make sure that the translatable string is constant. Specially, do not include
%MACROS%
inside the translatable strings (since they will get expanded before the %MAKETEXT{...}%
itself is handled).
MAROON -- start maroon colored text
-
MAROON
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%MAROON% maroon text %ENDCOLOR%
- Expands to: maroon text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
META -- displays meta-data
- Provided mainly for use in templates, this macro generates the parts of the topic view that relate to meta-data (attachments, forms etc.) The
formfield
item is the most likely to be useful to casual users.
- Syntax:
%META{ "item" ...}%
- Parameters:
Item | Options | Description |
"formfield" | name="..." : name of the field. The field value can be shortened as described in FormattedSearch for $formfield newline="..." : by default, each newline character will be rewritten to <br /> to allow metadata that contains newlines to be used in tables, etc. $n indicates a newline character. bar="..." : by default, each vertical bar is rewritten to an HTML entity so as to not be mistaken for a table separator. | Show a single form field |
"form" | none | Generates the table showing the form fields. See Form Definition |
"attachments" | all="on" to show hidden attachments. title="..." to show a title - only if attachments are displayed. template="..." to use a custom template for the rendering of attachments; default attachtables is used. | Generates the list of attachments |
"moved" | none | Details of any topic moves |
"parent" | dontrecurse="on" : By default recurses up tree, this has some cost. Equivalent to depth=1 depth="..." : Return only the specified ancestor. nowebhome="on" : Suppress WebHome. prefix="..." : Prefix that goes before parents, but only if there are parents, default "" . format="..." : Format string used to display each parent topic where $web expands to the web name, and $topic expands to the topic name; default: "[[$web.$topic][$topic]]" suffix="..." : Suffix, only appears if there are parents; default "" . separator="..." : Separator between parents; default " > " . | Generates the parent link |
- Related: METASEARCH
METASEARCH -- special search of meta data
- Syntax:
%METASEARCH{...}%
- Supported parameters:
Parameter: | Description: | Default: |
type="topicmoved" | What sort of search is required? "topicmoved" if search for a topic that may have been moved "parent" if searching for topics that have a specific parent i.e. its children "field" if searching for topics that have a particular form field value (use the name and value parameters to specify which field to search) | Required |
web="%WEB%" | Wiki web to search: A web, a list of webs separated by whitespace, or all webs. | Current web |
topic="%TOPIC%" | The topic the search relates to, for topicmoved and parent searches | All topics in a web |
name | form field to search, for field type searches. May be a regular expression (see SEARCH). | |
value | form field value, for field type searches. May be a regular expression (see SEARCH). | |
title="Title" | Text that is prefixed to any search results | empty |
format="..." | Custom format results. Supports same format strings as SEARCH. See FormattedSearch for usage & examples | Results in table |
default="none" | Default text shown if no search hit | Empty |
- Example:
%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
- Example: You may want to use this in WebTopicViewTemplate? and WebTopicNonWikiTemplate?:
%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
- Example:
%METASEARCH{type="field" name="Country" value="China"}%
- Related: SEARCH, META
- METASEARCH is deprecated in favour of the new and much more powerful query type search. See SEARCH and QuerySearch.
N -- "new" icon
- Current value: N =
- Related: H, I, ICON, M, P, Q, S, T, U, X, Y
NAVY -- start navy blue colored text
-
NAVY
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%NAVY% navy text %ENDCOLOR%
- Expands to: navy text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
NOP -- template text not to be expanded in instantiated topics
- Syntax:
%NOP%
- In normal topic text, expands to <nop>, which prevents expansion of adjacent macros and wikiwords
- When the topic containing this is used as a template for another topic, it is removed.
- Syntax:
%NOP{...}%
deprecated
- In normal topic text, expands to whatever is in the curly braces (if anything).
- This is deprecated. Do not use it. Use
%STARTSECTION{type="templateonly"}%
.. %ENDSECTION{type="templateonly"}%
instead (see TemplateTopics for more details).
- Related: STARTSECTION, TemplateTopics
NOTIFYTOPIC -- name of the notify topic
OLIVE -- start olive green colored text
-
OLIVE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%OLIVE% olive text %ENDCOLOR%
- Expands to: olive text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
ORANGE -- start orange colored text
-
ORANGE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%ORANGE% orange text %ENDCOLOR%
- Expands to: orange text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
P -- pencil icon
- Current value: P =
- Related: H, I, ICON, M, N, Q, S, T, U, X, Y
PINK -- start pink colored text
-
PINK
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%PINK% pink text %ENDCOLOR%
- Expands to: pink text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
PLUGINDESCRIPTIONS -- list of plugin descriptions
- Syntax:
%PLUGINDESCRIPTIONS%
- Expands to:
- TWikiCompatibilityPlugin (Foswiki-1.0.9, $Rev: 6017 (2010-01-11) $): add TWiki personality to Foswiki
- SpreadSheetPlugin (10 Nov 2009, $Rev: 5484 (2009-11-10) $): Add spreadsheet calculations like "$SUM($ABOVE())" to Foswiki tables and other topic text
- AutoViewTemplatePlugin (2009-09-06, $Rev: 5221 (2009-10-06) $): Automatically sets VIEW_TEMPLATE and EDIT_TEMPLATE
- BreadCrumbsPlugin (v2.42, 4694): A flexible way to display breadcrumbs navigation
- CalendarPlugin (2.000, $Rev: 8058 (2010-07-07) $): Show a monthly calendar with highlighted events
- ChartPlugin (13 Mar 2010, $Rev: 6743 (2010-03-14) $): Create PNG or GIF charts to visualize Foswiki tables
- CommentPlugin (24 Feb 2010, $Rev: 6512 (2010-02-24) $): Quickly post comments to a page without an edit/save cycle
- DBCachePlugin (3.50, $Rev: 8342 (2010-07-28) $): Lightweighted frontend to the DBCacheContrib
- EditChapterPlugin (2.12, $Rev: 6337 (2010-02-15) $): An easy sectional edit facility
- EditTablePlugin (4.34, $Rev: 5854 (2009-12-23) $): Edit tables using edit fields, date pickers and drop down boxes
- ExplicitNumberingPlugin (1.6, $Rev: 6482 (2010-02-23) $): Use the
##.,
##..
etc. notation to insert outline numbering sequences (1, 1.1, 2, 2.1) in topic's text. Also support numbered headings. - ExternalLinkPlugin (1.21, $Rev: 5906 (2009-12-31) $): Adds a visual indicator to outgoing links
- FilterPlugin (2.03, $Rev: 8284 (2010-07-23) $): Substitute and extract information from content by using regular expressions
- FlexWebListPlugin (v1.51, $Rev: 5698 (2009-12-02) $): Flexible way to display hierarchical weblists
- GluePlugin (2.20, $Rev: 4420 (2009-07-03) $): Enable markup to span multiple lines
- HeadlinesPlugin (2.21.2, $Rev: 6822 (2010-03-21) $): Show headline news in Foswiki pages based on RSS and ATOM news feeds from external sites
- IfDefinedPlugin (v2.00, $Rev: 4422 (2009-07-03) $): Render content conditionally
- ImagePlugin (2.31, $Rev: 6307 (2010-02-12) $): Control the display and alignment of images using an easy syntax
- InterwikiPlugin (20 Sep 2009, $Rev: 5022 (2009-09-20) $): Link ExternalSite?:Page text to external sites based on aliases defined in a rules topic
- JQueryLibPlugin (v1.0, $Rev: 3729 (2009-04-28) $): Provides you with the jQuery javascript library
- JQueryPlugin (3.51, $Rev: 20090710 (2009-07-10) $): jQuery JavaScript library for Foswiki
- LatexModePlugin (4.0, $Rev: 4721 (2009-08-28) $): Enables LaTeX markup (mathematics and more) in Foswiki topics
- LdapNgPlugin (v3.00, $Rev: 3726 (2009-04-27) $): Query and display data from an LDAP directory
- MathModePlugin (4.01, $Rev: 3649 (2009-04-23) $): Include LaTeX formatted math in your Foswiki pages
- NatEditPlugin (v4.21, $Rev: 6336 (2010-02-15) $): A Wikiwyg Editor
- NatSkinPlugin (3.96, $Rev: 6287 (2010-02-12) $): Theming engine for NatSkin
- NewUserPlugin (v2.00, $Rev: 3642 (2009-04-23) $): Create a user topic if it does not exist yet
- PreferencesPlugin (20 Sep 2009, $Rev: 5037 (2009-09-20) $): Allows editing of preferences using fields predefined in a form
- RedirectPlugin (1.1, $Rev: 7923 (2010-06-26) $): Create a redirect to another topic or website.
- RenderListPlugin (2.2, $Rev: 5042 (2009-09-20) $): Render bullet lists in a variety of formats
- RenderPlugin (3.0, 4818): Render WikiApplications asynchronously
- SendEmailPlugin (1.5.1, $Rev: 6581 (2010-02-28) $): Allows to send e-mails through an e-mail form.
- SetVariablePlugin (1.00, $Rev: 4287 (2009-06-23) $): Flexible handling of topic variables
- SlideShowPlugin (02 Aug 2008, $Rev: 2742 (2009-02-26) $): Create web based presentations based on topics with headings.
- SmiliesPlugin (20 Sep 2009, $Rev: 5046 (2009-09-20) $): Render smilies like as icons
- SubscribePlugin (03 Dec 2008, $Rev: 13787 (18 May 2007) $): Subscribe to web notification
- SyntaxHighlightingPlugin (1.2, $Rev: 4052 (2009-06-07) $): Highlights code fragments for many languages using
enscript
. - TablePlugin (1.046, $Rev: 6733 (2010-03-13) $): Control attributes of tables and sorting of table columns
- TagMePlugin (02 Mar 2010, $Rev: 6613 (2010-03-02) $): Tag wiki content collectively to find content by keywords
- TwistyPlugin (1.5.4, $Rev: 6281 (2010-02-12) $): Twisty section Javascript library to open/close content dynamically
- UploadPlugin (1.11, $Rev: 20090703 (2009-07-03) $): Attach multiple files to a topic in one go
- VarCachePlugin (29 Jan 2009, $Rev: 2215 (29 Jan 2009) $): Cache Foswiki macros in selected topics for faster page rendering
- VotePlugin (1.33, $Rev: 5560 (2009-11-17) $): Simple way to count votes
- ZonePlugin (2.1, $Rev: 6966 (2010-03-28) $): Gather content of a page in named zones while rendering it
- Related: ACTIVATEDPLUGINS, FAILEDPLUGINS, PLUGINVERSION
PLUGINVERSION -- the version of a Foswiki Plugin, or the Foswiki Plugins API
- Syntax:
%PLUGINVERSION{"name"}%
to get the version of a specific plugin
- Example:
%PLUGINVERSION{"InterwikiPlugin"}%
expands to $Rev: 5022 (2009-09-20) $
- Syntax:
%PLUGINVERSION%
to get the version of the API
- Expands to:
2.0
- Related: WIKIVERSION, ACTIVATEDPLUGINS, FAILEDPLUGINS, PLUGINDESCRIPTIONS
PUBURL -- the base URL of attachments
PUBURLPATH -- the base URL path of attachments
PURPLE -- start purple colored text
-
PURPLE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%PURPLE% purple text %ENDCOLOR%
- Expands to: purple text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
Q -- question icon
- Current value: Q =
- Related: H, I, ICON, M, N, P, S, T, U, X, Y
QUERYPARAMS -- show paramaters to the query
- Expands the parameters to the query that was used to display the page.
- Syntax:
%QUERYPARAMS{...}%
- Supported parameters:
Parameter: | Description: | Default: |
format="..." | Format string for each entry | $name=$value |
separator="..." | Separator string | separator="$n" (newline) |
encoding="entity" encoding="safe" encoding="html" encoding="quotes" encoding="url" | Control how special characters are encoded. If this parameter is not given, "safe" encoding is performed which HTML entity encodes the characters '"<>% . entity : Encode special characters into HTML entities, like a double quote into " . Does not encode \n or \r . safe : Encode characters '"<>% into HTML entities. (this is the default) html : As type="entity" except it also encodes \n and \r quotes : Escape double quotes with backslashes (\" ), does not change other characters url : Encode special characters for URL parameter use, like a double quote into %22 | type="safe" |
- The following escape sequences are expanded in the format string:
Sequence: |
Expands To: |
$name |
Name of the parameter |
$value |
String value of the parameter. Multi-valued parameters will have a "row" for each value. |
$n or $n() |
New line. Use $n() if followed by alphanumeric character, e.g. write Foo$n()Bar instead of Foo$nBar |
$nop or $nop() |
Is a "no operation". This token gets removed; useful for nested search |
$quot |
Double quote (" ) (\" also works) |
$percnt |
Percent sign (% ) |
$dollar |
Dollar sign ($ ) |
$lt |
Less than sign (< ) |
$gt |
Greater than sign (> ) |
$amp |
Ampersand (& ) |
- Example:
-
%QUERYPARAMS{format="<input type='hidden' name='$name' value='$value' encoding="entity" />"}%
- Security warning!
Using QUERYPARAMS can easily be misused for cross-site scripting unless specific characters are entity encoded. By default QUERYPARAMS encodes the characters '"<>%
into HTML entities (same as encoding="safe") which is relatively safe. The safest is to use encoding="entity". When passing QUERYPARAMS inside another macro always use double quotes ("") combined with using QUERYPARAMS with encoding="quote". For maximum security against cross-site scripting you are adviced to install the Foswiki:Extensions.SafeWikiPlugin.
- See also QUERYSTRING, URLPARAM
QUERYSTRING -- full, unprocessed string of parameters to this URL
- String of all the URL parameters that were on the URL used to get to the current page. For example, if you add ?name=Samantha;age=24;eyes=blue to this URL you can see this in action. This string can be appended to a URL to pass parameter values on to another page.
- URLs built this way are typically restricted in length, typically to 2048 characters. If you need more space than this, you will need to use an HTML form and
%QUERYPARAMS%
.
- Syntax:
%QUERYSTRING%
- Expands to:
cover=print.nat;sortcol=1;table=26
- Related: QUERYPARAMS, URLPARAM
RED -- start red colored text
-
RED
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%RED% red text %ENDCOLOR%
- Expands to: red text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
! * Related:
ENDCOLOR,
DefaultPreferences,
StandardColors
REMOTE_ADDR -- environment variable
REMOTE_PORT -- environment variable
REMOTE_USER -- environment variable
RENDERLIST -- render bullet lists in a variety of formats
- The
%RENDERLIST%
macro is handled by the RenderListPlugin
- Syntax:
%RENDERLIST%
- Syntax:
%RENDERLIST{ "org" focus="Sales.WestCoastTeam" }%
- Example:
%RENDERLIST{ "org" }%
* [[Eng.WebHome][Engineering]]
* [[Eng.TechPubs][Tech Pubs]]
* [[Sales.WestCoastTeam][Sales]]
* [[Sales.EastCoastTeam][East Coast]]
* [[Sales.WestCoastTeam][West Coast]]
- Related: RenderListPlugin
RENDERZONE
%RENDERZONE{"zone" ...}%
- zone: required, name of the zone to be expanded
- header: optional, prefix format string
- format: optional, format string for each item added to the zone, defaults to
$item
, any standard escapes like $percnt
, $dollar
etc can be used to delay evaluation order of the format parameter
- chomp: removed leading and trailing whitespace in formatted items, useful to pretty-print them one per line
- footer: optional, suffix format string
- separator: optional, put between each item of a zone
Note, that you can create as many zones as you like. The plugin does not restrict you to use it only for
body
and
head
. Interesting use cases in wiki applications:
- create a
sidebar
zone to add widgets
- create a
toolbar
zone to add buttons icons
See also
VarADDTOZONE
REVINFO -- revision information of current topic
- Syntax:
- Date format defined as {DefaultDateFormat} in configure
REVINFO{"format"} -- formatted revision information of topic
- Syntax:
%REVINFO%
OR %REVINFO{"format"}%
-
%REVINFO%
is equivalent to %REVINFO{format="r1.$rev - $date - $wikiusername"}%
- Supported parameters:
Parameter: | Description: | Default: |
"format" | Format of revision information, see supported formatting tokens below | "r1.$rev - $date - $wikiusername" |
web="..." | Name of web | Current web |
topic="..." | Topic name | Current topic |
rev="1.5" | Specific revision number | Latest revision |
- Supported formatting tokens:
Token: | Unit: | Example |
$web | Name of web | Current web |
$topic | Topic name | Current topic |
$rev | Revision number. Prefix r1. to get the usual r1.5 format | 5 |
$username | Login username of revision | jsmith |
$wikiname | WikiName of revision | JohnSmith |
$wikiusername | WikiName with Main web prefix | Main.JohnSmith |
$date | Revision date. Actual date format defined as {DefaultDateFormat} in configure | 21 Sep 2006 |
$time | Revision time | 23:24:25 |
$iso | Revision date in ISO date format | 2006-09-22T06:24:25Z |
$min , $sec , etc. | Same date format qualifiers as GMTIME{"format"} | |
- Example:
%REVINFO{"$date - $wikiusername" rev="1.1"}%
returns revision info of first revision
- Related: GMTIME{"format"}, REVINFO
S -- red star icon
- Current value: S =
- Related: H, I, ICON, M, N, P, Q, T, U, X, Y
SCRIPTNAME -- name of current script
- The name of the current script is shown, including script suffix, if any (for example
viewauth.cgi
)
- Syntax:
%SCRIPTNAME%
- Expands to:
view
- Related: SCRIPTSUFFIX, SCRIPTURL, SCRIPTURLPATH
SCRIPTSUFFIX -- script suffix
- Some Wiki installations require a file extension for CGI scripts, such as
.pl
or .cgi
- Syntax:
%SCRIPTSUFFIX%
- Expands to:
- Related: SCRIPTNAME, SCRIPTURL, SCRIPTURLPATH
SCRIPTURL{"script"} -- URL of script
- Syntax:
%SCRIPTURL%
OR %SCRIPTURL{"script"}%
-
%SCRIPTURL%
returns the base URL of scripts - expands to https://wiki.iac.ethz.ch/bin
- Expands to:
https://wiki.iac.ethz.ch/bin/script
- Example: To get the authenticated version of the current topic you can write
%SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC%
which expands to https://wiki.iac.ethz.ch/bin/viewauth/System/Macros
- In most cases you should use
%SCRIPTURLPATH{"script"}%
instead, as it works with URL rewriting much better
- The
edit
script should always be used in conjunction with ?t=%GMTIME{"$epoch"}%
to ensure pages about to be edited are not cached in the browser
- Related: PUBURL, SCRIPTNAME, SCRIPTSUFFIX, SCRIPTURLPATH
SCRIPTURLPATH{"script"} -- URL path of script
- As
%SCRIPTURL{"script"}%
, but doesn't include the protocol and host part of the URL
- Syntax:
%SCRIPTURL%
OR %SCRIPTURLPATH{"script"}%
- Expands to:
/bin/script
- The
edit
script should always be used in conjunction with ?t=%GMTIME{"$epoch"}%
to ensure pages about to be edited are not cached in the browser
- Related: PUBURLPATH, SCRIPTNAME, SCRIPTSUFFIX, SCRIPTURL
SEARCH{"text"} -- search content
- Inline search, shows a search result embedded in a topic
- Syntax:
%SEARCH{"text" ...}%
- Supported parameters:
Parameter: | Description: | Default: |
"text" | Search term. Is a keyword search, literal search, regular expression search, or query, depending on the type parameter. SearchHelp has more | required |
search="text" | (Alternative to above) | N/A |
web="Name" web="Main, Know" web="all" | Comma-separated list of webs to search. You can specifically exclude webs from an all search using a minus sign - for example, web="all,-Secretweb" . The special word all means all webs that do not have the NOSEARCHALL preference set to on in their WebPreferences. Note that AccessControls are respected when searching webs; it is much better to use them than NOSEARCHALL . | Current web |
topic="WebPreferences" topic="*Bug" | Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. Note this is a list of topic names and must not include web names. | All topics in a web |
excludetopic="Web*" excludetopic="WebHome, WebChanges" | Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. Note this is a list of topic names and must not include web names. | None |
scope="topic" scope="text" scope="all" | Search topic name (title); the text (body) of topic; or all (title and body) | "text" |
type="keyword" type="word" type="literal" type="regex" type="query" | Control how the search is performed when scope="text" or scope="all" keyword : use Google-like controls as in soap "web service" -shampoo ; searches word parts: using the example, topics with "soapsuds" will be found as well, but topics with "shampoos" will be excluded word : identical to keyword but searches whole words: topics with "soapsuds" will not be found, and topics with "shampoos" will not be excluded literal : search for the exact string, like web service regex : use a RegularExpression search like soap;web service;!shampoo ; to search on whole words use \bsoap\b query : query search of form fields and other meta-data, like (Firstname='Emma' OR Firstname='John') AND Lastname='Peel' | %SEARCHVAR- DEFAULTTYPE% preferences setting (literal) |
order="topic" order="created" order="modified" order="editby" order= "formfield(name)" | Sort the results of search by the topic names, topic creation time, last modified time, last editor's WikiName, or named field of DataForms. The sorting is done web by web; if you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort. Note that dates are sorted most recent date last (i.e at the bottom of the table). | Sort by topic name |
limit="all" limit="16" | Limit the number of topics from which results will be returned. This is done after sorting if order is specified. Note that this does not limit the number of hits from the same topic when you have multiple="on". | All results |
date="..." | limits the results to those pages with latest edit time in the given time interval. | All results |
reverse="on" | Reverse the direction of the search | Ascending search |
casesensitive="on" | Case sensitive search | Ignore case |
bookview="on" | BookView search, e.g. show complete topic text. Very resource demanding. Use only with small result sets | Show entire topic content. |
nonoise="on" | Shorthand for nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" | Off |
nosummary="on" | Show topic title only | Show topic summary |
nosearch="on" | Suppress search string | Show search string |
noheader="on" | Suppress default search header Topics: Changed: By: , unless a header is explicitly specified | Show default search header, unless search is inline and a format is specified (Cairo compatibility) |
nototal="on" | Do not show number of topics found | Show number |
zeroresults="off" | Suppress all output if there are no hits | zeroresults="on" , displays: "Number of topics: 0" |
noempty="on" | Suppress results for webs that have no hits. | Show webs with no hits |
header="..." format="..." footer="..." | Custom format results: see FormattedSearch for usage & examples | Results in table |
expandvariables="on" | Expand embedded macros before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin %CALC{}% instead of the formula | Raw text |
multiple="on" | Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search | Only one hit per topic |
nofinalnewline="on" | If on , the search variable does not end in a line by itself. Any text continuing immediately after the SEARCH macro on the same line will be rendered as part of the table generated by the search, if appropriate. | off |
recurse="on" | Recurse into subwebs, if subwebs are enabled. | off |
separator=", " | Line separator between search hits | "$n" (Newline) |
newline="%BR%" | Line separator within a search hit. Useful if you want to put multi-line content into a table cell, for example if the format="" parameter contains a $pattern() that captures more than one line, or contains a $formfield() that returns a multi-line textfield. | "$n" (Newline) |
- Example:
%SEARCH{"wiki" web="Main" scope="topic"}%
- Example with format:
%SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"}%
(displays results in a table with header - details)
- If the Foswiki:Extensions.TablePlugin is installed, you may put a
%TABLE{}%
macro just before the %SEARCH{}%
to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
- Related: METASEARCH, TOPICLIST, WEBLIST, FormattedSearch, QuerySearch, SearchHelp, SearchPatternCookbook, RegularExpression
SERVERTIME{"format"} -- formatted server time
- Same format qualifiers as
%GMTIME%
- Syntax:
%SERVERTIME%
OR %SERVERTIME{"format"}%
-
%SERVERTIME%
uses the Date format defined as {DefaultDateFormat} in configure
- Example:
%SERVERTIME{"$hou:$min"}%
expands to 20:45
- Note: When used in a template topic, this macro will be expanded when the template is used to create a new topic. See TemplateTopics#TemplateTopicsVars for details.
- Related: GMTIME, SERVERTIME
SESSIONID -- unique ID for this session
SESSIONVAR -- name of CGI and session variable that stores the session ID
SESSION_VARIABLE -- get, set or clear a session variable
SILVER -- start silver colored text
-
SILVER
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%SILVER% silver text %ENDCOLOR%
- Expands to: silver text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
SLIDESHOWEND -- end slideshow
SLIDESHOWSTART -- convert a topic with headings into a slideshow
- The
%SLIDESHOWSTART%
macro is handled by the SlideShowPlugin
- Syntax:
%SLIDESHOWSTART%
- Syntax:
%SLIDESHOWSTART{ template="MyOwnSlideTemplate" }%
- Example:
%SLIDESHOWSTART%
---++ Sample Slide 1
* Bullet 1
* Bullet 2
---++ Sample Slide 2
* Bullet 1
* Bullet 2
%SLIDESHOWEND%
- Related: SLIDESHOWEND, SlideShowPlugin
SPACEDTOPIC -- topic name, spaced and URL-encoded deprecated
- The current topic name with added URL-encoded spaces, for use in regular expressions that search for backlinks to the current topic
- Syntax:
%SPACEDTOPIC%
- Expands to:
Var%20*SPACEDTOPIC
- This is a deprecated macro. It can be duplicated with
%ENCODE{%SPACEOUT{"%TOPIC%" separator=" *"}%}%
- Related: SPACEOUT, TOPIC, ENCODE
SPACEOUT{"string"} -- renders string with spaces inserted in sensible places
- Inserts spaces after lower case letters that are followed by a digit or a capital letter, and after digits that are followed by a capital letter.
- Useful for spacing out WikiWords
- Syntax:
%SPACEOUT{ "%TOPIC%" }%
- Expands to:
Macros
- Supported parameters:
Parameter: | Description: | Default: |
separator | The separator to put between words e.g. %SPACEOUT{"DogsCatsBudgies" separator=", "}% -> Dogs, Cats, Budgies | ' ' |
- Spaced out WikiWords are not automatically linked. To SPACEOUT a WikiWord but preserve the link use "double bracket" format. For example,
[[WebHome][%SPACEOUT{"WebHome"}%]]
expands to Web Home
- Related: SPACEDTOPIC, $PROPERSPACE() of SpreadSheetPlugin
STARTINCLUDE -- start position of topic text if included
- If present in included topic, start to include text from this location up to the end, or up to the location of the
%STOPINCLUDE%
macro. A normal view of the topic shows everything exept the %STARTINCLUDE%
macro itself.
- If you want more than one part of the topic included, use
%STARTSECTION{type="include"}%
instead
- Syntax:
%STARTINCLUDE%
- Related: INCLUDE, STARTSECTION, STOPINCLUDE
STARTSECTION -- marks the start of a section within a topic
- Section boundaries are defined with
%STARTSECTION{}%
and %ENDSECTION{}%
.
- Sections may be given a name to help identify them, and/or a type, which changes how they are used.
-
type="section"
- the default, used for a generic section, such as a named section used by INCLUDE.
-
type="include"
- like %STARTINCLUDE%
... %STOPINCLUDE%
except that you can have as many include blocks as you want (%STARTINCLUDE%
is restricted to only one).
-
type="expandvariables"
- all macros inside an "expandvariables" type section gets expanded when a new topic based on the template topic is created. See TemplateTopics for more information.
-
type="templateonly"
- start position of text to be removed when a template topic is used. This is used to embed text that you do not want expanded when a new topic based on the template topic is created. See TemplateTopics for more information.
- Syntax:
%STARTSECTION{"name"}% ................... %ENDSECTION{"name"}%
- Syntax:
%STARTSECTION{type="include"}% ........... %ENDSECTION{type="include"}%
- Syntax:
%STARTSECTION{type="expandvariables"}% ... %ENDSECTION{type="expandvariables"}%
- Syntax:
%STARTSECTION{type="templateonly"}% ...... %ENDSECTION{type="templateonly"}%
- Supported parameters:
Parameter: | Description: | Default |
"name" | Name of the section. Must be unique inside a topic. | Generated name |
type="..." | Type of the section; type "section" , "expandvariables" , "include" or "templateonly" | "section" |
- If a section is not given a name, it will be assigned one. Unnamed sections are assigned names starting with
_SECTION0
for the first unnamed section in the topic, _SECTION1
for the second, etc..
- You can define nested sections. It is not recommended to overlap sections, although it is valid in Foswiki. Use named sections to make sure that the correct START and ENDs are matched. Section markers are not displayed when a topic is viewed.
- Related: ENDSECTION, INCLUDE, NOP, STARTINCLUDE, STOPINCLUDE
STATISTICSTOPIC -- name of statistics topic
STOPINCLUDE -- end position of topic text if included
- If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the
%STOPINCLUDE%
macro itself.
- Syntax:
%STOPINCLUDE%
- Related: INCLUDE, STARTINCLUDE
SUBSCRIBE{ attributes } - subscribe the current user for notification of changes to the current topic
Anywhere in a topic or template:
-
%SUBSCRIBE{...}%
or simply %SUBSCRIBE%
Parameter |
Default |
Meaning |
who |
Logged-in user |
Who to subscribe (wikiname, no web) |
topic |
Current topic |
Topic to subscribe to. Wildcards may be used e.g. topic="Item*" will subscribe to all topics starting with Item . Use topic="Main.*" to subscribe to the WebNotify for that web. |
unsubscribe |
Not set |
If set to "on", will unsubscribe the user |
format |
Simple HTML Link with an action anchor "Subscribe" or "Unsubscribe" |
Defines custom look-and-feel for subscribe link using the following format variables: $topics , $url , $wikiname , $action |
formatunsubscribe |
format |
Serves same function as format , but allows the user to define a different format than subscribe . |
- The button toggles subscribe/unsubscribe if the user is already subscribed or vice versa. So after the next click on the button, the user will be unsubscribed.
- The plugin will do the best it can to optimise the subscription lists in WebNotify.
SYSTEMWEB -- name of documentation web
T -- tip icon
- Current value: T =
- Related: H, I, ICON, M, N, P, Q, S, U, X, Y
TABLE{ attributes } -- control attributes of tables and sorting of table columns
- The
%TABLE{}%
macro is handled by the TablePlugin
- Syntax:
%TABLE{ attributes }%
- Supported attributes:
Argument | Comment | Default value | Example |
sort | Set table sorting by clicking headers "on" or "off" . | unspecified | sort="on" |
initsort | Column to sort initially ("1" to number of columns). | unspecified | initsort="2" |
initdirection | Initial sorting direction for initsort , set to "up" (descending) or "down" (ascending). | unspecified | initdirection="up" |
disableallsort | Disable all sorting, both initsort and header sort. This is mainly used by plugins such as the EditTablePlugin to disable sorting in a table while editing the table. | unspecified | disableallsort="on" |
headerbg | Header cell background colour. | "#6b7f93" | headerbg="#999999" |
headerbgsorted | Header cell background colour of a sorted column. | the value of headerbg | headerbgsorted="#32596c" |
headercolor | Header cell text colour. | "#ffffff" | headercolor="#0000cc" |
databg | Data cell background colour, a comma separated list. Specify "none" for no colour, that is to use the colour/background of the page the table is on. | "#edf4f9,#ffffff" | databg="#f2f2f2,#ffffff" |
databgsorted | Data cell background colour of a sorted column; see databg . | the values of databg | databgsorted="#d4e8e4,#e5f5ea" |
datacolor | Data cell text colour, a comma separated list. | unspecified | datacolor="#0000CC, #000000" |
tableborder | Table border width (pixels). | "1" | tableborder="2" |
tableframe | Table frame, set to "void" (no sides), "above" (the top side only), "below" (the bottom side only), "hsides" (the top and bottom sides only), "lhs" (the left-hand side only), "rhs" (the right-hand side only), "vsides" (the right and left sides only), "box" (all four sides), "border" (all four sides). | unspecified | tableframe="hsides" |
tablerules | Table rules, set to "none" (no rules), "groups" (rules will appear between row groups and column groups only), "rows" (rules will appear between rows only), "cols" (rules will appear between columns only), "all" (rules will appear between all rows and columns). | unspecified | tablerules="rows" |
cellpadding | Cell padding (pixels). | "0" | cellpadding="0" |
cellspacing | Cell spacing (pixels). | "0" | cellspacing="3" |
cellborder | Cell border width (pixels). | unspecified | cellborder="0" |
valign | Vertical alignment of cells and headers, set to "top" , "middle" , "bottom" or "baseline" . | unspecified | valign="top" |
headervalign | Vertical alignment of header cells; overrides valign . | unspecified | headervalign="top" |
datavalign | Vertical alignment of data cells; overrides valign . | unspecified | datavalign="top" |
headeralign | Header cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to "left" , "center" , "right" or "justify" . Overrides individual cell settings. | unspecified | headeralign="left,right" |
dataalign | Data cell alignment, one value for all columns, or a comma separated list for different alignment of individual columns. Set to "left" , "center" , "right" or "justify" . Overrides individual cell settings. | unspecified | dataalign="center" |
tablewidth | Table width: Percentage of window width, or absolute pixel value. | unspecified | tablewidth="100%" |
columnwidths | Column widths: Comma delimited list of column widths, percentage or absolute pixel value. | unspecified | columnwidths="80%,20%" |
headerrows | Number of header rows to exclude from sort. (will be rendered in a HTML thead section) | "1" | headerrows="1" |
footerrows | Number of footer rows to exclude from sort. (will be rendered in a HTML tfoot section) | "0" | footerrows="1" |
id | Unique table identifier string, used for targeting a table with CSS. | tableN (where N is the table order number on the page) | id="userTable" |
summary | Table summary used by screenreaders: A summary of what the table presents. It should provide an orientation for someone who listens to the table. | unspecified | summary="List of subscribed users" |
caption | Table caption: A title that will be displayed just above the table. | unspecified | caption="Users" |
- Example:
%TABLE{ tableborder="0" cellpadding="4" cellspacing="3" cellborder="0" }%
| *A1* | *B1* |
| A2 | B2 |
- Related: See TablePlugin for more details
TEAL -- start teal colored text
-
TEAL
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%TEAL% teal text %ENDCOLOR%
- Expands to: teal text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
TOC{"Topic"} -- table of contents
- Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in WikiSyntax (
"---++ text"
) and HTML ("<h2>text</h2>"
) are taken into account. Any heading text after "!!"
is excluded from the TOC; for example, write "---+!! text"
if you do not want to list a header in the TOC
- Syntax:
%TOC%
OR %TOC{"SomeTopic" ...}%
- Supported parameters:
Parameter: | Description: | Default: |
"TopicName" | topic name | Current topic |
web="Name" | Name of web | Current web |
depth="2" | Limit depth of headings shown in TOC | 6 |
title="Some text" | Title to appear at top of TOC | none |
- Example:
%TOC{depth="2"}%
- Example:
%TOC{"CompleteDocumentation" web="System" title="Contents:"}%
- Example: see Foswiki:Sandbox.TestTopicInclude
-
- TOC will add an HTML anchor called
foswikiTOC
just before the table of contents. This enables adding a link from within a topic back to the table of contents to ease navigation. Example [[#foswikiTOC][Back to TOC]]
creates Back to TOC.
- If multiple headers have the exact same text, the anchors for the 2nd, 3rd etc will be suffixed by _AN1, _AN2 etc so the anchors become unique.
TOPIC -- name of current topic
-
%TOPIC%
expands to the name of the topic. If you are looking at the text of an included topic, it is the name of the included topic.
- Syntax:
%TOPIC%
- Expands to:
Macros
, renders as Macros
- Related: BASETOPIC, INCLUDINGTOPIC, TOPICLIST, WEB
TOPICLIST{"format"} -- topic index of a web
- List of all topics in a web. The "format" defines the format of one topic item. It may include formatting tokens: The
$topic
token gets expanded to the topic name, $marker
to marker
parameter where topic matches selection
, and $web
to the name of the web, or any of the standard FormatTokens.
- Syntax:
%TOPICLIST{"format" ...}%
- Supported parameters:
Parameter: | Description: | Default: |
"format" | Format of one line, may include $web (name of web), $topic (name of the topic), $marker (which expands to marker for the item matching selection only) | "$topic" |
format="format" | (Alternative to above) | "$topic" |
separator=", " | line separator | "$n" (new line) |
marker="selected" | Text for $marker if the item matches selection | "selected" |
selection="TopicA, TopicB" | Current value to be selected in list | (none) |
web="Name" | Name of web | Current web |
- Example:
%TOPICLIST{" * $web.$topic"}%
creates a bullet list of all topics
- Example:
%TOPICLIST{separator=", "}%
creates a comma separated list of all topics
- Example:
%TOPICLIST{" <option>$topic</option>"}%
creates an option list (for drop down menus)
- Example:
<select>%TOPICLIST{" <option $marker value='$topic'>$topic</option>" separator=" " selection="%TOPIC%"}%</select>
creates an option list of web topics with the current topic selected
- Related: SEARCH, WEBLIST
TOPICURL -- shortcut to viewing the current topic
TWIKIWEB -- synonym for SYSTEMWEB
- Deprecated. Please use
%SYSTEMWEB%
instead.
U -- "updated" icon
- Current value: U =
- Related: H, I, ICON, M, N, P, Q, S, T, X, Y
URLPARAM{"name"} -- get value of a URL parameter
- Returns the value of a URL parameter.
- Syntax:
%URLPARAM{"name"}%
- Supported parameters:
Parameter: | Description: | Default: |
"name" | The name of a URL parameter | required |
default="..." | Default value in case parameter is empty or missing | empty string |
newline="<br />" | Convert newlines in textarea to other delimiters | no conversion |
encode="off" encode="entity" encode="safe" encode="url" encode="quote" | Control how special characters are encoded off : No encoding. Avoid using this when possible. See the security warning below. entity : Encode special characters into HTML entities. See ENCODE for more details. safe : Encode characters '"<>% into HTML entities. url : Encode special characters for URL parameter use, like a double quote into %22 quote : Escape double quotes with backslashes (\" ), does not change other characters; required when feeding URL parameters into other macros. | "safe" |
multiple="on" multiple="[[$item]]" | If set, gets all selected elements of a <select multiple="multiple"> tag. A format can be specified, with $item indicating the element, e.g. multiple="Option: $item" | first element |
separator=", " | Separator between multiple selections. Only relevant if multiple is specified | "\n" (new line) |
- Example:
%URLPARAM{"skin"}%
returns print
for a .../view/System/Macros?skin=print
URL
- Notes:
- URL parameters passed into HTML form fields must be entity ENCODEd.
- Double quotes in URL parameters must be escaped when passed into other macros.
Example: %SEARCH{ "%URLPARAM{ "search" encode="quote" }%" noheader="on" }%
- When used in a template topic, this macro will be expanded when the template is used to create a new topic. See TemplateTopics#TemplateTopicsVars for details.
- Watch out for internal parameters, such as
rev
, skin
, template
, topic
, web
; they have a special meaning in Foswiki. Common parameters and view script specific parameters are documented at CommandAndCGIScripts.
- If you have
%URLPARAM{
in the value of a URL parameter, it will be modified to %<nop>URLPARAM{
. This is to prevent an infinite loop during expansion.
- Security warning! Using URLPARAM can easily be misused for cross-site scripting unless specific characters are entity encoded. By default URLPARAM encodes the characters
'"<>%
into HTML entities (same as encode="safe") which is relatively safe. The safest is to use encode="entity". When passing URLPARAM inside another macro always use double quotes ("") combined with using URLPARAM with encode="quote". For maximum security against cross-site scripting you are adviced to install the Foswiki:Extensions.SafeWikiPlugin.
- Related: ENCODE, SEARCH, FormattedSearch, QUERYSTRING
USERINFO{"name"} -- retrieve details about a user
- Syntax:
%USERINFO%
- Expands to:
guest, WikiGuest,
(comma-separated list of the username, wikiusername, and emails)
- With formatted output, using tokens
$emails
, $username
, $wikiname
, $wikiusername
, $groups
and $admin
($admin returns 'true' or 'false'):
- Example:
%USERINFO{ format="$username is really $wikiname" }%
- Expands to:
guest is really WikiGuest
- Retrieve information about another user:
- Example:
%USERINFO{ "WikiGuest" format="$username is really $wikiname" }%
- Expands to:
guest is really WikiGuest
- The parameter should be the wikiname of a user. You can also pass a login name. You can only get information about another user if the
{AntiSpam}{HideUserDetails}
configuration option is not enabled, or if you are an admin. (User details are hidden in this site)
- Related: USERNAME, WIKINAME, WIKIUSERNAME, UserAuthentication, ChangeEmailAddress
USERNAME -- your login username
USERSWEB -- name of users web
- The web containing individual user topics, WikiGroups, and customised site-wide preferences.
- Syntax:
%USERSWEB%
- Expands to:
Main
- Related: SYSTEMWEB
VAR{"NAME" web="Web"} -- get a preference value from another web
- Syntax:
%VAR{"NAME" web="Web"}%
- Example: To get
%WEBBGCOLOR%
of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%
, which expands to #FFEFA6
- Related: WEBPREFSTOPIC
VBAR -- vertical bar
VOTE{ attributes } -- define a poll in a topic.
- The following standard attributes are recognized
Name | Description | Example |
chartN | Defines the format of a single bar in the results bar chart generated for the corresponding select (for select type only). See formatting results, below. | chart="<p>$option $score</p>" |
formatN | Defines the format of the results display. See formatting results, below. | format="$large" |
starsN | Defines the name of a rate vote, where you rate something by giving it a number of stars. N is a number that identifies this item within the poll e.g. select1 , stars2 etc. You must number all select and stars parameters uniquely and sequentially (e.g. select1 stars2 select3 | stars2="Usability" |
selectN | Defines the name of a select vote, where you select one from a ranges of options. N is a number that identifies this item within the poll e.g. select1 , select2 etc. You must number all select and stars parameters uniquely and sequentially (e.g. select1 stars2 select3 | select1="Drink" |
separator | Defines the string to be used to separate each row in the result. | separator="<br/>" |
optionsN | Each selectN must have a corresponding optionsN that defines a comma-separated list of the options that can be selected between. | options1="Beer,Wine,Milk" |
widthN | Each starsN must have a corresponding widthN . This gives the number of stars to show e.g. width1="5" will show 5 stars. | width2="10" |
open | If set to "off" this is a closed vote. If set to "on" it is open (the default) | open="on" |
secret | If set to "off" , then the database will record who voted. If set to "on" , votes are secret (the default) | secret="on" |
submit | If set to "off" , this makes the %VOTE display the results of the vote without prompting for any input. This is useful when - for example - you want to show the results of a global vote, without permitting more voting. |
global | If set to "off" , this makes the id local to this topic (the default). If set to "on" it will be a global poll that can be accessed from many topics. | global="on" |
bayesian | If set to "on" , rating averages will be computed using the Bayesian average of this item against all the other items that have the same item in their stars field. This requires all the participating %VOTEs to be global , or to save their results to the same place using saveto . See http://www.thebroth.com/blog/118/bayesian-rating for more information about Bayesian rating. | bayesian="off" |
saveto | If set to the name of a topic, the poll results will be appended to the end of that topic. The results are formatted as a table for easy post-processing. | saveto="Main.VoteResults" |
id | The identifier of the poll. You can have multiple independent votes in the same topic. | id="Dining" |
WEB -- name of current web
-
%WEB%
expands to the name of the web where the topic is located. If you are looking at the text of an included topic, it is the web where the included topic is located.
- Syntax:
%WEB%
- Expands to:
System
- Related: BASEWEB, INCLUDINGWEB, TOPIC
WEBLIST{"format"} -- index of all webs
- List of all webs. Obfusticated webs are excluded, e.g. webs with a
NOSEARCHALL = on
preference setting. The "format"
defines the format of one web item. The $name
gets expanded to the name of the web, $qname
gets expanded to double quoted name, $marker
to marker
where web matches selection
.
- Syntax:
%WEBLIST{"format" ...}%
- Supported parameters:
Parameter: | Description: | Default: |
"format" | Format of one line, may include $name (the name of the web), $qname (the name of the web in double quotes), $indentedname (the name of the web with parent web names replaced by indents, for use in indented lists), and $marker (which expands to marker for the item matching selection only) | "$name" |
format="format" | (Alternative to above) | "$name" |
separator=", " | Line separator | "$n" (new line) |
web="" | if you specify $web in format, it will be replaced with this | "" |
webs="public" | Comma separated list of webs, public expands to all non-hidden. NOTE: Administrators will see all webs, not just the public ones | "public" |
marker="selected" | Text for $marker if the item matches selection | "selected" |
selection="%WEB%" | Current value to be selected in list | selection="%WEB%" |
subwebs="Sandbox" | show webs that are a sub-web of this one (recursivly) | "" |
- Example:
%WEBLIST{" * [[$name.WebHome]]"}%
- creates a bullet list of all webs.
- Example:
<form><select name="web"> %WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash, public" selection="%WEB%" separator=" "}% </select></form>
- creates a dropdown of all public webs + Trash web, with the current web highlighted.
- - WEBLIST will not show a web called 'TWiki' even if it exists in the file system unless the
TWikiCompatibilityPlugin
is installed and activated in configure. This is done to ensure that the TWiki compatibility components such as the TWiki web are only visible and active when needed.
- Related: TOPICLIST, SEARCH
WEBPREFSTOPIC -- name of web preferences topic
WHITE -- start white colored text
-
WHITE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%WHITE% white text %ENDCOLOR%
- Expands to: white text (shown with a gray background here)
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
WIKIHOMEURL -- site home URL
- Syntax
%WIKIHOMEURL%
- Expands to ==
- Normally by default set to
%SCRIPTURLPATH{"view"}%
- For the top bar logo URL use
%WIKILOGOURL%
defined in WebPreferences instead.
- Related: WIKITOOLNAME
WIKINAME -- your Wiki username
WIKIPREFSTOPIC -- name of site-wide preferences topic
WIKITOOLNAME -- name of your site
WIKIUSERNAME -- your Wiki username with web prefix
WIKIUSERSTOPIC -- name of topic listing all registers users
- Syntax:
%WIKIUSERSTOPIC%
- Expands to:
WikiUsers
, with Main prefix renders as WikiUsers
- Related: WIKIUSERNAME
WIKIVERSION -- the version of the installed Foswiki engine
X -- warning icon
- Current value: X =
- Related: H, I, ICON, M, N, P, Q, S, T, U, Y
Y -- "yes" icon
- Current value: Y =
- Related: H, I, ICON, M, N, P, Q, S, T, U, X
YELLOW -- start yellow colored text
-
YELLOW
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
- Syntax:
%YELLOW% yellow text %ENDCOLOR%
- Expands to: yellow text
-
%<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
- Related: ENDCOLOR, DefaultPreferences, StandardColors
Shortcuts
The following macros are
preference settings and are frequently used in topic content.
-
%BR%
- line break
-
%BULLET%
- bullet sign
-
%BB%
- line break and bullet combined
-
%BB2%
- indented line break and bullet
-
%RED% text %ENDCOLOR%
- colored text (also %YELLOW%
, %ORANGE%
, %PINK%
, %PURPLE%
, %TEAL%
, %NAVY%
, %BLUE%
, %AQUA%
, %LIME%
, %GREEN%
, %OLIVE%
, %MAROON%
, %BROWN%
, %BLACK%
, %GRAY%
, %SILVER%
, %WHITE%
)
-
%H%
- Help icon
-
%I%
- Idea icon
-
%M%
- Moved to icon
-
%N%
- New icon
-
%P%
- Refactor icon
-
%Q%
- Question icon
-
%S%
- Pick icon
-
%T%
- Tip icon
-
%U%
- Updated icon
-
%X%
- Alert icon
-
%Y%
- Done icon
See
ShortcutMacros for a full list of predefined shortcuts.
Related Topics: UserDocumentationCategory