|
From: Sabri L. <sab...@st...> - 2007-10-01 11:35:12
|
Reini Urban wrote:
>Campo Weijerman schrieb:
>> On Fri, Sep 28, 2007 at 10:57:24AM +0200, Sabri LABBENE wrote:
>>> Hi all,
>>> I'm using phpwiki-1.3.12 and I'm trying to make it
>recognize CamelCase words with numbers inside as wikiwords, fo example:
>>> - CamelCase2 -> is a wikiword
>>> - Camel2Case -> is also a wiki word
>>> - 2CamelCase -> is also a wiki word
>>>
>>> I think there should be a regular expression somewhere in
>the code that decides if a word is a wikiword. Can someone
>teel where to find it ? If there will some side effects
>whenever numbers are considered into wikiwords ?
>>
>> Hi,
>>
>> We had a similar requirement and solved it back with phpwiki 1.3.3 by
>> changing the definition of $WikiNameRegexp in index.php
>>
>> With more recent releases there is WIKI_NAME_REGEXP in
>> config/config.ini
>>
>> It takes some tweaking to arrive at the right compromise between the
>> regex being too wide or too narrow. I think too wide is worse than
>> too narrow: you can always force linking to a page by putting the name
>> in [brackets], which is less painful than having to escape every other
>> word on a page...
I tried the regexp and it keeps catching CamelCase words without digits
inside. I don't understand why you need to escape some other words in your
page. May be you have as requirement to only link pagenames that contains
digits.
>> We have been using this for years now:
>>
>> WIKI_NAME_REGEXP =
>>
>"(?<![[:alnum:]])[[:upper:]][[:alnum:]]*?[[:lower:]][[:alnum:]]*?[[:up
>> per:]][[:alnum:]]*(?![[:alnum:]])";
>>
>> Btw, the default is
>>
>> WIKI_NAME_REGEXP =
>"(?<![[:alnum:]])(?:[[:upper:]][[:lower:]]+){2,}(?![[:alnum:]])"
>
>config-dist.ini in CVS has these options:
>http://phpwiki.cvs.sourceforge.net/phpwiki/phpwiki/config/confi
>g-dist.ini?revision=1.83&view=markup
>
>; Perl regexp for WikiNames ("bumpy words"):
>; (?<!..) & (?!...) used instead of '\b' because \b matches
>'_' as well
>; Allow digits: BumpyVersion132
>; WIKI_NAME_REGEXP =
>"(?<![[:alnum:]])(?:[[:upper:]][[:lower:][:digit:]]+){2,}(?![[:
>alnum:]])"
>; Allow lower+digits+dots: BumpyVersion1.3.2
>; WIKI_NAME_REGEXP =
>"(?<![[:alnum:]])(?:[[:upper:]][[:lower:][:digit:]\.]+){2,}(?![
>[:alnum:]])"
>; Default old behaviour, no digits as lowerchars.
>;WIKI_NAME_REGEXP =
>"(?<![[:alnum:]])(?:[[:upper:]][[:lower:]]+){2,}(?![[:alnum:]])"
Great, it works !
Thanks Reini and Campo.
Best Regards,
-- Sabri.
|