On Thu, Oct 6, 2011 at 15:38, Vincent Massol <[email protected]> wrote:

> Hi Denis,
>
> On Oct 6, 2011, at 3:22 PM, Denis Gervalle wrote:
>
> > On Thu, Oct 6, 2011 at 14:58, Vincent Massol <[email protected]> wrote:
> >
> >> Hi devs,
> >>
> >> As you know in XE 3.0 we've changed the behavior for resolving local
> >> links/attachments when they're included using the {{include}} macro
> (they're
> >> now resolved against the included document instead of the including
> >> document).
> >>
> >
> > I do not remember this change. Does not this depends on the context=new ?
>
> No. Context = new is only about isolating the execution context. It's not
> about deciding against what to resolve the links/attachments


> > If you have a link to the previous discussion, it could help.
>
> Related Issues are:
> http://jira.xwiki.org/jira/browse/XWIKI-5902
> http://jira.xwiki.org/jira/browse/XWIKI-5807
> http://jira.xwiki.org/jira/browse/XWIKI-5808
> http://jira.xwiki.org/jira/browse/XWIKI-4802
> http://jira.xwiki.org/jira/browse/XWIKI-6196
> http://jira.xwiki.org/jira/browse/XWIKI-6874
>
>
I do not see discussion about how relative links has to be resolved their.
I do not feel confortable with the facts that based on context=new,
$doc.getURL() obviously change its behavior, and that the equivalent XWiki
syntax could follow a different path based on resolved=current|source.
This seems to me introducing additional complexity, and therefore potential
confusion.


> >> Now there might be some use cases (pretty rare IMO but they exist) where
> >> you'd want the links to be resolved against the including document.
> Here's a
> >> use case: you have a sheet document that references an image called
> >> image.png and you want that the including document provides it (like an
> >> Abstract in Java! ;)).
> >>
> >
> > This is not rare, but this could be solved using velocity anyway.
> >
> >
> >> So we've brainstormed with Thomas and here's our proposal:
> >>
> >> * Introduce a new {{display reference="…"/}} macro. This macro will
> >> *execute* the passed reference in its own context (it'll do what
> {{include
> >> context="new"…}} was doing before). It'll be located in the new display
> >> module.
> >>
> >
> > Does not this new macro exists already in 1.x syntax under name '#Topic'
> ?
> > Was it a mistake to have not kept this one in 2.x ?
>
> Probably.
>
> >> * Deprecate the "context" parameter of the {{include}} macro. The reason
> is
> >> that calling with context=new is not an include, it's a display.
> >> * Add a new "resolve" parameter for the {{include}} macro with possible
> >> values = "current" | "source", with a default value of "source".
> >> resolve=source means that the links/attachments are resolved against the
> >> source (ie the document being included). Using resolve=current means
> that
> >> you want the links/attachments resolved against the including document.
> >>
> >
> > Since I have really thought it was depending on the context parameter,
> why
> > use a new parameter for this ?
>
> See above. They're 2 separate things.
>

Why separating them so much ? What are the use cases ?
{{display}} replacing context=new sounds good to me since it clarify a
parameter that many do not understand.
But, the resolve parameter seems to me putting back confusion.

{{display}} implies resolve=source
why {{include}} does not implies resolve=current ?

If you consider all use cases, there will be situation when you want to
access both source and current attachment, no ?
So the global resolve parameter seems inappropriate IMO, and having the
default above could be simpler.
If you really want a specific resolution, it should be on a link by link
basis.


>
> >> Pros:
> >> * Clearly separate the 2 use cases: display and include
> >> * Make the include macro simple (a single "resolve" parameter)
> >> * Use the new display module as it should be and start the direction of
> >> having displayer macros for displaying all types of entities
> >>
> >> Note: In the future we'll also want to deprecate the "document"
> parameter
> >> of the include macro in favor of a more generic "reference" parameter,
> which
> >> will allow the macro to include other types of entities (such as an
> object
> >> property for ex).
> >>
> >
> > Is this reference parameter already support
>
> No. right now there's only a document parameter supported.
>
> > , and is this only the
> > deprecation for future ? Why not deprecate right now ?
>
> We would need to agree about it first and it's not the subject of this mail
> ;) (let's go step by step!).
>

Not that I want to mix stuffs, but since {{display}} will replace {{include
context=new}}, having the first with a reference parameter only and the
second with a document parameter only, is somewhat inconsistant.
We should consider either supporting document in {{display}} or reference in
{{include}} IMO.


>
> Thanks
> -Vincent
>
> >> WDYT?
> >>
> >> Here's my +1
> >>
> >> Thanks
> >> -Vincent
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Denis Gervalle
SOFTEC sa - CEO
eGuilde sarl - CTO
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to