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:
%CALC{}%
macro)
To use a macro type its name. For example,
%T%
to get %TOPIC%
to get Macros
(a predefined macro?)
%CALC{ "$UPPER(Text)" }%
to get TEXT
(a macro? defined by a Plugin)
Note:
!%TOPIC%
to get %TOPIC%
%ALLVARIABLES%
to get a full listing of all macros defined for a particular topic
%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 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.
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.
Set MACRONAME = value
Set MACRONAME = value
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
- To place a logo anywhere in a web by typing
%MYLOGO%
, define the preference settings on the web's WebPreferences topic, and upload a logo file, ex:mylogo.gif
. You can upload by attaching the file to WebPreferences, or, to avoid clutter, to any other topic in the same web, e.g.LogoTopic
. Sample preference setting in WebPreferences:
Set MYLOGO = %PUBURL%/%WEB%/LogoTopic/mylogo.gif
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.
These are special types of preference settings to control access to content. AccessControl explains these security settings in detail.
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 = 20Then 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.
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.
%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%
%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{ "zone" ... }%
body
and head
, defaults to head
requires
topic
text
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%
AQUA
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%AQUA% aqua text %ENDCOLOR%
%<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%
.
%ATTACHURL%
https://wiki.wcr.ethz.ch/pub/System/VarATTACHURL
%ATTACHURL%/image.gif
%ATTACHURLPATH%
/pub/System/VarATTACHURLPATH
%AUTHREALM%
%TOPIC%
if there is no INCLUDE
%BASETOPIC%
%WEB%
in case there is no include.
%BASEWEB%
BLACK
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BLACK% black text %ENDCOLOR%
%<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%
.
BLUE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BLUE% blue text %ENDCOLOR%
%<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%
.
BROWN
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BROWN% brown text %ENDCOLOR%
%<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%
.
%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()
.
%CALC{"formula"}%
%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
%COMMENT%
without parameters shows a simple text box.
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%
24 Apr 2025
%GMTIME%
%DISPLAYTIME%
OR %DISPLAYTIME{"format"}%
%DISPLAYTIME%
The time is shown as hh:mm (24 hour clock) 24 Apr 2025 - 11:24
%DISPLAYTIME{"$hou:$min"}%
expands to 11:24
text
, then hide the form. If EDITACTION is defined as form
hide the normal text area and only edit the form.
;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{}%
macro is handled by the EditTablePlugin
%EDITTABLE{ 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 |
%EDITTABLE{ format="| text, 20 | select, 1, one, two, three |" changerows="on" }%
| *Name* | *Type* |
| Foo | two |
"\n"
) and linefeed ("\r"
)
"<"
, ">"
, "&"
, single quote ('
) and double quote ("
)
"%"
, "["
, "]"
, "@"
, "_"
, "*"
, "="
and "|"
%ENCODE{"string"}%
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" |
%ENCODE{"spaced name"}%
expands to spaced%20name
<input type="text" name="address" value="%ENCODE{ "any text" type="entity" }%" />
%SEARCH{ "%ENCODE{ "string with "quotes"" type="quotes" }%" noheader="on" }%
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
is a shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%RED% red text %ENDCOLOR%
%<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%
.
%ENDSECTION{"name"}%
%ENDSECTION{type="include"}%
Parameter: | Description: |
---|---|
"name" | Name of the section. |
type="..." | Type of the section being terminated; supported types "section" , "include" , "expandvariables" , "templateonly" . |
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.
{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.
%ENV{MOD_PERL}%
displays as: not set
not set
.
%FAILEDPLUGINS%
%FORMFIELD{"fieldname"}%
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. | "" |
%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(no project name given)" alttext="ProjectName field not found in form"}%
%GENPDF%
https://wiki.wcr.ethz.ch/bin/genpdf/System/VarGENPDF?cover=print.nat;sortcol=2;table=11
%GMTIME%
OR %GMTIME{"format"}%
%GMTIME%
uses the default date format defined by the {DefaultDateFormat} setting in configure 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 | 2025-04-24T09:24:26Z |
$rcs | RCS format timestamp | 2025/04/24 09:24:26 |
$http | E-mail & http format timestamp | Thu, 24 Apr 2025 09:24:26 GMT |
$epoch | Number of seconds since 00:00 on 1st January, 1970 | 1745486666 |
%GMTIME{"$day $month, $year - $hour:$min:$sec"}%
expands to 24 Apr, 2025 - 09:24:26
GRAY
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%GRAY% gray text %ENDCOLOR%
%<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%
.
GREEN
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%GREEN% green text %ENDCOLOR%
%<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%
.
%GROUPS%
%HOMETOPIC%
WebHome
, renders as WebHome
%HTTP%
%HTTP{"Header-name"}%
%HTTP% | |
%HTTP{"Accept-language"}% | |
%HTTP{"User-Agent"}% | Mozilla/5.0 AppleWebKit?/537.36 (KHTML, like Gecko; compatible; ClaudeBot?/1.0; +claudebot@anthropic.com) |
%HTTP_HOST%
wiki.wcr.ethz.ch
%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.
%HTTPS%
%HTTPS{"Header-name"}%
%ICON{"name"}%
%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 arrowbright
, bubble
, choice-yes
, hand
bmp
, doc
, gif
, hlp
, html
, mp3
, pdf
, ppt
, txt
, xls
, xml
, zip
%ICON{"name"}%
generates the full HTML img tag. Specify image name or full filename (see ICON for details on filenames.)
%ICONURL{"name"}%
%ICONURL{"arrowbright"}%
returns https://wiki.wcr.ethz.ch/pub/System/DocumentGraphics/arrowbright.gif
%ICONURL{"novel.pdf"}%
returns https://wiki.wcr.ethz.ch/pub/System/DocumentGraphics/pdf.gif
%ICONURL{"/queen/boheme.mp3"}%
returns https://wiki.wcr.ethz.ch/pub/System/DocumentGraphics/mp3.gif
%ICONURLPATH{"name"}%
%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
%IF{"CONDITION" then="THEN" else="ELSE"}%
shows "THEN"
if "CONDITION"
evaluates to TRUE
, otherwise "ELSE"
will be shown
%IF{"defined FUNFACTOR" then="FUNFACTOR is defined" else="FUNFACTOR is not defined"}%
renders as FUNFACTOR is not defined
%INCLUDE{"page" ...}%
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 . ![]() | |
"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 WCR 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" | 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. |
disableremovescript
parameter)
%TOPIC%
in case there is no include
%INCLUDINGTOPIC%
%WEB%
if there is no INCLUDE.
%INCLUDINGWEB%
LANGUAGE
preference is set, it's used as user's language instead of any language detected from the browser.
LANGUAGE
at a non per-user way, so each user can choose his/her preferred language.
PO
files). These are the languages in which the user interface is available.
%LANGUAGES{...}%
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. |
<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
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%LIME% lime text %ENDCOLOR%
%<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%
.
%LOCALSITEPREFS%
Main.SitePreferences
, renders as SitePreferences
%LOGIN%
%LOGOUT%
%MAKETEXT{"string" args="..."}%
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 |
%MAKETEXT{string="Notes:"}%
%MAKETEXT{"If you have any questions, please contact [_1]." args="%WIKIWEBMASTER%"}%
%MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="%SYSTEMWEB%.ResetPassword,%WIKIUSERNAME%"}%
string
to the current user's language only if it has such string in its translation table for that language.
&
) 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.
_
) are reserved. You cannot use translatable phrases starting with an underscore.
%MACROS%
inside the translatable strings (since they will get expanded before the %MAKETEXT{...}%
itself is handled).
MAROON
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%MAROON% maroon text %ENDCOLOR%
%<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%
.
formfield
item is the most likely to be useful to casual users.
%META{ "item" ...}%
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 |
%METASEARCH{...}%
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 |
%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
%METASEARCH{type="field" name="Country" value="China"}%
NAVY
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%NAVY% navy text %ENDCOLOR%
%<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%
.
%NOP%
%NOP{...}%
deprecated %STARTSECTION{type="templateonly"}%
.. %ENDSECTION{type="templateonly"}%
instead (see TemplateTopics for more details).
%NOTIFYTOPIC%
WebNotify
, renders as WebNotify
OLIVE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%OLIVE% olive text %ENDCOLOR%
%<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%
.
ORANGE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%ORANGE% orange text %ENDCOLOR%
%<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%
.
PINK
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%PINK% pink text %ENDCOLOR%
%<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%
.
%PLUGINDESCRIPTIONS%
##.,
##..
etc. notation to insert outline numbering sequences (1, 1.1, 2, 2.1) in topic's text. Also support numbered headings. %PLUGINVERSION{"name"}%
to get the version of a specific plugin
%PLUGINVERSION{"InterwikiPlugin"}%
expands to $Rev: 5022 (2009-09-20) $
%PLUGINVERSION%
to get the version of the API
2.0
%PUBURL%
https://wiki.wcr.ethz.ch/pub
%PUBURL%/%WEB%/OtherTopic/image.gif
%PUBURLPATH%
/pub
PURPLE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%PURPLE% purple text %ENDCOLOR%
%<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%
.
%QUERYPARAMS{...}%
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" |
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 (& ) |
%QUERYPARAMS{format="<input type='hidden' name='$name' value='$value' encoding="entity" />"}%
'"<>%
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.
%QUERYPARAMS%
.
%QUERYSTRING%
cover=print.nat;sortcol=2;table=11
RED
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%RED% red text %ENDCOLOR%
%<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%
.
%REMOTE_ADDR%
3.21.171.107
%REMOTE_PORT%
%REMOTE_USER%
%RENDERLIST%
macro is handled by the RenderListPlugin
%RENDERLIST%
%RENDERLIST{ "org" focus="Sales.WestCoastTeam" }%
%RENDERLIST{ "org" }%
* [[Eng.WebHome][Engineering]]
* [[Eng.TechPubs][Tech Pubs]]
* [[Sales.WestCoastTeam][Sales]]
* [[Sales.EastCoastTeam][East Coast]]
* [[Sales.WestCoastTeam][West Coast]]
%RENDERZONE{"zone" ...}%
$item
, any standard escapes like $percnt
, $dollar
etc can be used to delay evaluation order of the format parameter
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:
sidebar
zone to add widgets
toolbar
zone to add buttons icons
See also VarADDTOZONE
%REVINFO%
OR %REVINFO{"format"}%
%REVINFO%
is equivalent to %REVINFO{format="r1.$rev - $date - $wikiusername"}%
r1 - 09 Jan 2009 - 13:00:00 - ProjectContributor
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 |
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"} |
%REVINFO{"$date - $wikiusername" rev="1.1"}%
returns revision info of first revision
viewauth.cgi
)
%SCRIPTNAME%
view
.pl
or .cgi
%SCRIPTSUFFIX%
%SCRIPTURL%
OR %SCRIPTURL{"script"}%
%SCRIPTURL%
returns the base URL of scripts - expands to https://wiki.wcr.ethz.ch/bin
https://wiki.wcr.ethz.ch/bin/script
%SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC%
which expands to https://wiki.wcr.ethz.ch/bin/viewauth/System/Macros
%SCRIPTURLPATH{"script"}%
instead, as it works with URL rewriting much better
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
%SCRIPTURL{"script"}%
, but doesn't include the protocol and host part of the URL
%SCRIPTURL%
OR %SCRIPTURLPATH{"script"}%
/bin/script
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
%SEARCH{"text" ...}%
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= | 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) |
%SEARCH{"wiki" web="Main" scope="topic"}%
%SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"}%
(displays results in a table with header - details)
%TABLE{}%
macro just before the %SEARCH{}%
to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
%GMTIME%
%SERVERTIME%
OR %SERVERTIME{"format"}%
%SERVERTIME%
uses the Date format defined as {DefaultDateFormat} in configure
%SERVERTIME{"$hou:$min"}%
expands to 11:24
%SESSIONID%
%SESSIONVAR%
%SESSION_VARIABLE{"name"}%
%SESSION_VARIABLE{"name" set="value"}%
%SESSION_VARIABLE{"name" clear=""}%
AUTHUSER
session variable, and is read-only
SILVER
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%SILVER% silver text %ENDCOLOR%
%<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%
.
%SLIDESHOWEND%
macro is handled by the SlideShowPlugin
%SLIDESHOWEND%
%SLIDESHOWSTART%
macro is handled by the SlideShowPlugin
%SLIDESHOWSTART%
%SLIDESHOWSTART{ template="MyOwnSlideTemplate" }%
%SLIDESHOWSTART%
---++ Sample Slide 1
* Bullet 1
* Bullet 2
---++ Sample Slide 2
* Bullet 1
* Bullet 2
%SLIDESHOWEND%
%SPACEDTOPIC%
Var%20*SPACEDTOPIC
%ENCODE{%SPACEOUT{"%TOPIC%" separator=" *"}%}%
%SPACEOUT{ "%TOPIC%" }%
Macros
Parameter: | Description: | Default: |
---|---|---|
separator | The separator to put between words e.g. %SPACEOUT{"DogsCatsBudgies" separator=", "}% -> Dogs, Cats, Budgies | ' ' |
[[WebHome][%SPACEOUT{"WebHome"}%]]
expands to Web Home
%STOPINCLUDE%
macro. A normal view of the topic shows everything exept the %STARTINCLUDE%
macro itself.
%STARTSECTION{type="include"}%
instead
%STARTINCLUDE%
%STARTSECTION{}%
and %ENDSECTION{}%
.
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.
%STARTSECTION{"name"}% ................... %ENDSECTION{"name"}%
%STARTSECTION{type="include"}% ........... %ENDSECTION{type="include"}%
%STARTSECTION{type="expandvariables"}% ... %ENDSECTION{type="expandvariables"}%
%STARTSECTION{type="templateonly"}% ...... %ENDSECTION{type="templateonly"}%
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" |
_SECTION0
for the first unnamed section in the topic, _SECTION1
for the second, etc..
%STATISTICSTOPIC%
WebStatistics
, renders as WebStatistics
%STOPINCLUDE%
macro itself.
%STOPINCLUDE%
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 . |
%SYSTEMWEB%
System
%TABLE{}%
macro is handled by the TablePlugin
%TABLE{ 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" |
%TABLE{ tableborder="0" cellpadding="4" cellspacing="3" cellborder="0" }%
| *A1* | *B1* |
| A2 | B2 |
TEAL
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%TEAL% teal text %ENDCOLOR%
%<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%
.
"---++ 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
%TOC%
OR %TOC{"SomeTopic" ...}%
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 |
%TOC{depth="2"}%
%TOC{"CompleteDocumentation" web="System" title="Contents:"}%
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.
%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.
%TOPIC%
Macros
, renders as Macros
$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.
%TOPICLIST{"format" ...}%
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 |
%TOPICLIST{" * $web.$topic"}%
creates a bullet list of all topics
%TOPICLIST{separator=", "}%
creates a comma separated list of all topics
%TOPICLIST{" <option>$topic</option>"}%
creates an option list (for drop down menus)
<select>%TOPICLIST{" <option $marker value='$topic'>$topic</option>" separator=" " selection="%TOPIC%"}%</select>
creates an option list of web topics with the current topic selected
%SYSTEMWEB%
instead.
%URLPARAM{"name"}%
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) |
%URLPARAM{"skin"}%
returns print
for a .../view/System/Macros?skin=print
URL
%SEARCH{ "%URLPARAM{ "search" encode="quote" }%" noheader="on" }%
rev
, skin
, template
, topic
, web
; they have a special meaning in Foswiki. Common parameters and view script specific parameters are documented at CommandAndCGIScripts.
%URLPARAM{
in the value of a URL parameter, it will be modified to %<nop>URLPARAM{
. This is to prevent an infinite loop during expansion.
'"<>%
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.
%USERINFO%
guest, WikiGuest,
(comma-separated list of the username, wikiusername, and emails)
$emails
, $username
, $wikiname
, $wikiusername
, $groups
and $admin
($admin returns 'true' or 'false'): %USERINFO{ format="$username is really $wikiname" }%
guest is really WikiGuest
%USERINFO{ "WikiGuest" format="$username is really $wikiname" }%
guest is really WikiGuest
{AntiSpam}{HideUserDetails}
configuration option is not enabled, or if you are an admin. (User details are hidden in this site)
jsmith
, WIKINAME like JohnSmith
and WIKIUSERNAME like Main.JohnSmith
. Un-authenticated users are all WikiGuest.
%USERNAME%
guest
%USERSWEB%
Main
%VAR{"NAME" web="Web"}%
%WEBBGCOLOR%
of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%
, which expands to #FFEFA6
%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.
%WEB%
System
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
.
%WEBLIST{"format" ...}%
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) | "" |
%WEBLIST{" * [[$name.WebHome]]"}%
- creates a bullet list of all webs.
<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.
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.
%WEBPREFSTOPIC%
WebPreferences
, renders as WebPreferences
WHITE
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%WHITE% white text %ENDCOLOR%
%<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%
.
%WIKIHOMEURL%
%SCRIPTURLPATH{"view"}%
%WIKILOGOURL%
defined in WebPreferences instead.
%USERNAME%
if not defined in the WikiUsers topic
%WIKINAME%
WikiGuest
%WIKIPREFSTOPIC%
DefaultPreferences
, renders as DefaultPreferences
%WIKITOOLNAME%
WCR Wiki
%WIKIUSERNAME%
Main.WikiGuest
, renders as WikiGuest
%WIKIUSERSTOPIC%
WikiUsers
, with Main prefix renders as WikiUsers
%WIKIVERSION%
Foswiki-1.0.9, Sun, 17 Jan 2010, build 6075
YELLOW
is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%YELLOW% yellow text %ENDCOLOR%
%<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%
.
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%
- %I%
- %M%
- %N%
- %P%
- %Q%
- %S%
- %T%
- %U%
- %X%
- %Y%
- See ShortcutMacros for a full list of predefined shortcuts.