To leave a variable unexpanded, precede it with an exclamation point, e.g. type !%TOPIC% to get %TOPIC%

Variables 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 variables defined for a particular topic

Variable Names

Variable 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 characteres. E.g. %MYVAR%, %MyVar%, %My2ndVar%, and %My_Var% are all valid variable names. Variables are case sensitive. %MyVAR% and %MYVAR% are not the same variable.

By convention all settings, predefined variables and variables used by plugins are always UPPER-CASE.

Preferences Variables

Unlike predefined variables, preferences variables can be defined by the user in various places.

Settings at higher-numbered levels override settings of the same variable at lower numbered levels, unless the variable 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 variable and using it in the same topic, note that TWiki reads all the variable settings from the saved version of the topic before it displays anything. This means you can use a variable 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 variable 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 Variables is the same anywhere in TWiki (on its own TWiki bullet line, including nested bullets): [multiple of 3 spaces] * [space] Set [space] VARIABLENAME [space] = [space] value

Examples:

Set VARIABLENAME = value

Set VARIABLENAME = value

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 VARIABLENAME = value starts here
and continues here

Whatever you include in your Variable will be expanded on display, exactly as if it had been entered directly.

Example: Create a custom logo variable

To place a logo anywhere in a web by typing %MYLOGO%, define the Variable 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 variable setting in WebPreferences:

Set MYLOGO = %PUBURL%/%WEB%/LogoTopic/mylogo.gif

You can also set preferences variables on 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 Variables

These are special types of preferences variables to control access to content. TWikiAccessControl explains these security settings in detail.

Local values for variables

Certain topics (a users home topic, web site and default preferences topics) have a problem; variables 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 variable 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 variables in their evaluation order, so you can see variable scope if you get confused.

Predefined Variables

Most predefined variables return values that were either set in the configuration when TWiki was installed, or taken from server info (such as current username, or date and time). Some, like %SEARCH%, are powerful and general tools.

Plugins may extend the set of predefined variables (see individual Plugins topics for details)

Take the time to thoroughly read through ALL preference variables. If you actively configure your site, review variables periodically. They cover a wide range of functions, and it can be easy to miss the one perfect variable for something you have in mind. For example, see %INCLUDINGTOPIC%, %INCLUDE%, and the mighty %SEARCH%.

ADDTOHEAD -- add HTML to the HTML head section of the current page

Useful for TWiki applications to add custom CSS or JavaScript to the HTML head section of a topic. Supplied TWiki variables will be expanded. %ADDTOHEAD{}% expands in-place to an empty string, unless there is an error in which case the variable expands to an error string.

Name of topic that contains the full HTML text to add to the head section, such as topic="Main.MyCssTopic"

Mutually exclusive with text=""

section="name"

If topic parameter is used, includes only the specified named section, as defined in the topic by the STARTSECTION and ENDSECTION variables. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section

Note: %<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%.

Example: If topic A includes B, and B includes C, then a %BASEWEB% in topic C is reported as the web of topic A when looking at topic A, the web of topic B when looking at topic B, and the web of topic C when looking at topic C itself.

Note: %<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%.

Note: %<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%.

Note: %<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"} -- add spreadsheet calculations to tables

The %CALC{formula}% variable is handled by the SpreadSheetPlugin. Over 100 functions are available, 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

Note: The CALC variable is handled with delay compared to other TWiki variables. You may get unexpected results if you nest CALC inside other variables (such as %INCLUDE{%CALC{...}%}%) because it does not get evaluated inside-out & left-to-right like ordinary TWiki variables. Use CALCULATE if you nest variables.

The %CALCULATE{formula}% variable is handled by the SpreadSheetPlugin. Over 100 functions are available, such as $ABS(), $EXACT(), $EXISTS(), $GET()/$SET(), $IF(), $LOG(), $LOWER(), $PERCENTILE(), $TIME(), $VALUE().

Syntax: %CALC{formula}%

Examples:

%CALC{$EXISTS(Web.SomeTopic)}% returns 1 if the topic exists

%CALC{$UPPER(Collaboration)}% returns COLLABORATION

Note: The CALCULATE variable is handled inside-out & left-to-right like ordinary TWiki variables, but it does not support functions that refer to table cells, such as $LEFT() or $T(). Use CALC instead.

This is the name of the template to use for this comment. Comment templates are defined in a TWiki template - see customization. If this attribute is not defined, the type is whatever is defined by COMMENTPLUGIN_DEFAULT_TYPE, either in this topic or in your WebPreferences.

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"

emailto

Send comment by email. Use comma "," to seperate multiple email addresses. This feature is disabled by default. To enable this feature, please set up "$TWiki::cfg{Plugins}{CommentPlugin}{EmailEnabled} = 1;".

DASHBOARD -- build a dashboard with banner and boxes

Use this variable to quickly create dashboards for intranet home, team homepages, project homepages and knowledge bases. See the TWikiDashboardAddOn for details on enabling and using the %DASHBOARD{...}% variable.

EDITACTION -- select an edit template

EDITACTION defined in a topic or preference setting will 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: %EDITACTION% (returning either text or form)

Expands to: %EDITACTION%

Note: 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 EDITACTION in a topic setting or 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.

EDITFORMFIELD{"fieldname" form=""} -- render an input field specified in a form template topic

Use this to create HTML forms that update TWikiForms, such as a custom "create new topic" form, or a topic header that allows users to change some form values at the top of the page. A valid form is composed of a start form type, various form fields, a submit type, and an end form type.

Syntax:

%EDITFORMFIELD{"fieldname" form="...Form"}% - create form field defined in a TWiki Form template

%EDITFORMFIELD{"fieldname" topic="..."}% - create form field based on a topic that has a TWiki Form & initialize its value

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.

(none)

helptopic

Topic name containing help text shown below the table when editing a table. The %STARTINCLUDE% and %STOPINCLUDE% variables 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%/TWikiDocGraphics/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

redirectto

Set up a return page after saving changes. e.g By setting redirectto="%BASEPAGE%", you can return to base page if your editable table is included by another page.

Encode special characters into HTML entities, like a double quote into &#034;. Does not encode newline (\n) or linefeed (\r).

type="url"

type="entity"extra=" $n$r"

For type="entity" only, use the extra parameter to encode additional characters to HTML numeric entities. Formatting tokens can be used, such as "$n" for newline. Note that type="entity" extra=" $n$r" is equivalent to type="html".

type="url"extra=""

type="html"

Encode special characters into HTML entities. In addition to type="entity", it also encodes space, \n and \r. Useful to encode text properly in HTML input fields. See equivalent ENTITY.

Values of HTML input fields should be encoded as "html". A shorter %ENTITY{any text}% can be used instead of the more verbose %ENCODE{ "any text" type="html" }%. Example: <input type="text" name="address" value="%ENTITY{any text}%" />

Double quotes in strings must be escaped when passed into other TWiki variables. Example: %SEARCH{ "%ENCODE{ "string with "quotes"" type="quotes" }%" noheader="on" }%

Note: %<color>BG% section must end with %ENDBG%. If you want to switch from one background color to another one you first need to end the active background color with %ENDBG%, such as %REDBG% some text %ENDBG% %GREENBG% more text %ENDBG%.

Note: %<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%.

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.

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 TWiki scripts run in on the web server.

Note: For security reasons, only those 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 a variable is undefined (as against being set to the empty string) it will be returned as not set.

Convert newlines in textarea to other delimiters. Variable $br expands to <br /> tag, and $n to a newline. Other text is encoded based on encode parameter.

no conversion

encode="html"

Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details.

Format with supported variables: • $name for variable name • $value for variable value • $isdefined expanding to 1 or 0 depending if variable is defined or not • $isset expanding to 1 or 0 depending if variable is logically true or false • $ispersistent expanding to 1 or 0 depending if variable is persistent or not • all FormatTokens such as $dollar, $n, $percnt.

"$value"

default="..."

Text shown if variable is not defined, e.g. not found. This parameter overrides the format parameter.

"" (empty string)

Example: %GET{"lunch"}% returns Sushi if the following has been previously set:%SET{ "lunch" value="Sushi" }% - see more examples

Note:%<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%.

Note: %<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%.

HIDE -- hide content in topic view

Text inside the HIDE is removed when viewing the topic. This can be used to remove large amounts of text from being sent to the browser, such as the user list in Main.TWikiUsers if there are many thousands of users.

Syntax: %HIDE{ any text }%

Expands to: (empty string)

Notes:

Using HIDE is not a replacement for access control, because edit and raw view still show the content.

Variables inside HIDE still get expanded because variables execute inside out, e.g. you can't use it to speed up slow variables.

<!-- HTML comments --> also hide content from the user, but unlike HIDE, HTML comments are sent to the browser.

I -- idea icon

ICON{"name"} -- small documentation graphic or icon of common attachment types

Generates the HTML img tag of a small graphic image attached to TWikiDocGraphics. Images typically have a 16x16 pixel size. You can select a specific image by name, or you can give a full file path or URL, in which case the type of the file will be used to select one of a collection of common file type icons.

ICONURL{"name"} -- URL of small documentation graphic or icon

Generates the full URL of a TWikiDocGraphics image, which TWiki 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.)

INCLUDE{"page"} -- include other topic or web page

The name of a topic located in the current web, i.e. %INCLUDE{"WebNotify"}%

"Web.Topic"

A topic in another web, i.e. %INCLUDE{"TWiki.SiteMap"}%

"http://..."

A full qualified URL, i.e. %INCLUDE{"http://twiki.org:80/index.html"}%. Supported content types are text/html and text/plain by default. See allowanytype. if the URL resolves to an attachment file on the server this will automatically translate to a server-side include.

allowanytype="on"

Suppress the content type checking in including the web page specified by a URL.

disabled

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

headingoffset="2"

Adjust the level of headings in the included topic. A "2" or "+2" increases the level by two, e.g. a ---+ H1 turns into a ---+++ H3. Positive and negative values are supported. Adjusted min and max levels are H1 and H6, respectively.

no adjustment

hidetoc="on"

Remove %TOC% in included content. Useful to show table of contents in individual topics, while suppressing them if included in a big master document.

TOC_HIDE_IF_ INCLUDED setting

rev="2"

Include a previous topic revision; N/A for URLs

top revision

raw="on" (for HTTP inclusion)

When a page is included via HTTP, normally TWiki 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

raw="on" (for topic inclusion)

When a topic is included, normally TWiki variables in the included topic are expanded in the context of the inlcluded topic. If raw="on" is specified, that variable expansion does not happen. You may wonder what's that for and what are the implications, which are found out on IncludeTopicRaw. Because of the "in the raw" nature of the parapmeter, if it's specified, parameters such as encode, headingoffset, hidetoc, newline, nofinalnewline, and section are ignored.

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

nofinalnewline="on"

Delete the new line at the end of the result if exists

disabled

newline="$br"

Convert newlines in textarea to other delimiters. Variable $br expands to <br /> tag, and $n to a newline. Other text is encoded based on encode parameter.

no conversion

encode="html"

Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details.

no encoding

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

Bypass fixing WikiWord links if include is done across webs. Fixing links in included text such as from SomeLink to Otherweb.SomeLink is usually desirable so that links in included text still point to the same target

Includes only the specified named section, as defined in the included topic by the STARTSECTION and ENDSECTION variables. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section

PARAMONE="val 1"PARAMTWO="val 2"

Any other parameter will be defined as a variable within the scope of the included topic. The example parameters on the left will result in %PARAMONE% and %PARAMTWO% being defined within the included topic. A default value for a variable can be specified in the included topic in case the corresponding parameter is not specified, such as %PARAMONE{ default="..." }%

Security Considerations:

The ability to INCLUDE arbitrary URLs, such as %INCLUDE{"http://www.google.com/"}% is turned off by default. To turn this on, ask your TWiki administrator to enable the {INCLUDE}{AllowURLs} flag in the Security setup section of configure.

JavaScript in included web pages is filtered out as a security precaution per default. Disable filtering with raw or disableremovescript parameter.

JQTABPANE -- start a JQuery tab pane

Create nice looking horizontal tab panes in TWiki topics. Write a sequence of %JQTAB{"..."}% and %JQENDTAB% pairs, and enclose them in %JQTABPANE% and %JQENDTABPANE%. Tab panes can be nested, e.g. within one tab you can add another tab pane. These variable are handled by the JQueryPlugin.

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

Note: %<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%.

MAKETEXT -- creates text using TWiki's I18N infrastructure

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 npl-twiki@physics.illinois.edu.

%MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="%SYSTEMWEB%.ResetPassword,%WIKIUSERNAME%"}% expands to Did you want to reset Main.TWikiGuest's password?

Notes:

TWiki will translate the string to the current user's language only if it has such string in its translation table for that language.

Ampersands (&) followed by one letter (one of a...z, A...Z -- say, X) in the translatable string will be translated to <span class='twikiAccessKey'>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 must not use translatable phrases starting with an underscore.

Make sure that the translatable string is constant. Specially, do not include %VARIABLES% inside the translatable strings (since they will get expanded before the %MAKETEXT{...}% itself is handled).

Note: %<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 record value in the following format:FIELD_NAME=FIELD_VALUEFIELD_NAME=FIELD_VALUE ...

$marker or $marker()

Expands to marker for the item matching selection only

$_FILED_NAME or $_FIELD_NAME()

Please be noted that you need to put _ (underscore) in front of a field name. $_FIELD_NAME$ yields the value of the specified field. If the specified field does not exist in the record, it returns the null string ("").

?FIELD_NAME?IF_FIELD_HAS_VALUE?

If the specified field has value and it's neither 0 nor the null string (""), it's evaluated as IF_FIELD_HAS_VALUE. Otherwise, it's evaluated as the null string. This is like q/.../ in Perl. A non-word character following ?FIELD_NAME becomes the terminator; i.e. you can write: ?FIELD_NAME:IF_TRUE: Specifically, the following characters can be used as the delimiter: ! # % ' / : ? @ ^ ` | ~= is excluded because it clashes with a parameter specification in a URL (?name=value).

?!FIELD_NAME?IF_FIELD_HAS_NO_VALUE?

Similar to above but it's opposite. If the field has value, it's evaluated as the null string. Otherwise, it's evaluated as IF_FIELD_HAS_NO_VALUE.

$question

Replaced with ? after the ?FIEL_DNAME and ?!FIELD_ANME constructs are processed.

"| $_ | $__ |"

selection="..."

The record ID to be regarded as the selected. It affects how $marker in the format is evaluated.

none

marker="..."

Text for $marker in the format if the item matches selection

"selected"

filter="..."

The regular expression of record IDs to filter records. Matching is case-insensitive

none

exclude="..."

Comma separated list of record IDs to be excluded. You can use regular expression. If you specify Trash\d*, then Trash, Trash1, Trash2, ... are exluded but LightTrash and TrashBag are not excluded

META -- displays meta-data

Provided mainly for use in templates, this variable 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.

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.encode="type": have the value encoded in the specified type. Possible types are the same as ENCODE's. If this is specified, newline and bar options are ignored. topic="...": Get meta info of "Topic" or "Web.Topic"; default "%BASEWEB%.%BASETOPIC%".

Show a single form field

"form"

topic="...": Get meta info of "Topic" or "Web.Topic"; default "%BASEWEB%.%BASETOPIC%".

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.topic="...": Get meta info of "Topic" or "Web.Topic"; default "%BASEWEB%.%BASETOPIC%".

Generates the list of attachments

"moved"

topic="...": Get meta info of "Topic" or "Web.Topic"; default "%BASEWEB%.%BASETOPIC%".

Details of any topic moves

"parent"

dontrecurse="on": By default recurses up tree, this has some cost.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 " > ". topic="...": Get meta info of "Topic" or "Web.Topic"; default "%BASEWEB%.%BASETOPIC%".

Generates the parent link

Attention: The base topic, not the current topic, is used if %META{}% is placed in an included topic. Add a topic="%WEB%.%TOPIC%" parameter if you need meta info of the current topic.

Note: Formatting tokens can be used for newline, prefix, format, suffix and separator options, such as separator="$n * "

METASEARCH -- special search of meta data

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).

Note: %<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%.

Note: %<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%.

Note: %<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%.

P -- pencil icon

PARENTBC -- parent breadcrumbs for headings

Add %PARENTBC% to a heading of a topic to show the breadcrumb of its parents. Parent topics are linked, topic names are shown spaced out in a smaller font, and are separated by » quotes. In addition, a parentlistSetGetPlugin variable is set to the parent list, and a parent variable is set to the immediate parent. This can be retrieved later in the topic using %GET{parentlist}% and %GET{parent}%, respectively.

Note: %<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%.

Note: %<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%.

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.

Note: 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%.

Note: %<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%.

SCRIPTURL{"script"} -- URL of TWiki script

Expands to the URL of the specified script. Optionally, you can specify a web and/or a topic. In that case, the URL of the script for the specified web and topic is returned.

If ReadOnlyAndMirrorWebs is in effect and a web is specified, whether the web is a slave or not is taken into account. For a slave web, with scripts edit, save, attach, upload, and rename, the URL on the master site is returned. For the other scripts, if the master="on" parameter is specified, the URL on the master site is returned.

When a topic name is specified and a web is not, the current web is assumed

topic="TOPIC" or topic="WEB.TOPIC"

Specifies a topic or both a web and a topic

master="on"

A URL on the master site is needed or not

off

If web="WEB" is specified but topic is not specified, the resulting URL ends with WEB.

Example: To get the authenticated version of the current topic you can write %SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC% which expands to http://twiki.npl.illinois.edu/bin/viewauth/TWiki/TWikiVariables. It can be written %SCRIPTURL{"viewauth" topic="%TOPIC%"}% as well.

Example: Let's assume this site has a web named 'Flowers' whose master site is http://florawiki/cgi-bin. Then %SCRIPTURL{"edit" web="Flowers"}% expands to http://florawiki/cgi-bin/edit/Flowers. This is because the 'Flower' web on this site is a slave and editing needs to happen on the master site.

Example: Asuming above, %SCRIPTURL{"view" web="Flowers" master="on"}% expands to http://florawiki/cgi-bin/view/Flowers. The view script works on a slave site, but master="on" parameter forces to yield the master site URL.

Example: How to link to another topic with a URL parameter: [[%SCRIPTURL{view}%/%WEB%/MyQuery?food=sushi][Sushi]]

Note: In most cases you should use %SCRIPTURLPATH{"script"}% instead, as it works with URL rewriting much better

Example: Let's assume this site has a web named 'Flowers' whose master site is http://florawiki/cgi-bin. Then %SCRIPTURLPATH{"edit" web="Flowers"}% expands to http://florawiki/cgi-bin/edit/Flowers. This is because the 'Flower' web on this site is a slave and editing needs to happen on the master site.

SEARCH{"text"} -- search content

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 variable set to on in their WebPreferences. Note that TWikiAccessControls 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 serviceregex: use a RegularExpression search like soap;web service;!shampoo; to search on whole words use \bsoap\bquery: query search of form fields and other meta-data, like (Firstname='Emma' OR Firstname='John') AND Lastname='Peel'

Sort the results of search by the topic names, topic creation time, last modified time, last editor, parent topic name, or named field of TWikiForms. 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). Legacy order parameter is used in case sort is not specified.

Sort by topic name

start="0"start="20"

Specify the number of results to skip. This is done after sorting if sort parameter is specified. This is intended for pagination of results. If this parameter is specified, %NTOPICS% in the search template is replaced with the number of topics matched. Without this parameter, %NTOPICS% doesn't exceed the limit value.

No results skipped

limit="all"limit="16"

Limit the number of results returned. This is done after sorting if sort parameter is specified. This parameter specifing the number of results remains the same in the presense of the start parameter. Assuming there are more than 20 results matched, start="10" limit="10" results in 11th to 20th results are returned

All results

date="..."

limits the results to those pages with latest edit time in the given time interval.

All results

createdate="..."

similar to date but it's about create time instead of last edit. You can specify both date and createdate, in which case topics matching both conditions are shown.

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

headingoffset="2"

Adjust the level of headings in text of topics found, taking effect in $text and $pattern() of a FormattedSearch. A "2" or "+2" increases the level by two, e.g. a ---+ H1 turns into a ---+++ H3. Positive and negative values are supported. Adjusted min and max levels are H1 and H6, respectively.

Default message if there are no hits in a web. See FormattedSearch for usage, variables & examples

No output

expandvariables="on"

Expand variables 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 variable 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)

encode="html"

Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details.

Note: %<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%.

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% variable. A normal view of the topic shows everything exept the %STARTINCLUDE% variable itself.

Note: If you want more than one part of the topic included, use %STARTSECTION{type="include"}% instead

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="templateonly" - start position of text to be removed when a template topic is used. Use this to embed text that you do not want expanded when a new topic based on the template topic is created. TWikiTemplates has more.

type="expandvariables" - start position where TWikiVariables get expanded when a new topic is created. As documented in TWikiTemplates#VariableExpansion, only certain variables get expanded when a new topic based on the template topic is created. All variables get expanded within a "expandvariables" section.

Type of the section; type "section", "include", "templateonly", or "expandvariables"

"section"

disablefixlinks="on"

Only for named sections: Bypass fixing WikiWord links if section is included from a topic in another web. Fixing links in included text such as from SomeLink to Thisweb.SomeLink is usually desirable so that links in included text still point to the same target.

fix links

Note: 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..

Note: You can define nested sections. Do not overlap sections. Use named sections to make sure that the correct START and ENDs are matched. Section markers are not displayed when a topic is viewed.

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"

databgsorted

Data cell background color of a sorted column; see databg.

the values of databg

databgsorted="#d4e8e4,#e5f5ea"

databg

Data cell background color, a comma separated list. Specify "none" for no color, that is to use the color/background of the page the table is on.

"#edf4f9,#ffffff"

databg="#f2f2f2,#ffffff"

datacolor

Data cell text color, a comma separated list.

unspecified

datacolor="#0000CC, #000000"

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"

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"

headerbgsorted

Header cell background color of a sorted column.

the value of headerbg

headerbgsorted="#32596c"

headerbg

Header cell background color.

"#6b7f93"

headerbg="#999999"

headercolor

Header cell text color.

"#ffffff"

headercolor="#0000cc"

initdirection

Initial sorting direction for initsort, set to "up" (descending) or "down" (ascending).

unspecified

initdirection="up"

footerrows

Number of footer rows to exclude from sort. (will be rendered in a HTML tfoot section)

"0"

footerrows="1"

headerrows

Number of header rows to exclude from sort. (will be rendered in a HTML thead section)

(determined automatically)

headerrows="2"

sort

Set table sorting by clicking headers "on" or "off".

unspecified

sort="on"

tableborder

Table border width (pixels).

"1"

tableborder="2"

caption

Table caption: A title that will be displayed just above the table.

unspecified

caption="Users"

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"

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"

tablewidth

Table width: Percentage of window width, or absolute pixel value.

unspecified

tablewidth="100%"

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"

valign

Vertical alignment of cells and headers, set to "top", "middle", "bottom" or "baseline".

Note: %<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%.

TOC -- table of contents of current topic

Table of Contents. Shows a TOC that is generated automatically based on headings of the current 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. An abbreviated heading can be shown in the TOC, such as "---++ text!! this is excluded from TOC".

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. An abbreviated heading can be shown in the TOC, such as "---++ text!! this is excluded from TOC".

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 variables: The $topic variable 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.

Encode special characters into HTML entities. If a TOPICTITLE is passed into an HTML form field it should be encoded as "html". Additional encodings: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details.

"" (no encoding)

Example: %TOPICTITLE{topic="Projects.SushiProject"}% returns Sushi Project assuming the topic has a form field named "Title" with value "Sushi Project"

URLPARAM{"name"} -- get value of a URL parameter

Convert newlines in textarea to other delimiters. Variables $br (for <br /> tag), $n (for newline) are expanded. Other text is encoded based on encode parameter.

no conversion

encode="off"

Turn off encoding. See important security note below

encode="safe"

encode="quote"

Escape double quotes with backslashes (\"), does not change other characters; required when feeding URL parameters into other TWiki variables. This encoding does not protect against cross-site scripting.

IMPORTANT: There is a risk that this variable can be misused for cross-site scripting (XSS) if the encoding is turned off. The encode="safe" is the default, it provides a safe middle ground. The encode="entity" is more aggressive, but some TWiki applications might not work.

Watch out for TWiki internal parameters, such as rev, skin, template, topic, web; they have a special meaning in TWiki. Common parameters and view script specific parameters are documented at TWikiScripts.

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.

Note: The parameter should be the wikiname of a user. Since TWiki 4.2.1, 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 TWiki)

USERSWEB -- name of users web

VAR{"NAME" ...} -- get a preference value from another web or topic and more

Gets the value of a variable in various manners.

If the topic parameter is specified, it gets the value of the specified preferences variable in the specified topic. Please note that the WebPreferences of the web of the specified topic is not examined. So the returned value may not be the same as the value of the variable when the specified topic is viewed.

If the topic parameter is not specified and the web parameter is specified, it gets the value of the specified preferences variable in the specified web, which means the specified web's WebPreferences is examined for the variable.

If the neither the topic nor web parameter is specified, it gets the value of the specified variable in the current context -- the variable can either be a preferences variable or a session variable but cannot be a tag with a tag handler (e.g. %GMTIME%). %VAR{"NAME"}% is similar to %NAME%, but they differ if NAME is undefined, in which case %VAR{"NAME"}% is expanded to null (zero width string) while %NAME% remains as is (%NAME%). %VAR{"NAME"}% yields the same value as %IF{"defined NAME" then="$percntNAME$percnt"}% if NAME is a variable, but the latter is cubmersome.

Example 2: To get %WEBBGCOLOR% of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%, which expands to #FFEFA6

Example 3: Let's say you are writing the "foo" skin. And you want to have the users specify a string inserted in the head tag with FOOSKIN_HTML_HEAD_HOOK. That can be achived by the following:%VARVAL{"FOOSKIN_HTML_HEAD_HOOK" default="<nop>" ignorenull="on"}%

WEBLIST{"format"} -- index of all webs

List of all webs. Obfusticated webs are excluded, e.g. webs with a NOSEARCHALL = on preference variable. The "format" defines the format of one web item. The $name variable gets expanded to the name of the web, $qname gets expanded to double quoted name, $marker to marker where web matches selection.

the name of the web with parent web names replaced by indents, for use in indented lists

$listindent

expands to multiple-of-3 spaces for bullet (*) and numberd (1., a., etc.) lists. It's relative to the depth of the web specified by the subwebs parameter. See an example below.

$marker

expands to marker for the item matching selection only

$web

expands to the value specified by the web parameter

If you need to have a letter immediately after an item listed above, use $nop(), one of FormatTokens. e.g. $name$nop()a

"$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. There are special webs:

Item

Description

public

expands to all non-hidden webs.

cancopyto

similar to public, but webs to which a topic of the current web cannot be copied to are excluded. Specifically, excluded are read-only webs and mirror webs.

canmoveto

similar to cancopyto, but webs to which a topic of the current web cannot be moved to are excluded. Specifically, excluded are webs residing on different disks from the current web.

webtemplate

expands to all template webs, whose name start with underscore (_)

NOTE 1: Administrators will see all webs, not just the public ones. NOTE 2: If MetadataRepository is used and webs are required to be registered, then cancopyto, canmoveto, and webtemplate behave differently.

cancopyto and canmoveto results include all top level webs and subwebs of the current webs are listed regardless of accessibility - subwebs of non-current webs are excluded. They also include the user's subweb.

Note: %<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%.

Note: %<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%.