(is this topic classification correct?)
I like the idea of wiki words very much, but the decision to use ThisWayToWriteThemIsInMyOpinionVeryDefective. I prefer to use underscores to identify a word or sentence as a wiki word because:
- Using underscores preserves the case of words.
- As a result, it's possible to render a wiki word stated in underscore syntax LikeThis, but not vice versa. So if somebodies taste differs from mine, at least there is a way around. F.g. MartinCleaver's approach to render wiki words separated by spaces is good, but still the result is somewhat ugly, as all words are capitalized.
- Underscores could be left out when rendering a wiki word, so that it looks as (IMHO) it should.
- The underscore approach handles abbrevations properly
- A lot of computer related terms use wiki word syntax but are not supposed to be recognized as such most of the times.
- (take from somewhere else) Some languages do not have case, so there it's difficult to create a wiki word. (Eg Chiq_chaq
mentions Hebrew, Arabic, Kanji. -- EdAvis)
- Having preseved case, it now makes sense to ignore case when creating or *go*-ing a topic, since case now doesn't serve as a word delimitter.
My proposed definition of a WikiWord
- A wiki_word consists of at least two words separated by underscores (_)
- A word is made of digits and letters. A TWiki installation may extend this definition to include local characters.
- If a non-wiki_word is forcably used as topic name via [[...]], this name becomes by definition a new wiki_word.
Allowing digits in numbers seems less problematic here then with the original syntax. A topic name like 100_ways_to_do_it_in_perl is just fine for me (at least).
Expanding the definition to include strings which are not by itself wiki names is IMHO the proper way to handle them, but that's not really important to me, just added it for the sake of completeness.
Handling the definition of what is a letter to a local installation seems appropriate to me, since unicode is large, and I'm not able to define a sensitive subset as "letters". For European languages it's not so much of a problem and if "my" server is supposed to be used f.g. in a german/english environment, its really easy to define the set of letters excatly.
Some pros and cons (just add yours, please):
Pro
- No loss of information
- No side effects like "Windows FS is not case sensitive"
- If wiki words get rendered spaced, there is generally no need to force topic names, which is now a quite common practice by users who don't like nonspaced display
Contra
- Users who got used to it won't like to change
- more?
--
MichaelUtech - 18 Nov 2001, 23 Nov 2001
Nice summary Michael.
Underscores aside for the moment, consider also
BumpyWordsForDocumentWriting.
--
MartinCleaver - 19 Nov 2001
I hacked TWiki.pm to recognize my proposed syntax. This seems to be working
Take a look at
http://schnoffos.utech.de/twiki/bin/view/Main/new_wiki_word_syntax
if you're interested to see how it looks like.
As far as I can tell, this seems to be working fine, but I don't know TWiki well enough to be sure. I'ld be glad, if someone would point out any possible problems regarding this hack.
Is there a chance that this will find it's way to the standard distribution, once it's proven to work?
Implementation notes
- As off now, the "old" syntax is still working
- I didn't find a good place to make topic names using the new scheme case (only them) case insensitive. I could do with some help there, please
--
MichaelUtech - 21 Nov 2001, 23 Nov 2001
I guess you need to store them in a predictable case and then munge the user's input to force it to match. Hence, you could go for initial cap plus cap after every underscore.
In terms of a place I guess this would be in the "go" box and wherever the topic name is taken. I believe that this is not centrally handled and that this is a change that must be necessary for other reasons. (e.g. if you type view?topic=Web.Topic it fails yet you can type that in the Go box).
Good luck in implementing it. I would support a vote to have it a standard optional feature.
--
MartinCleaver - 23 Nov 2001
Normalizing case would destroy the benefit of this approach, since preserving case was what I actually wanted.
So far I'm quite satisfied. I tried all feature I use and have not yet encountered any problems. It's even working smoothly together with the old scheme.
--
MichaelUtech - 24 Nov 2001
For langauges without upper and lower case, and perhaps for languages where losing the correct capitalization is just too confusing, it's clear that underscores would be used. But for existing English-language Wikis, as you say, existing users would not want to change. Many prefer the mixed-case style. Perhaps the choice of which style to display could be up to the user: SomeWord and some_word would be equivalent.
Personally, I'm
with Rob Pike
on this one: 'I eschew embedded capital letters in names; to my prose-oriented eyes, they are too awkward to read comfortably. They jangle like bad typography.'. The MixedCaps style comes from Smalltalk - developed on a machine with no underscore character! But the style is strongly embedded in Wiki culture so probably should remain the default setting, at least in English.
--
EdAvis - 12 Oct 2003