CamelCase is a way of writing, WithEveryWordInCapitalLetter and MashedTogether. It's commonly used in many programming languages, and in Wikis, it defines a WikiWord..

JSPWiki supports CamelCase linking from 1.9.2 onwards.

Here is the relevant discussion from Ideas, with a couple of additional thoughts.


Opinions:#

Be careful! There are some ProblemsWithAutolinking using CamelCase. --DanHoward, 2003-nov13

AlainRavet: CamelCase is very useful, but we need a way to escape it, like Twiki's <nop>.
Example: JasperReport is only a product name, not a page link.

Good idea --OliBye

Agreed. Should we still copy PhpWiki and use "!" as the escape character, or perhaps something else? Use "\"? Or "~"? --JanneJalkanen

I find <nop> more obvious, and less error prone. --AlainRavet

Automatic CamelCase linking is not good when it comes to software documentation or filenames. See TableTemplate.
I don't like the idea of automatic linking as default. It's not that much trouble to write the squarebrackets. --Mortena September 25, 2002

Must say I agree with Mortena. Bad default, at least for Java developers... --ebu

I disagree. WikiWords have been THE standard Wiki way of linking since day 1. I think making it configurable would be good (if it isn't already). --Kelzer

CamelCase links are actually not on by default in the JSPWiki distribution. :-) Alain, I wonder how writing five characters is less error prone than a single character? --JanneJalkanen

We already have to remember that

 
* #  ! !! !!! __ \\ " '  ; (more to come)
have a special meaning, in a special context. Now, you want to add or reuse a special character? My brain it too small. :-)

BTW,
<nop> = No operation Why do I feel you already knew it? I didn't even have to tell you. See?

--AlainRavet

I know it because I use TWiki extensively at some other places :-). TWiki uses <nop> to stop the parsing. And no, I don't think it's a good thing.

Adding new special characters is not necessarily a bad though. Those that need them are typically Java programmers who can deal with such issues anyway. In that sense, using "!" for negation might not be a bad idea. However, using the same special character for two different purposes is a bit of a problem, though.

--JanneJalkanen

Since 1.9.27 it's possible to escape CamelCase links by using a (aka tilde, worm) directly in front of the word (like this: CamelCase). The change is now live on this server - let's see how this works out.

--JanneJalkanen

Mph. An irritation: CamelCased words, like JSPWiki, appear separately in titles, like J S P Wiki. (OK, confusion here.. JSPWiki seems to behave exceptionally: it's decamelized by default, and a prepended tilde is visible: ~JSPWiki. Huh?)

--ebu


May 3, 2002 -- MattMower#

Auto-linking#

I had this notion that JSPWiki should automagically turn text into links. After some text has been made a link using:

[]

and the corresponding page has been created, JSPWiki should automatically turn that text into a link wherever it is found, even when it isn't included inside the markers.

I'm not sure of the implications of this but I thought it might be interesting....

JanneJalkanen: Actually, most wikis just make all words ThatHaveBeenWrittenInCamelCase to links, and you're supposed to just write your text using CamelCase whenever you think might be necessary. This allows you to do automatical linking with ease. We require []s everywhere, but I'm slowly starting to think that perhaps allowing CamelCase is quite okay. For now, just write everything you think might be useful as a link later on inside square brackets. It doesn't matter if the link does not exist - someone will create them at some point. If you're bored, you can always go to UndefinedPages and make some =).

MattMower: Now I think about it I'm less certain I want it. I seem to remember it was one of the things I found irritating about my early experiences with Wiki. I think what maybe I want is a way to insert the links easily where I want them. Hmmm.... now I'm not sure what I want :)

GarethSB (after discussion with DuncanMcGregor): Supporting CamelCase in addition to the [] mechanism would be very unlikely to break anything that exists already on any JSPWiki -- there isn't going to be much CamelCase that shouldn't be a link right? It would make transfer from other WikiClones much easier too. Go for it, I say! (OliBye said more or less the same thing on xpdeveloper too: http://www.xpdeveloper.com/xpdwiki/Wiki.jsp.)

JanneJalkanen: Actually, I had a sort-of-working version of using plain CamelCase running already. Then I accidentally deleted the entire source tree (before I was able to put it into CVS). I got so miffed by it that I haven't bothered to hack it back up again. (I am using the word "hack" because the current TranslatorReader structure cannot really do the CamelCase link detection cleanly.) Anyway, it's on the TODOList.

JanneJalkanen: Yap. I wrote a much better implementation and support for plain CamelCase is now in 1.9.2, available from cvs. It was a bit tricky because we did not want to break any existing code ([HyperLink] should not match, neither should [http://BumpyCase.com]. :-)

OliBye thanks guys. I can upgrade http://xpdeveloper.org now (after testing ofcourse). OliBye would like to help testing but I can't find a version 1.9.2x to download. Could I get it from anonymous CVS?

There has not been an official release yet. 1.9.2x is available through JSPWikiDownload, and now also through AnonymousCVSAccess. --JanneJalkanen

AnonymousCoward: Instead of automatically going and shoving a bunch of links into pages when someone starts linking a phrase, maybe it would be better to have a pluginpage that would show you which pages could have that wiki-able phrase turned into links. Something along the lines of UnusedPages. You could view pages that contained the matching link and decide if it is a good candidate to have the link inserted.

An example to consider of when you wouldn't want an autolink inserted for a particular term is disambiguation pages. If you have the wrong thing linked, with a right word, from a bunch of pages it could prove to be a frustrating experience for readers. When using context sensitive words, it would be better for that word to link to the relevant context definition for the word, instead of the disambiguation page, however, a retro-active autolinker may (at first blush/implementation) merrily link to the disambiguation page.

P.S. Taking the idea further, having a page that displays unique/rare word statistics could also be useful for determining what may need wiki links. For example, if you could detect unique or rare words/phrases you may be able to find texts that should be expanded on in a wiki.


CirrusShakeri: Suggestions: Use <notwiki> to prefix non-wiki but wiki-looking words. Use <linkit> to explicitly link to a wiki topic: Default linking to a topic is not a good idea, in my opinion.

Which is exactly why it's off by default in JSPWiki distribution :-). It was originally done so that people who need it (for example when switching from some other version of Wiki) would not have to do so many modifications. It's on here so that we could test it... But you're right, the "normal" way of linking by using [square brackets] is much better and confuses people less. Use square brackets - they're good for you. :-)

--JanneJalkanen


Is CamelCase working in 1.9.37-cvs ? I have: jspwiki.translatorReader.camelCaseLinks = true in my jspwiki.properties but cannot get CamelCase to function.

You can see at: http://cowgar.com/Wiki.jsp?page=SystemInfo that it's enabled, then visit: http://cowgar.com/Wiki.jsp?page=SandBox to see that it's not quite functioning. At the bottom I say WikiWiki ... That's a valid CamelCase right? The page even exists: http://cowgar.com/Wiki.jsp?page=WikiWiki... Any input would be greatly appriciated.

Oh, by the way, I think CamelCase is an essential Wiki feature. Their could be 1,000 people updating one site, how does each person know what is already defined and what should be []'d or not? This way if someone enter's OceanWave and it's defined, it'll show up. However, without CamelCase, if they enter OceanWave and it is defined, a link will not exist to it because this user did not know that it was one of the 300,000 Wiki pages that exist so they did not [] it.

--JeremyC

No, it was not working in 1.9.37. This was documented in the ChangeLog, which really is the best place to look for change information of the CVS version.

However, thanks to JeffPhillips, we got it up and running in 1.9.39 :-).

--JanneJalkanen

Latest (1.9.42) builds have a problem with CamelCase, when CamelCase is used in a table, heading or lists, it is not working. In previous builds worked fine. -- SeshJalagam

You mean 1.9.41 worked? That is odd - there was no change to the CamelCase routine in 1.9.41... Which was the latest version you tried?

--JanneJalkanen

The build I used before 1.9.42 was 1.9.39 I think. -- SeshJalagam

Please try the current build. All known problems with CamelCase has been fixed in 1.9.48. It wasn't exactly easy to fix, though... But I figured out the answer finally after three beers and a sauna, the real secret of all Finnish coders... :-)

-- JanneJalkanen, 07-Dec-2002.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-51) was last changed on 19-Nov-2010 04:31 by 124.126.136.22