What is a WikiWord?
A WikiWord consists of two or more words with initial capitals, run together.
WikiWords are used to refer to topics.
WikiWords refer to topics, and topic names are WikiWords. When you type a WikiWord, you create a link to that topic, or a link to create that topic if it doesn't exist yet. You type
WebHome
and on saving the page this becomes
WebHome. It's as easy as that.
WikiWord linking is easy to use:
- You don't have to know the full path to where the topic is stored - you just type the name
- You don't need to write HTML
- Easy linking leads to interesting texts with links placed in context
WikiWords are styled like this because:
- It makes Wiki hyperlinks instantly recognizable
- It leads to interesting Wiki topics
- It avoids over-general topics because at least two words are required
Note that
acronyms are also auto-linked, but
only if the topic already exists.
Syntax of a WikiWord
- Uppercase letter(s)
- Lowercase letter(s) or numbers(s)
- Uppercase letter(s)
- Optional lowercase or uppercase letter(s) or number(s)
WikiWord syntax in
Extended Backus.Naur form (EBNF):
wikiWord = upperLetters , lowerNumLetters , upperLetters , { alphaNum } ;
upperLetters = upperCase , { upperCase } ;
lowerNumLetters = lowerNum , { lowerNum } ;
alphaNum = upperCase | lowerCase | digit ;
lowerNum = lowerCase | digit ;
lowerCase = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i"
| "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r"
| "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" ;
upperCase = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
| "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R"
| "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
Preventing automatic linking
Sometimes you want to be able to enter a WikiWord without the automatic
linking. When editing in TML, simply put an exclamation mark (!) before the word.
!WikiWord WikiWord
will be displayed as WikiWord
WikiWord.
Good examples of WikiWords
Bad examples of WikiWords:
- Web: Name without the uppercase letter(s), lowercase letter(s), uppercase letter(s) sequence
- 5Alive: Name beginning with a number
- Know-How: Name with dashes in between
Variations in linking
When you write a WikiWord, it becomes a link. There are more ways
- To write a custom link label, use bracket notation:
[[AccessControl][access control]]
- this becomes: access control
- To link to a topic in another web, write:
Sandbox.WebSearch
- this becomes: WebSearch
- To link to a topic in another subweb write:
Sandbox.Subweb.WebSearch
.
- To show the web name in the link use bracket notation:
[[Sandbox.WebHome]]
- this becomes: Sandbox.WebHome
- To link to a topic on another Wiki site, use:
Foswiki:Main/WebHome
- this becomes: Foswiki:Main/WebHome (sites are defined in the InterwikiPlugin)
- To link to a part on the same page, write a "#" followed by the name of an anchor. The anchor is a "#" followed by a name which must be a WikiName. Example
#MyAnchor
. You can also link to an anchor on another page: System.WebHome#MyAnchor
.
- To link to a header on the same page, write a "#" followed by the header text, with spaces replaced by underscores (and
!
removed): [[#Good_examples_of_WikiWords]]
becomes: #Good_examples_of_WikiWords. You can also link to a header on another page: System.WebHome#Disclaimer
becomes: WebHome#Disclaimer.
Hints
- Insert WikiWords wherever you can. Rich linking helps to make a Wiki successful.
- Be specific. All topics in a web share one name space. For example, instead of
FunctionalSpec
write BreadSlicerFunctionalSpec
because other projects might also have a functional spec topic.
- Create topics with singular names. Plural WikiWords are automatically linked to the singular topic, i.e. the link WikiWords links to the topic WikiWord (works only in English).
- Sometimes you have to be creative to find a good WikiName. Examples:
- To create a topic about the the Bread Slicer 1.2 product, use
BreadSlicer1dot2
or BreadSlicer1pt2
, but not BreadSlicer1.2
.
- Numbers are considered lowercase which makes
Year2K
and Y2K
WikiWords but not Y2000
and Y2k
.
- Turn acronyms into WikiWords, i.e. take
FaqIndex
for a "FAQ index" topic.
- It is possible to turn off the auto-linking of WikiWords and to rely only on the bracket notation using the NOAUTOLINK preference setting.
When linking to a WebHome topic
in another web, the link will be rendered as the name of the web, e.g.
Sandbox.WebHome
becomes
Sandbox.
Dots (.) are used as seperators between webs, subwebs, and topics. It is not possible to use dots in topic names. Foswiki does not attempt to guess if a dot could be part of a topic name.
Related Topics: TopicMarkupLanguage