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).

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! ;)).

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.
* 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.

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).

WDYT?

Here's my +1

Thanks
-Vincent

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

Reply via email to