On Dec 24, 2009, at 10:47 AM, Flavius Olaru wrote:

> What about the \ character? Shouldn't be escaped also?

Yes I forgot that rule. You can have \ in any reference name by  
escaping it too: \\

Thanks
-Vincent

>
> On Thu, Dec 24, 2009 at 11:43 AM, Vincent Massol  
> <[email protected]> wrote:
>
>> To be even more precise, with the algorithm I currently have the
>> following rules apply:
>>
>> * An attachment name cannot contain a "@" (it has to be escaped)
>> * A page name cannot contain a "." (it has to be escaped)
>> * A space name cannot contain a ":" (it has to be escaped)
>>
>> The general rule is that a given entity reference name cannot contain
>> the separator for separating from its parent entity reference (it has
>> to be escaped).
>>
>> These are pretty simple rules IMO (and this is one reason why you
>> cannot "skip" an entity reference separator as in "wiki:page").
>>
>> Thanks
>> -Vincent
>>
>> On Dec 23, 2009, at 3:42 PM, Vincent Massol wrote:
>>
>>> Hi,
>>>
>>> Since I'm writing the new Model part for Entity References (document
>>> and attachment for now but we can imagine objects and object
>>> properties later on). I'd like to propose 2 things:
>>>
>>> * A syntax for escaping special characters in references
>>> * Some changes to the supported reference syntax
>>>
>>> Escapes
>>> =======
>>>
>>> I'd like to propose using the backslash (i.e. \ ) character.
>>> For example: "a page name with \: some \. special \@ characters"
>>>
>>> Rationale:
>>> * it's a well known char for escapes, all devs know about it
>>> * using "~" would be confusing with the wiki syntax
>>>
>>> Known issue:
>>> * when in the velocity macro you need to be careful to use a double
>>> escape since \ is the velocity char for escaping. Ex:
>>>
>>> {{velocity}}
>>> [[label>>specia...@page-name]]
>>> {{/velocity}}
>>>
>>> Breakages
>>> =========
>>>
>>> Since we'll know have a generic factory/serializer for all entity
>>> types we need to make the syntax more consistent. This means that
>>> the following syntax will not work anymore:
>>>
>>> * ex: "wiki:page". This would be interpreted as a document with a
>>> page of "page" and a space of "wiki:"
>>> * When using the "default" factory, only default values would be
>>> used (right now it's a mix between current doc values and default
>>> values). Suggested defaults: "xwiki" for Wiki, "XWiki" for space,
>>> "WebHome" for page and "" for attachment name. Note that one idea is
>>> to make these defaults configurable in the xwiki config file
>>> * It's hard to know for sure but we certainly have various other
>>> inconsistencies that exist now when using special reserved chars in
>>> references
>>>
>>> We have 2 options here:
>>> * Make XE 2.2 not backward compatible for some references. Advertise
>>> it in the release notes and explain to users how they should change
>>> their names if they use "exotic" names
>>> * Create an automatic converter, for example as a database migrator
>>> that would read all documents in the wiki, call getLinks() on each
>>> document, send the links to the old parser (would need to extract it
>>> somewhere and ensure it behaves as now) and send the link to the new
>>> parser and compare. If there's a difference, escape the char and
>>> save. This would also need to be done for document parent
>>> references, the backlink table and all object properties that allow
>>> wiki syntax or velocity. Note that it wouldn't fix any generated
>>> name (using velocity for ex).
>>>
>>> The automatic converter option is really hard to do so I'm leaning
>>> more towards the first solution. That would need to be properly
>>> handled since it could potentially cause quite a few broken links.
>>>
>>> WDYT?
>>>
>>> Thanks
>>> -Vincent
>>>
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
> -- 
> Cu stima,
> Flavius Olaru
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to