On Fri, Oct 7, 2011 at 12:13 PM, Vincent Massol <vincent(a)massol.net> wrote:
Hi guys,
Ok here's second version taking into account Denis and Marius comments:
* Have a {{display}} macro which is equivalent to context=new and resolve=source (ie
links resolved on the reference being displayed)
* Have a compatibility mode for the {{include}} macro with the following behavior:
** {{include}} in non-compatiiblity mode is equivalent to context=current and
resolve=current (ie links resolve on the including document)
** {{include}} in compatiiblity mode is equivalent to context=current and resolve=source
(the default we have now and which we need to not break people)
* We would have a rendering.macro.include.compatibility configuration property
* We would set that property to true by default for 3.3 to give some time for people to
adjust
* We would set that property to false by default for 3.4
So you propose to get back to previous behavior by default, right ?
Given the fact that it has been changed very recently maybe we should
have the property false right away and say it was a mistake ?
* Deprecate "document" parameter for the
include macro and add a new "reference" parameter + a new "type"
parameter (I forgot that one in my first email). The "type" parameter represents
the Entity Reference Type.
* Also add a "type" parameter for the display macro (I forgot that one in my
first email)
* Have the "type" parameter default to "document".
Some additional notes:
* The person writing a page is not necessarily the same as the person writing an
include.
* With the new sheet mechanism there are a lot less use cases for the include in
compatibility mode.
Please vote again.
Here's my +1
+1 (with the previous note)
Thanks
-Vincent
On Oct 6, 2011, at 2:58 PM, Vincent Massol 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).
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
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Thomas Mortagne