Valters Vingolds created DOXIA-467:
--------------------------------------

             Summary: Confluence: Inconsistent handling of '\' escape 
characters, incorrect handling of \\ inside {{monospace}} blocks.
                 Key: DOXIA-467
                 URL: https://jira.codehaus.org/browse/DOXIA-467
             Project: Maven Doxia
          Issue Type: Bug
          Components: Module - Confluence
    Affects Versions: 1.3
            Reporter: Valters Vingolds
         Attachments: monospace-escapes.patch

I noticed that our generated pages are mostly nonsense where we have 
\\unc\path\strings and also some general DOS-style paths (c:\dos\run). The 
issue is that \ are "eaten" because they are treated as escape characters and 
get suppressed from output. This is incorrect, per Confluence rules, they 
should appear almost always, and only function as escapes when directly 
preceding _ and * characters with special meaning (note, in Confluence they 
also have + and - and ^ and ~ with special meaning, it would be used to escape 
them too, but we don't have that yet).

The other issue is with \\, confluence actually does not support line breaks 
within the line (it seems to me), and only forces linebreak if \\ appears at 
the end of line. This makes sense, because otherwise writing \\unc\path is 
impossible (as you can't quite escape the '\\' with another '\'). I haven't yet 
looked how feasible it is to make \\ only work as line break if it appears at 
the end of line, but my requirement was simpler: to make \\ work inside 
{{monospace}} blocks, i.e., make it appear verbatim, and not produce linebreak. 
So that {{\\unc\path}} can be written and appear so.

I want to also propose to make handling of italic less zealous, as we happen to 
have a lot of code variables that use underscore (variables_like_this), and 
currently the underscores get eaten, and (like) part gets italicized. (Escaping 
all underscores is not practical.)
I wish to propose that italic modifier _ should only work if preceded by 
whitespace or * (+ some other edge cases). So _this_ should get italicized but 
something_like_this would not.

(You can actually see the above work right here in this comment, as JIRA parses 
this text according to Confluence rules. We should strive to replicate this 
behaviour, as I see one use-case of this module is to transfer wiki pages 
created in Confluence into source tree as documentation. That does not work if 
our implementation does not faithfully render markup as Confluence wiki would).

I am attaching a proposed patch.
(Sorry this patch also includes lines for DOXIA-466, I don't know how to remove 
them. So if you already applied that patch, you will get some rejected hunks).

Another part is that * and _ are always produced verbatim in monospace blocks.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to