# What is a WikiWord? A WikiWord consists of two or more words with initial capitals, run together. **WikiWords are topic names.** A TWiki 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|Main/Wikipedia: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 - 5TWiki: 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: `[[TWikiAccessControl][access control]]` - this becomes: [[access control|Main/TWikiAccessControl]] - 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|Sandbox/WebHome]] - To link to a topic on **another Wiki site**, use: `TWiki:Main/WebHome` - this becomes: TWiki: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: `%SYSTEMWEB%.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|Main/WebHome#Good_examples_of_WikiWords]]. You can also link to a header on another page: `%SYSTEMWEB%.WebHome#Disclaimer` becomes: %SYSTEMWEB%.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. - 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. See NOAUTOLINK setting in [[TWikiPreferences#Default_Web_Preferences]]. - %X% 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|Sandbox/WebHome]]. - %X% Dots (.) are used as seperators between webs, subwebs, and topics. It is not possible to use dots in topic names. TWiki does not attempt to guess if a dot could be part of a topic name. **_Related Topics:_** [[WikiSyntax]], [[TextFormattingRules]] -- **_Contributors:_** TWiki:Main.PeterThoeny, TWiki:Main.ArthurClemens, TWiki:Main.CrawfordCurrie