(no commit message)
[openafs-wiki.git] / TWiki / WikiWord.mdwn
1 # <a name="What is a _WikiWord?"></a><a name=" What is a _WikiWord?"></a> What is a WikiWord?
2
3 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.
4
5 When you type a WikiWord, you establish a hyperlink. It's as easy as that.
6
7 WikiWord linking is easy to use:
8
9 - You don't have to know the full path to where the topic is stored - you just type the name
10 - You don't need to write HTML
11 - Without HTML, the topic text is easier to read when editing
12 - Easy linking leads to interesting texts with links placed in context
13
14 WikiWords are styled like this because:
15
16 - It makes Wiki hyperlinks instantly recognizable
17 - It leads to interesting Wiki topics
18 - It avoids the need to fiddle with HTML tags
19 - It avoids over-general topics because at least two words are required
20
21 ## <a name="Syntax of a _WikiWord"></a> Syntax of a WikiWord
22
23 - Uppercase letter(s)
24 - Lowercase letter(s) or numbers(s)
25 - Uppercase letter(s)
26 - Optional lowercase or uppercase letter(s) or number(s)
27
28 WikiWord syntax in [[Extended Backus.Naur form|Main/Wikipedia:Extended_Backus_Naur_Form]] (EBNF):
29
30         wikiWord        = upperLetters , lowerNumLetters , upperLetters , { alphaNum } ;
31         upperLetters    = upperCase , { upperCase } ;
32         lowerNumLetters = lowerNum , { lowerNum } ;
33         alphaNum        = upperCase | lowerCase | digit ;
34         lowerNum        = lowerCase | digit ;
35         lowerCase       = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i"
36                         | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r"
37                         | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" ;
38         upperCase       = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
39                         | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R"
40                         | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;
41         digit           = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
42
43 ## <a name="Good examples of _WikiWords"></a> Good examples of WikiWords
44
45 - [[WikiWord]]
46 - [[GoodStyle]]
47 - [[VersionFiveDotThree]]
48 - [[ReleaseVersion5dot3]]
49 - [[AVeryLongWikiTopicNameIsAlsoPossible]]: wherever an uppercase or lowercase letter is allowed, a group of letters of the same case is allowed
50 - [[YearTwoThousand]]
51 - [[Nine2Five]]: Note that numbers are considered to be lowercase letters in WikiWords
52
53 ## <a name="Bad examples of _WikiWords:"></a> Bad examples of WikiWords:
54
55 - Web: Name without the uppercase letter(s), lowercase letter(s), uppercase letter(s) sequence
56 - 5TWiki: Name beginning with a number
57 - Know-How: Name with dashes in between
58
59 ## <a name="Variations in linking"></a> Variations in linking
60
61 When you write the name of a topic, it becomes a link. There are more ways
62
63 - To write a custom **link label**, use bracket notation: `[[TWikiAccessControl][access control]]` - this becomes: [[access control|Main/TWikiAccessControl]]
64 - To link to a topic in **another web**, write: `Sandbox.WebSearch` - this becomes: [[WebSearch]]
65 - To link to a topic in **another subweb** write: `Sandbox.Subweb.WebSearch`.
66 - To show the web name in the link use bracket notation: `[[Sandbox.WebHome]]` - this becomes: [[Sandbox.WebHome|Sandbox/WebHome]]
67 - To link to a topic on **another Wiki site**, use: `TWiki:Main/WebHome` - this becomes: TWiki:Main/WebHome (sites are defined in the [[InterwikiPlugin]])
68 - 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`.
69 - 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.
70
71 ## <a name="Hints"></a> Hints
72
73 - Insert WikiWords wherever you can. Rich linking helps to make a Wiki successful.
74 - 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.
75 - 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.
76 - 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).
77 - Sometimes you have to be creative to find a good WikiName. Examples:
78   - To create a topic about the the **Bread Slicer 1.2** product, use `BreadSlicer1dot2` or `BreadSlicer1pt2`, but not `BreadSlicer1.2`.
79   - Numbers are considered lowercase which makes `Year2K` and `Y2K` WikiWords but not `Y2000` and `Y2k`.
80 - Turn acronyms into WikiWords, i.e. take `FaqIndex` for a "FAQ index" topic.
81 - 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]].
82 - %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]].
83 - %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.
84
85 **_Related Topics:_** [[WikiSyntax]], [[TextFormattingRules]]
86
87 -- **_Contributors:_** TWiki:Main.PeterThoeny, TWiki:Main.ArthurClemens, TWiki:Main.CrawfordCurrie