-1 for (1) +1 for (3) 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 >> >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

