The special text format used in Foswiki topics to simplify topic text.
Foswiki lets you work using a WYSIWYG editor, which for most people is the easiest way to enter and edit text. many people prefer typing and editing in plain text (i.e. text without visible formatting), and Foswiki provides a simple formatting language called TML (Topic Markup Language) for this (you don't need to know HTML, though you can use it if you want). Topics are stored in TML, and differences are displayed using it, so it's worth knowing the basics even if you only use WYSIWYG. It's all laid out below.A quick introduction:
*bold type*
.
_italic_
.
__bold italic__
.
MONOSPACED TYPE
, use equal signs: =like this=
.
==double equal signs==
for bold: bold mono
.
%RED% red text %ENDCOLOR% and %GREEN% green text %ENDCOLOR%
to get red text and green text . %<color>%
text must end with %ENDCOLOR%
. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%
, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%
.
%TOC%
wherever you like on a page (see Macros for more %TOC%
options).
<verbatim>
to enclose code excerpts, filenames, and other unformatted text:<verbatim> unformatted text! and more of it! </verbatim>
Full list of text formatting capabilities:
Formatting Command: | You write: | You get: | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paragraphs: Blank lines will create new paragraphs. |
1st paragraph 2nd paragraph |
1st paragraph 2nd paragraph |
|||||||||||||||||||||||||||||||||||
Headings: Three or more dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a top level heading, two pluses a second level heading, etc. The maximum heading depth is 6. You can create a table of contents with the %TOC% macro. If you want to exclude a heading from the TOC, put !! after the ---+ .
Empty headings are allowed, but won't appear in the table of contents.
See the <ho> tag below for how to adjust heading levels dynamically.
|
---++ Sushi ---+++ Maguro ---+++!! Not in TOC |
SushiMaguroNot in TOC |
|||||||||||||||||||||||||||||||||||
Bold Text: Words get shown in bold by enclosing them in * asterisks.
|
*Bold* | Bold | |||||||||||||||||||||||||||||||||||
Italic Text: Words get shown in italic by enclosing them in _ underscores.
|
_Italic_ | Italic | |||||||||||||||||||||||||||||||||||
Bold Italic: Words get shown in bold italic by enclosing them in __ double-underscores.
|
__Bold italic__ | Bold italic | |||||||||||||||||||||||||||||||||||
Fixed Font: Words get shown in fixed font by enclosing them in = equal signs.
|
=Fixed font= |
Fixed font
|
|||||||||||||||||||||||||||||||||||
Bold Fixed Font: Words get shown in bold fixed font by enclosing them in == double equal signs.
|
==Bold fixed== |
Bold fixed
|
|||||||||||||||||||||||||||||||||||
You can follow the closing bold, italic, or other (* _ __ = == ) indicator
with normal punctuation, such as commas and full stops.
Make sure there is no space between the text and the indicators.
|
_This works_, _this does not _ |
This works, _this does not _ |
|||||||||||||||||||||||||||||||||||
Separator (Horizontal Rule): Three or more three dashes at the beginning of a line.. |
--- |
|
|||||||||||||||||||||||||||||||||||
Bulleted List: Multiple of three spaces, an asterisk, and another space. For all the list types, you can break a list item over several lines by indenting lines after the first one by at least 3 spaces. |
* level 1 * level 2 * back on 1 * A bullet broken over three lines * last bullet |
|
|||||||||||||||||||||||||||||||||||
Numbered List: Multiple of three spaces, a type character, a dot, and another space. Several types are available besides a number:
A , a , I and i must be entered exactly as specified, numbers can be any single digit 0-9. It is recommended for future compatibility that only the number 1 be used for numbered type lists.
|
1. Sushi 1. Dim Sum 1. Fondue A. Sushi A. Dim Sum A. Fondue i. Sushi i. Dim Sum i. Fondue |
|
|||||||||||||||||||||||||||||||||||
Definition List: Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. |
$ Sushi: Japan $ Dim Sum: S.F. |
|
|||||||||||||||||||||||||||||||||||
Definition List: (deprecated) Three spaces, the term (a single word, no spaces), a colon, a space, followed by the definition. |
Sushi: Japan Dim-Sum: S.F. |
|
|||||||||||||||||||||||||||||||||||
Indented Text: Three spaces, a colon, a space, followed by the paragraph.
|
: Indented line Continued : New paragraph : 2nd level indent |
Indented line Continued
New paragraph
2nd level indent
|
|||||||||||||||||||||||||||||||||||
Table: Each row of the table is a line containing of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored. | *bold* | header cell with text in asterisks
| center-aligned | cell with at least two, and equal number of spaces on either side
| right-aligned | cell with more spaces on the left
| 2 colspan || and multi-span columns with multiple |'s right next to each other
|^| cell with caret indicating follow-up row of multi-span rows
|^| multiple-span row functionality and additional rendering features
|
| *L* | *C* | *R* | | A2 | B2 | C2 | | A3 | B3 | C3 | | multi span ||| | A5-7 | 5 | 5 | |^| six | six | |^| seven | seven | | split\ | over\ | 3 lines | | A9 | B9 | C9 | | %CARET% | B10 |%VBAR%| | ^ | B11 ||| |
|
|||||||||||||||||||||||||||||||||||
WikiWord Links: CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically if preceded by whitespace or parenthesis.
'.' are used to separate webs and subwebs from topic names and therefore cannot be used in topic names.
It's generally a good idea to use the macros %SYSTEMWEB%, %SANDBOXWEB% and %USERSWEB% instead of System, Sandbox and Main.
To prevent a word from linking, prefix it with the exclaimation mark (!) or <nop>
|
%STATISTICSTOPIC% %SANDBOXWEB%.WebNotify %SANDBOXWEB%.%HOMETOPIC% %SANDBOXWEB%.Subweb.TopicName | WebStatistics WebNotify Sandbox TopicName | |||||||||||||||||||||||||||||||||||
Acronym Links: Words that are all capitals will produce a link automatically only if the topic already exists!. |
ACRONYM %SYSTEMWEB%.ACRONYM | ACRONYM ACRONYM | |||||||||||||||||||||||||||||||||||
Anchors: You can define a reference inside a topic (called an anchor name) and link to that. To define an anchor write #AnchorName at the beginning of a line. The anchor name must be a WikiWord of no more than 32 characters. To link to an anchor name use the [[MyTopic#MyAnchor]] syntax. You can omit the topic name if you want to link within the same topic.
|
[[WikiWord#NotThere]] [[#MyAnchor][Jump]] #MyAnchor To here | WikiWord Jump To here | |||||||||||||||||||||||||||||||||||
Forced Links: You can create a forced internal link by enclosing words in double square brackets. Text within the brackets may contain optional spaces; the topic name is formed by capitalizing the initial letter and by removing the spaces; for example, [[wiki word]] links to topic WikiWord. You can also refer to a different web and use anchors.
To "escape" double square brackets that would otherwise make a link, prefix the leading left square bracket with an exclamation point. |
[[wiki syntax]] [[Main.Wiki groups]] escaped: ![[wiki syntax]] | WikiSyntax WikiGroups escaped: [[wiki syntax]] | |||||||||||||||||||||||||||||||||||
Renamed Links: You can create a link where you specify the link text and the URL separately using nested square brackets [[reference][text]] . Internal link references (e.g. WikiWord) and URLs (e.g. https://foswiki.org/) are both supported.
The rules described under Forced Links apply for internal link references.
Anchor names can be added as well, to create a link to a specific place in a topic. |
[[WikiWord][wiki word]] [[http://gnu.org][GNU]] | wiki word GNU | |||||||||||||||||||||||||||||||||||
Automatic links: Typed-in URLs are linked automatically. Most standard protocols are supported; if yours is missing, it can be added by the site administrator. URLs for images are automatically inserted inline. Email addresses are also linked automatically, see further details below. automatic linking of URLs and email addresses is not blocked by thenoautolink setting.
|
* file://foswiki.org * ftp://foswiki.org * http://foswiki.org * https://foswiki.org * mailto:example@foswiki.org * news://foswiki.org * nntp://foswiki.org * telnet://foswiki.org * name@foswiki.org * %PUBURL%/%SYSTEMWEB%/ProjectLogos/foswiki-logo-icon.png |
||||||||||||||||||||||||||||||||||||
Prevent an Automatic Link: Prevent a WikiWord, URL, email address or image from being linked by prepending it with an exclamation point (!) or <nop> tag.
Note that you can use the <nop> tag, but any leading markup directly adjacent to a wikiword will prevent automatic linking because the word is no longer space delimitied.
|
!SunOS <nop>SomeWiki <b>SomeWiki</b> =SomeWiki= <b>https://foswiki.org</b> _%PUBURL%/%SYSTEMWEB%/ProjectLogos/foswiki-logo-icon.png_ |
SunOS SomeWiki SomeWikiSomeWiki
https://foswiki.org
https://wiki.alexander-weimer.com/bin/../pub/System/ProjectLogos/foswiki-logo-icon.png
|
|||||||||||||||||||||||||||||||||||
Disable Automatic Linking: You can disable automatic linking of WikiWords by surrounding text with <noautolink> and </noautolink> tags.You can also turn off WikiWord auto-linking with the NOAUTOLINK preference setting. The noautolink feature only applies to WikiWords. It does not stop linking of URLs, or email addresses.
|
<noautolink> RedHat & SuSE </noautolink> | RedHat & SuSE | |||||||||||||||||||||||||||||||||||
Mailto Links: E-mail addresses are linked automatically. To create e-mail links that have more descriptive link text, specify subject lines or message bodies, or omit the e-mail address, you can write [[mailto:user@domain][descriptive text]] .
automatic linking of email addresses is not blocked by <noautolink> , Escape with a ! to prevent auto linking.
|
a@b.com [[mailto:a@b.com][Mail]] [[mailto:?subject=Hi][Hi]] !a@b.com | a@b.com Mail Hi a@b.com | |||||||||||||||||||||||||||||||||||
Special characters: Some characters are reserved for use by TML
|
< > & ℵ 亹 A <nop>!= B != C <nop>!here, !here |
< > & ℵ 亹
A != B != C !here, here |
|||||||||||||||||||||||||||||||||||
Escapes Escapes are used to prevent a "default action" from occuring. They are used in many places when composing topics and writing Foswiki macros.
|
!WikiWord %BR% %TOPIC% %BR% <nop>%TOPIC% %BR% <nop>%WIKIWEBMASTER% %BR% <nop>!%TOPIC% %BR% !here !here <nop>!here %BR% %TOP\ IC% |
WikiWord %TOPIC% EditingShorthand admin@alexander-weimer.com !EditingShorthand here !here !here %TOPIC% |
|||||||||||||||||||||||||||||||||||
Controlling how content is rendered: There are 3 ways to control how your topic content is rendered. This is done with three HTML or pseudo-HTML tags: <literal>, <verbatim> and <pre> They
control whether or not:
|
|
||||||||||||||||||||||||||||||||||||
Literal content: Foswiki generates HTML code from TML shorthand. Experts surround anything that must be output literally in the HTML code, without the application of shorthand rules, with <literal>..</literal> tags.
Any HTML within literal tags must be well formed i.e. all tags must be properly closed before the end of the literal block. Macros are expanded within literal blocks. |
<literal> | Not | A | Table | </literal> |
| Not | A | Table | | |||||||||||||||||||||||||||||||||||
Verbatim (Literal) Text: Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags.verbatim tags disable HTML code. Use <pre> and </pre> tags instead if you want the HTML code within the tags to be interpreted.Preferences settings (* Set NAME = value) are set within verbatim tags. |
<verbatim> class CatAnimal { void purr() { <code here> } } </verbatim> |
class CatAnimal { void purr() { <code here> } } |
|||||||||||||||||||||||||||||||||||
Verbatim (Literal) Code Highlighting: Surround code excerpts and other formatted text e.g. with <verbatim class="bash"> and </verbatim> tags.This type of code highlighting is based on Chili - the jQuery code highlighter plugin. Please find supported class attributes in JQueryChili. verbatim tags disable HTML code. Use <pre class="bash"> and </pre> tags instead if you want the HTML code within the tags to be interpreted.Preferences settings (* Set NAME = value) are set within verbatim tags. |
<verbatim class="bash"> #!/bin/bash while [ -n "$(ls . ~/ \ ~/pub* /var/www 2>/dev/null \ | fgrep foswiki )" ] ; do clear printf "\nFoswiki rules!\n" sleep 10 clear printf "\nFoswiki still rules!\n" sleep 10 done; exit 0 </verbatim> |
#!/bin/bash while [ -n "$(ls . ~/ \ ~/pub* /var/www 2>/dev/null \ | fgrep foswiki )" ] ; do clear printf "\nFoswiki rules!\n" sleep 10 clear printf "\nFoswiki still rules!\n" sleep 10 done; exit 0 |
|||||||||||||||||||||||||||||||||||
Protected content: Experts protect text from mangling by WYSIWYG editors using <sticky>..</sticky> tags. Sticky tags don't have any effect on normal
topic display; they are only relevant when content has to be
protected from a WYSIWYG editor (usually because it isn't well-formed HTML, or because it
is HTML that WYSIWYG would normally filter out or modify). Protected
content appears as plain text in the WYSIWYG editor.
Any HTML within sticky tags must be well formed i.e. all tags must be properly closed before the end of the sticky block. Macros are expanded within sticky blocks. |
<sticky> <div> This div %RED%is%ENDCOLOR% required </div> </sticky> |
This div
is
required
|
|||||||||||||||||||||||||||||||||||
Adjust heading levels: You can adjust heading levels for headings generated using ---+ markup and also HTML <h> tags using the <ho> tag.The %INCLUDE and %SEARCH macros also have a headingoffset parameter to do this for you in included content.Heading levels are limited to the range 1..6 after any offset is applied. |
---++ offset is 0 <ho off="1"> ---++ H2 becomes H3 <ho off="-1"> ---++ offset was 1, so offset is now 0 |
offset is 0H2 becomes H3offset was 1, so offset is now 0 |
<strike>deleted text</strike>
to get <literal>..</literal>
tags around blocks of HTML to avoid accidental interpretation of WikiSyntax within the HTML.
<body>
and </body>
tags.
<p />
paragraph tags on empty lines, which causes problems if done between HTML tags that do not allow paragraph tags, like for example between table tags.
<...>
- of a HTML tag are on the same line, or the tag will be broken.
%TOPIC%
is expanded to TopicMarkupLanguage, the title of this topic.
Some macros can take arguments in curly braces - for example, %INCLUDE{"OtherTopic" ARG="arg"}%
.
Macros are fully expanded before any of the text formatting rules are applied.
Many macro definitions are built-in, and others (preference settings) are predefined for your convenience. You can also define your own
preference settings at the entire site, individual web, or individual topic level. For more information, see Macros Plugins can extend the functionality of Foswiki into many other areas, and often implement new macros. There are a huge number of plugins available from the foswiki site. Check on current Plugin status and settings for this site in InstalledPlugins.
Foswiki formatting rules are fairly simple to use and quick to type. However, there are some things to watch out for:
<filename>
is not displayed. How can I show it as it is? '<'
and '>'
characters have a special meaning in HTML, they define HTML tags. You need to escape them, so write '<'
instead of '<'
, and '>'
instead of '>'
. 'prog <filename>'
to get 'prog <filename>'
.
'&'
character sometimes not displayed? '&'
character has a special meaning in HTML, it starts a so called character entity, i.e. '©'
is the ©
copyright character. You need to escape '&'
to see it as it is, so write '&'
instead of '&'
. 'This & that'
to get 'This & that'
.