Hi devs,
Following this thread
http://markmail.org/thread/vw3derowozijqalr it seems clear that we
need to introduce a better syntax for links and images in XWiki Syntax 2.2 (in order to
cope with use cases such as
http://jira.xwiki.org/jira/browse/XRENDERING-290).
The need is to be able to plug new reference type handlers without breaking backward
compatibility in XWiki Syntax 2.2 (since right now with XWiki Syntax 2.0 and 2.1 adding a
new type reference handler would break backward compatibility).
So here are various proposals to that effect for XWiki Syntax 2.2 (I've only kept the
interesting proposals from the previous thread). Please vote for the one you prefer or add
new solutions if you have other better ideas.
Proposal 1
=========
Force XWiki Syntax 2.2 to *ALWAYS* use the full form when creating a link or image, i.e.
all links would need to be written: [[label>>type:reference]]
Examples:
* [[label>>doc:space.page]]
* [[label>>doc:wiki:space.page]]
* [[label>>path:/some/path]]
* [[
label>>url:http://xwiki.org]]
* [[label>>user:evalica]]
* [[image:doc:wiki:space.page@image.png]]
* [[image:icon:someicon.png]]
CONS:
* Harder to write links to documents which is the main use case
Proposal 2
=========
Same as with XWiki Syntax 2.1 but for links or images to subwikis force the user to use
the "doc:" notation
Examples:
* [[label>>space.page]] or [[label>>doc:space.page]]
* [[label>>doc:wiki:space.page]]
* [[label>>>path:/some/path]]
* [[
label>>http://xwiki.org]] or [[
label>>>url:http://xwiki.org]]
* [[label>>user:evalica]]
* [[image:doc:wiki:space.page@image.png]]
* [[image:icon:someicon.png]]
PRO:
* Still easy to reference docs and images in the current wiki
* Close to current XWiki Syntax 2.1
CONS:
* Harder to write links to documents in subwikis (for workspaces users for example, see
example of
xwiki.org)
Proposal 3
=========
Always define the type as a link or image parameter, i.e. separate subwiki notation from
type.
Examples:
* [[label>>space.page]] or [[label>>space.page||type="doc"]]
* [[label>>wiki:space.page]] or
[[label>>wiki:space.page||type="doc"]]
* [[label>>>/some/path||type="path"]]
* [[
label>>http://xwiki.org]] or
[[label>>>http://xwiki.org||type="url"]]
* [[label>>evalica||type="user"]]
* [[image:wiki:space.page@image.png]] or
[[image:wiki:space.page@image.png||type="doc"]]
* [[image:someicon.png||type="icon"]]
PRO:
* Still easy to reference docs
* Clear separation between subwiki and types
CONS:
* Harder to write typed links
* Harder to write references in non xwiki/2.x syntax that would not support link
parameters
Thanks
-Vincent