Marius Dumitru Florea wrote:
Hi Vincent,
First of all I don't know why do we need to wrap the anchor in a span
and not put the "wikilink" class directly on the anchor. I see there are
no CSS rules attached to it so I guess is has a semantic purpose.
Furthermore, what do you think about using custom attributes on the
anchor, like xwiki:doc="Main.WebHome"?
Does the editor support namespaces? I thought it didn't... Also, does
wikimodel/doxia support them? If they do, then this is the way to go.
Anyway, I'll be able to detect/inset if it's
either span or comment or
custom attributes. One note though: in the case of span or comment I'll
have to take care when I'm inserting other DOM nodes so the link DOM
fragment is taken as a unit. For instance, I shouldn't inset strong or
em between the span and the anchor.
Vincent Massol wrote:
> Hi,
>
> Since recognizing links to be xwiki links is hard (not even always
> possible) we need to add some extra information when we render wiki
> syntax content into XHTML (for the WYSIWYG editor for ex) so that we
> can convert it back to wiki syntax.
>
> We have 2 solutions I can think of:
>
> 1) Using a span with a class value:
>
> <span class="wikilinkplaceholder wikilink"><!
> [CDATA[Space.ExistingPage]]><a href="/xwiki/bin/view/Space/
> ExistingPage">Space.ExistingPage</a></span>
>
> 2) Using a comment:
>
> <!-- startwikilink:Space.Existing --><span
class="wikilink"><a href="/
>
xwiki/bin/view/Space/ExistingPage">Space.ExistingPage</a></span><!--
> stopwikilink -->
>
> Pros and cons:
>
> * 2) allows not generating visible content in XHTML so that if someone
> copy/paste our generated XHTML he won't have to add some CSS rule to
> prevent it from being visible. BTW I'm not even sure we can find a CSS
> rule to do that in solution 1) so we might need to have 2 spans as in:
> <span
class="startwikilink"><![CDATA[Space.ExistingPage]]></span><span
> class="wikilinkplaceholder wikilink"><a
href="/xwiki/bin/view/Space/
> ExistingPage">Space.ExistingPage</a></span><span
class="stopwikilink"/>
>
> * 1) is harder to code since it requires using a SAX2 LexicalHandler,
> which btw is not supported by all XML parsers:
> "This is an optional extension handler for SAX2 to provide lexical
> information about an XML document, such as comments and CDATA section
> boundaries. XML readers are not required to recognize this handler,
> and it is not part of core-only SAX2 distributions."
> It also requires that I make some modifications to wikimodel since
> wikimodel currently ignores comments.
>
>
> Solution 2) seems slightly better to me but as it's quite more complex
> to implement I'd like to be sure that it's the best solution.
>
> WDYT?
>
> Thanks
> -Vincent
>
--
Sergiu Dumitriu
http://purl.org/net/sergiu/