> On 12 Apr 2016, at 16:09, Thomas Mortagne <[email protected]> wrote:
> 
> -1 for (1)
> +1 for (3)

Could you explain why you prefer (3) to (2)?

Thanks
-Vincent

> 
> On Tue, Apr 12, 2016 at 3:43 PM, Marius Dumitru Florea
> <[email protected]> wrote:
>> On Tue, Apr 12, 2016 at 4:30 PM, Vincent Massol <[email protected]> wrote:
>> 
>>> Hi Marius,
>>> 
>>>> On 12 Apr 2016, at 14:56, Marius Dumitru Florea <
>>> [email protected]> wrote:
>>>> 
>>>> Hi devs,
>>>> 
>>>> We need to decide what is the expected link reference serialization
>>>> produced by the WYSIWYG editor when you create a link to a wiki page. I
>>>> think we have to choose between 3 options:
>>>> 
>>>> (1) Output untyped (ambiguous) link references whenever possible
>>>> (2) Always output unambiguous (typed) link references (both 'doc:' and
>>>> 'space:')
>>>> (3) Always output 'doc:' link references (no 'space:' references)
>>>> 
>>>> Let's see the details:
>>>> 
>>>> = OPTION 1: Output untyped link references whenever possible =
>>>> 
>>>> == <7.2 ==
>>>> 
>>>> Link from A.B
>>>> * to A.WebHome (space home page) => [[WebHome]]
>>>> * to A.C (same space) => [[C]]
>>> 
>>> I don’t understand why you’re using relative links in your 2 examples
>>> above. Option (1) says untyped, it doesn’t say convert links into relative
>>> links.
>>> 
>>> So for me that would be:
>>> 
>>> * to A.WebHome (space home page) => [[A.WebHome]]
>>> * to A.C (same space) => [[A.C]]
>>> 
>>>> * to X.Y (different space) => [[X.Y]]
>>>> * to X.WebHome => [[X.WebHome]]
>>>> 
>>>> == 7.2+ ==
>>>> 
>>>> Link from A.B.WebHome
>>>> * to A.WebHome (its parent) => [[space:A]]
>>> 
>>> Note 1: We could also imagine introducing a syntax for absolute links such
>>> as [[:A]]
>>> Note 2: We could also imagine introducing a syntax for parent links such
>>> as [[..A]]
>>> 
>>>> * to A.B.C or A.B.C.WebHome or A.C or A.C.WebHome (child or sibling) =>
>>>> [[C]] (very ambiguous)
>>> 
>>> This is using a relative notation. But (1) is not about transforming links
>>> into relative links.
>>> 
>>> so for me this is:
>>> * => [[A.B.C]]
>>> * => [[A.C]]
>>> 
>>> I’m stopping reading here since first we need to clarify if (1) is about
>>> a) untyped or b) using relative references.
>>> 
>>> IMO it should be about a) and doesn’t have to do b).
>>> 
>>> 
>> 
>>> Maybe I misunderstood something?
>>> 
>> 
>> Generating relative references is a must for me (whenever possible), no
>> matter what output format we choose. I'm surprised there's any doubt about
>> this. The current WYSIWYG editor is generating relative references and the
>> CKEditor should continue to do this. Relative references have many
>> advantages (eases the refactoring, allows you to export a hierarchy and
>> import it somewhere else, etc.).
>> 
>> So option (1) is about untyped relative links, option (2) is about typed
>> relative links and option (3) is about doc: relative links. In other words:
>> (1) don't generate "doc:" and "space:"
>> (2) generate both "doc:" and "space:"
>> (3) generate only "doc:" (don't hide WebHome)
>> 
>> Thanks,
>> Marius
>> 
>> 
>>> 
>>> Thanks
>>> -Vincent
>>> 
>>>> * to A.B.C.D or A.B.C.D.WebHome (nested page two levels or more below) =>
>>>> [[.C.D]] (ambiguous)
>>>> * to A.C.D or A.C.D.WebHome (nested page under sibling) => [[A.C.D]]
>>>> (ambiguous)
>>>> * to X.Y.Z or X.Y.Z.WebHome => [[X.Y.Z]] (ambiguous)
>>>> 
>>>> Link from A.B (terminal)
>>>> * to A.WebHome (its parent) => [[space:A]]
>>>> * to A.C or A.C.WebHome (sibling) => [[C]] (ambiguous)
>>>> * to A.C.D or A.C.D.WebHome (nested page under sibling) => [[A.C.D]]
>>>> (ambiguous)
>>>> * to X.Y or X.Y.WebHome => [[X.Y]] (ambiguous)
>>>> 
>>>> Link from A.B.C (terminal) or A.B.C.WebHome
>>>> * to A.B.WebHome (its parent) => [[A.B]] (ambiguous)
>>>> 
>>>> PROS:
>>>> * shorter link references
>>>> * hides WebHome from source syntax on 7.2+
>>>> 
>>>> CONS:
>>>> * ambiguous link references
>>>> * complex code
>>>> * different output for <7.2 and 7.2+ in case of top level space
>>> [[WebHome]]
>>>> or [[A.WebHome]] vs. [[space:A]] (we need to check if support for nested
>>>> spaces is available)
>>>> 
>>>> 
>>>> = OPTION 2: Always output unambiguous link references =
>>>> 
>>>> == <7.2 ==
>>>> 
>>>> Link from A.B
>>>> * to A.WebHome (space home page) => [[doc:WebHome]] (relative)
>>>> * to A.C (same space) => [[doc:C]] (relative)
>>>> * to X.Y (different space) => [[doc:X.Y]]
>>>> * to X.WebHome => [[doc:X.WebHome]]
>>>> 
>>>> == 7.2+ ==
>>>> 
>>>> Link from A.B.WebHome
>>>> * to A.WebHome (its parent) => [[space:A]]
>>>> * to A.B.C (terminal child) => [[doc:C]] (relative)
>>>> * to A.B.C.WebHome (non-terminal child) => [[space:A.B.C]] (absolute)
>>>> * to A.C (terminal sibling) => [[doc:A.C]]
>>>> * to A.C.WebHome (non-terminal sibling) => [[space:A.C]]
>>>> * to A.B.C.D (terminal descendant) => [[doc:.C.D]] (relative)
>>>> * to A.B.C.D.WebHome (non-terminal descendant) => [[space:A.B.C.D]]
>>>> (absolute)
>>>> * to A.C.D (terminal descendant of sibling) => [[doc:A.C.D]]
>>>> * to A.C.D.WebHome (non-terminal descendant of sibling) =>
>>> [[space:A.C.D]]
>>>> * to X.Y.Z => [[doc:X.Y.Z]]
>>>> * to X.Y.Z.WebHome => [[space:X.Y.Z]]
>>>> 
>>>> Link from A.B (terminal)
>>>> * to A.WebHome (its parent) => [[space:A]]
>>>> * to A.C (terminal sibling) => [[doc:C]] (relative)
>>>> * to A.C.WebHome (non-terminal sibling) => [[space:A.C]] (absolute)
>>>> * to A.C.D (terminal descendant of sibling) => [[doc:.C.D]] (relative)
>>>> * to A.C.D.WebHome (non-terminal descendant of sibling) =>
>>> [[space:A.C.D]]
>>>> * to X.Y => [[doc:X.Y]]
>>>> * to X.Y.WebHome => [[space:X.Y]]
>>>> 
>>>> Link from A.B.C (terminal) or A.B.C.WebHome
>>>> * to A.B.WebHome (its parent) => [[space:A.B]] (absolute)
>>>> 
>>>> PROS:
>>>> * unambiguous link references ("what you link is what you get")
>>>> * slightly less complex code (but still complex)
>>>> * hides WebHome from source syntax on 7.2+
>>>> 
>>>> CONS:
>>>> * longer link references (because of "doc:" and "space:" prefixes)
>>>> * cannot specify relative 'space:' references
>>>> * different output for <7.2 and 7.2+ in case of [[doc:WebHome]] vs.
>>>> [[space:A]]
>>>> 
>>>> 
>>>> = OPTION 3: Always output 'doc:' references =
>>>> 
>>>> == <7.2 ==
>>>> 
>>>> Link from A.B
>>>> * to A.WebHome (space home page) => [[doc:WebHome]] (relative)
>>>> * to A.C (same space) => [[doc:C]] (relative)
>>>> * to X.Y (different space) => [[doc:X.Y]]
>>>> * to X.WebHome => [[doc:X.WebHome]]
>>>> 
>>>> == 7.2+ ==
>>>> 
>>>> Link from A.B.WebHome
>>>> * to A.WebHome (its parent) => [[doc:A.WebHome]]
>>>> * to A.B.C (terminal child) => [[doc:C]] (relative)
>>>> * to A.B.C.WebHome (non-terminal child) => [[doc:.C.WebHome]] (relative)
>>>> * to A.C (terminal sibling) => [[doc:A.C]]
>>>> * to A.C.WebHome (non-terminal sibling) => [[doc:A.C.WebHome]]
>>>> * to A.B.C.D (terminal descendant) => [[doc:.C.D]] (relative)
>>>> * to A.B.C.D.WebHome (non-terminal descendant) => [[doc:.C.D.WebHome]]
>>>> (relative)
>>>> * to A.C.D (terminal descendant of sibling) => [[doc:A.C.D]]
>>>> * to A.C.D.WebHome (non-terminal descendant of sibling) =>
>>>> [[doc:A.C.D.WebHome]]
>>>> * to X.Y.Z => [[doc:X.Y.Z]]
>>>> * to X.Y.Z.WebHome => [[doc:X.Y.Z.WebHome]]
>>>> 
>>>> Link from A.B (terminal)
>>>> * to A.WebHome (its parent) => [[doc:WebHome]] (relative)
>>>> * to A.C (terminal sibling) => [[doc:C]] (relative)
>>>> * to A.C.WebHome (non-terminal sibling) => [[doc:.C.WebHome]] (relative)
>>>> * to A.C.D (terminal descendant of sibling) => [[doc:.C.D]] (relative)
>>>> * to A.C.D.WebHome (non-terminal descendant of sibling) =>
>>>> [[doc:.C.D.WebHome]] (relative)
>>>> * to X.Y => [[doc:X.Y]]
>>>> * to X.Y.WebHome => [[doc:X.Y.WebHome]]
>>>> 
>>>> Link from A.B.C (terminal)
>>>> * to A.B.WebHome (its parent) => [[doc:WebHome]] (relative)
>>>> 
>>>> Link from A.B.C.WebHome
>>>> * to A.B.WebHome (its parent) => [[doc:A.B.WebHome]] (absolute)
>>>> 
>>>> PROS:
>>>> * unambiguous link references ("what you link is what you get")
>>>> * relative references for nested non-terminal descendants
>>>> * same output for <7.2 and 7.2+
>>>> * simpler code (easier to maintain)
>>>> 
>>>> CONS:
>>>> * doesn't hide WebHome from source syntax
>>>> * longer link references (because of "doc:" prefix and "WebHome" suffix)
>>>> 
>>>> 
>>>> I don't like ambiguous links so I'm against option (1). I don't think the
>>>> WYSIWYG editor users care too much about the wiki syntax (option 2), as I
>>>> commented on http://jira.xwiki.org/browse/XWIKI-13083, so I'm +1 for
>>> option
>>>> (3).
>>>> 
>>>> WDYT?
>>>> 
>>>> Thanks,
>>>> Marius
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to