Hi Denis,
On Oct 6, 2011, at 3:22 PM, Denis Gervalle wrote:
On Thu, Oct 6, 2011 at 14:58, Vincent Massol
<vincent(a)massol.net> 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
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.
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!).
Thanks
-Vincent
> WDYT?
>
> Here's my +1
>
> Thanks
> -Vincent