What is a WikiWord?

A WikiWord consists of two or more words with initial capitals, run together. WikiWords are topic names. A Foswiki topic name always has a fixed format: two or more words with initial capitals, run together. Like the name of the current topic: WikiWord. When you type the name of a topic, you create a link to that topic. You type WebHome and on saving the page this becomes WebHome. It's as easy as that.

When you type a WikiWord, you establish a hyperlink. 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
  • Without HTML, the topic text is easier to read when editing
  • 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 the need to fiddle with HTML tags
  • It avoids over-general topics because at least two words are required

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" ;

Good examples of WikiWords

  • WikiWord
  • GoodStyle
  • VersionFiveDotThree?
  • ReleaseVersion5dot3?
  • AVeryLongWikiTopicNameIsAlsoPossible?: wherever an uppercase or lowercase letter is allowed, a group of letters of the same case is allowed
  • YearTwoThousand?
  • Nine2Five?: Note that numbers are considered to be lowercase letters in 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 the name of a topic, 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.


  • 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.
  • To stop a WikiWord from being turned into a hyperlink, insert an exclamation point immediately before the WikiWord. For example, write !SunOS to get SunOS.
  • 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.
  • ALERT! 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.
  • ALERT! 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: WikiSyntax, TextFormattingRules
Topic revision: r1 - 12 Sep 2009 - 02:01:58 - ProjectContributor
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback