%META:TOPICINFO{author="TWikiContributor" date="1307241948" format="1.1" version="10"}% ---+!! 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 =%HOMETOPIC%= and on saving the page this becomes %HOMETOPIC%. 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 #WikiWordSyntax #TheSyntax ---++ 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 [[Wikipedia:Extended_Backus–Naur_Form][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" ; #GoodExamples ---++ 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 #BadExamples ---++ 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 #VariationsInLinking ---++ 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: [[TWikiAccessControl][access control]] * To link to a topic in *another web*, write: =Sandbox.WebSearch= - this becomes: Sandbox.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.%HOMETOPIC%]]= - this becomes: [[Sandbox.%HOMETOPIC%]] * 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%.%HOMETOPIC%#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: =%SYSTEMWEB%.%HOMETOPIC%#Disclaimer= becomes: %SYSTEMWEB%.%HOMETOPIC%#Disclaimer. #WikiWordHints ---++ 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 %HOMETOPIC% topic _in another web_, the link will be rendered as the name of the web, e.g. =Sandbox.%HOMETOPIC%= becomes Sandbox.%HOMETOPIC%. * %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, WikiNotation, TextFormattingRules, TWikiEditingShorthand, TWikiRenderingShortcut, TWikiShorthand %STOPINCLUDE% -- __Contributors:__ TWiki:Main.PeterThoeny, TWiki:Main.ArthurClemens, TWiki:Main.CrawfordCurrie