There seems to be an eternal debate in the Wiki world concerning links. Should they be with capitalized letters LikeThis or with some other method such as brackets [like this]?
Against CamelCase:
An alternative:
A wiki should create links everywhere it can, leaving the reader/editor to inhibit those that are inappropriate. If there is a page called ThisExample and the text contains
This gives:
If the issue is just one of links being created when not wanted, (PhD not being a link), then changing the linking syntax is not the solution. The simplest thing to do is tweak the CamelCase parser to recognize an additional simple marker that indicates the word should not be a link. SixSingleQuotes achieves that goal.
SixSingleQuotes (i.e., a null string in triple quotes) also messes up the apparent formatting on some browsers (notably, NetScape 4.5); it puts in some pixels of whitespace where the quotes were. The effect is especially noticeable when text is italicized. It's also a lot of typing given the intent. People here are complaining about adding two characters to make a link, but apparently have no problem adding six to prevent one.
[ ] links have the very clear advantage of making it much easier to avoid UgLy-ness, since case sensitivity is no longer at issue. The main argument put forward in favour of CamelCase (as I read it) is that it shields you from having to think about the task of linking, or the name of what you are linking to. But to me, the fact that people produce UgLy page names is evidence enough that it doesn't work that way.
The main problem I have with CamelCase links, though, is that it becomes hard to deal with aliases, and/or rework your wording for grammatical reasons. This problem isn't really addressed by [] links either, although PhpWiki offers a (hacked-feeling, IMO) solution with the [|] syntax.
This is what I mean: It's bad enough to remember to use SixSingleQuotes in, say, "ObjectOrientedLanguages" (so that there is no duplicate page). But if I want to refer to RefactorMercilessly, and the grammatically correct phrase in the context of my sentence is "mercilessly refactored" or "merciless refactoring", then I'm out of luck. I don't (and the WikiCommunity seemingly agrees with me) want to have to make a trivial little alias page for each alternative, but remembering which of the pages is the one that actually exists can be troublesome in some cases.
I have worked out a solution for the problem for ZincWiki, which plays off the idea of PhpWiki's [|] links. Basically, you can use | as a delimiter within [] (as link indicators), and every other "item" is ignored when determining what page is linked. There's a bit more to it than that, which I'll describe on the ZincWiki page once I get back to implementing things.
-- KarlKnechtel
Anyone tried using [[page name] alternate text] instead of [[page name | alternate text]]? Seems like that might make it easier to remember which goes first. Also, it follows somewhat logically from the [[page name]] syntax.
Let us say I write a page and at one point I want to quote a song by Michael Jackson. But I don't know that there is a page on Michael Jackson here. So I write Michael Jackson. But the computer knows there is a page on Michael Jackson so it will automatically create the link by putting Michael and Jackson together. Is that what you are talking about? An automatic creation of links by the software? (or to be more precise a re-creation by the software of a link that already exists)
Why not have both camel and non-camel and let the user select the one they want? Or support both syntaxes? This works for UseMod and WakkaWiki.
Historical Note. Some people wonder why they can't make anything they want be a link, especially when they can make anything, including images, be links in html. Some insight may be had by understanding that I was not searching for a link formatting syntax when I created wiki. Rather, I was looking for specific characteristics for whole pages, including their titles. I was pleased when I realized that the titles I wanted could be recognized with sufficient reliability despite my adding no additional markup whatsoever. -- WardCunningham
An additional, subtle, pro:
Thanks to CamelCase new concepts are popularized. Here is why:
When a couple of words (or slightly more) go together well and if the underlying concept is successful enough, then the CamelCase name for the concept will pop up frequently and chances are that it will become an idiom.
CamelCase is an example of this.
Having names for things is a good thing; it structures the mind and facilitate communication. Existing names are already overloaded with meaning. CamelCase open a new name space for CamelNames?.
You may agree that the success of acronyms is another indication of the deep need for new name spaces. So, help fulfill that need and promote CamelNames?. :-)
BTW: Do we remember how we used to describe a name in CamelCase before CamelCase became so widely accepted? I discovered the name "CamelCase" while browsing www.c2.com, the original Wiki. That way... despite having been exposed to SmalltalkLanguage years before (where I believe CamelCase was used a lot for the first time).
An additional benefit of CamelCase is that as wikis becomes increasingly popular, it will become possible to use a CamelName? in a mail message. People will understand that one is referring to an already defined concept that they can find information about in some wiki.
Now, if you want to promote CamelCase names, provide a feature whereby one can easily provide a CamelLink? to a WikiPage in an external wiki and then you get another WWW (WorldWideWiki). See also InterWikiLinks, on Meatball (http://usemod.com/cgi-bin/mb.pl?InterWikiLinks)
PS: If you want to support [[such links]], make it possible to have CamelCase links too (at the same time).