On Oct 27, 2008, at 2:01 PM, Vincent Massol wrote:

>
> On Oct 27, 2008, at 12:44 PM, Anca Paula Luca wrote:
>
>> Vincent Massol wrote:
>>> Hi,
>>>
>>> There are 2 features I need to finish implementing for the new
>>> rendering and I have some doubts.
>>>
>>> 1) Parameters for links
>>>
>>> Problem
>>> =======
>>>
>>> We decided to use the (% param=value %)[[link]] notation. However
>>> this
>>> is raising some issues.
>>>
>>> First the user needs to close the parameter list so that it doesn't
>>> affect other elements coming after.
>>>
>>> For example:
>>>
>>> (% rel="_blank" %)[[link]](%%) hello
>>>
>>> is different from:
>>>
>>> (% rel="_blank" %)[[link]] hello
>>>
>>> In the second case the rel="_blank" applied to both the link, the
>>> space and the word "hello".
>>>
>>> However if we consider the params to only apply the link then we
>>> cannot set params anymore that span more than the link.
>>>
>>> For example: (% style="color:red" %)[[link]] and some text(%%)
>>>
>>> Note that technically the params currently generate a <span> element
>>> with the params as attributes. Thus right now using rel="_blank" is
>>> set on the span and not on the <a> element which means it doesn't
>>> work.
>>>
>>> Solutions
>>> =======
>>>
>>> a) Add again the notion of parameters inside the link syntax:
>>> [[label>>reference>>>param=value...]] (or using some other  
>>> separator)
>>> b) Use a different syntax for link parameters, for ex: {%  
>>> param=value
>>> %}[[link]] (but I really don't like it)
>>> c) Force the params in the (% %)[[link]] notation to always apply
>>> only
>>> to the link and thus force users to use a space if they want to  
>>> start
>>> a styled portion of text beginning with a link:
>>> (% param=value %) [[link]] something else %)
>>>
>>> As much as I hate having to recode what I've removed, I think the
>>> best
>>> solution is a).
>>>
>>> 2) Syntax for images
>>>
>>> Problem
>>> =======
>>>
>>> We had decided to use the following syntax:
>>> image:wiki:Space.Page^my.png (note: not sure we agreed about the use
>>> of ^ but that's a detail - I couldn't find the email where we
>>> discussed that)
>>>
>>> The question is how do we set parameters for images. For example:
>>> alt,
>>> title, width, height, etc?
>>>
>>> We have the exact same problem as for links but it's even worse  
>>> since
>>> we don't have the ability to define the parameters inside the image
>>> syntax since the image syntax is too limited.
>>>
>>> Solutions
>>> =======
>>>
>>> a) Use a different syntax such as:
>>>
>>> !!label>>image>>>param=value...!!
>>>
>>> (note that there are several wikis using the !! notation for images,
>>> including confluence)
>>>
>>> Ex:
>>> !!my.png!!
>>> !!my image>>my.png!!
>>> !!wiki:Space.Page^my.png>>>width=100 height=200!!
>>>
>>> b) Decide not to have a syntax for images and instead use an image
>>> macro.
>>>
>>> Ex:
>>> {{image name="my.png" document="wiki:Space.Page" width="100"
>>> height="200"/}}
>>>
>>> Note that there's one problem with not having a syntax for images in
>>> the grammar: it makes it harder to convert from one syntax for
>>> another. For example people using wikimodel wouldn't be able to
>>> convert from xwiki to another syntax easily and viceversa. In XWiki
>>> itself we would need to have some extra handling code to handle the
>>> fact that the image is a macro to convert it to another syntax but
>>> that's possible (not the easiest but possible).
>>>
>>> WDYT for 1) and 2)?
>>>
>>> My choice:
>>>
>>> 1) a)
>>>
>>> For 2) I'd prefer to have a syntax for images (for the conversion
>>> between syntaxes issue and for the fact that the syntax wouldn't be
>>> complete - We've added tables in the syntax so it would be a pity  
>>> not
>>> to have a syntax for images IMO). There's only possibility though:
>>> that we add {{image...}} in the syntax, so it would generate an
>>> onImage() event in XWiki and we would just convert it internally to
>>> an
>>> image macro. Ideally I'd still prefer a clean syntax but that'd be  
>>> my
>>> second choice.
>>
>> Since there is no way currently to set an attribute for an inline
>> element (for
>> the <a> element itself and not a wrapping span), I'd go for adding  
>> the
>> parameters syntax, provided that we can do it for *all* inline
>> elements and
>> maybe also make it available, as an alternative, to block elements,
>> where this
>> method could be applied.
>
> I'm not sure I understand what you mean. Basically there are now 2
> possibilities:
>
> i) using a special syntax for parameters for links and images. For
> links that could be [[label>>reference>>>parameters]]. Note that we
> might also need such a special syntax for inline verbatim blocks.
> ii) using 2 generic syntaxes for parameters:
>
> (% ... %) for applying parameters only to the next element
> {% ... %} ... {%%} for applying parameters to the elements inside
>
> Which one do you prefer?
>
> I think we have an issue for i) anyway (for verbatim inline elements
> for example).
>
> My preference goes to i).

Sorry I mistyped. My preference goes to ii), not i) (although it's a  
close call but I prefer the homogeneity - my hesitation is that it's  
slightly more complex for users). Note that I haven't though yet on  
how to implement it so I might find some surprises there too ;)

Thanks
-Vincent

>> so
>> +1 for 1)a) only if we can do it for all inline elements.
>>
>> Which brings us to images:
>> I find a wiki syntax quite suitable, for consistency reasons (with
>> links, for
>> example). ! is a pretty used character, even duplicated, so I'd go
>> for another
>> one: pipe (hard to find on some kbds, though), @ (semantically
>> associated with
>> emails, though), # (already taken), & ?
>>
>> so
>> +1 for wiki syntax for 2)
>>
>> Happy coding,
>> Anca
>>
>>>
>>> Thanks
>>> -Vincent
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to