Defect #4472

Escape <code> tag

Added by Mikhail Yakshin over 7 years ago. Updated 4 months ago.

Status:NewStart date:2009-12-22
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Text formatting
Target version:Candidate for next minor release
Resolution: Affected version:

Description

When using Textile-like wiki syntax, pre tag with code renders incorrectly. The simplest way to reproduce it is below:

42

It yields the same output as from:

42

What's more interesting, using @ syntax with code inside makes renderer go absolutely crazy:

It outputs mysterious line:


Related issues

Duplicated by Redmine - Defect #7375: <pre> ... </pre> doesn't escape wiki syntax correctly Closed 2011-01-19

History

#1 Updated by Etienne Massip over 6 years ago

  • Target version set to Candidate for next minor release

#2 Updated by Ivan Cenov over 5 years ago

before pre section

111111111111
code code bold bold italic italic underline underline deleted deleted
222222222222
after pre section

#3 Updated by Jonas De Meulenaere over 1 year ago

This issue remains a problem. I'm using Redmine 2.4.3.stable.

I try to display an XML response in a ticket. I use display my xml message nicely, I use the code class="xml" tag for syntax highlighting and the pre tag to keep the indenting. To do so nicely, I need to put the code tag within the pre tag. If I put the pre tag within the code tag, the code is not highlighted. This works well.

However there is no way to escape the code tag if you want to. Maybe since code is not a Textile tag, there is no way to escape it (using e.g. notextile). With or without the code highlighting, If my message itself contains a code tag, I do not manage to display it correctly.

Example:

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <test>
            &lt;code&gt;3&lt;/code&gt;
        &lt;test&gt;
    &lt;/soapenv:Body&gt;
&lt;/soapenv:Envelope&gt;

The problem lies IMHO in the fact that in different libraries/plugins are used (CodeRay & RedCloth/Textile) and Redmine does some patching on it, see in the bottom of formatter.rb .

#4 Updated by Jonas De Meulenaere 4 months ago

  • Subject changed from <code> inside <pre> to Escape <code> tag

The only way to display a code tag is with HTML escaping (using &lt;), but only in clear text:

<code>1234</code>

Within a code or a pre, it does not work:

&lt;code>1234&lt;/code>
&lt;code>1234&lt;/code>

All means with notextile don't work.

This is a simple code tag with notextile before

1234

This is a simple code tag with notextile around

1234

It doesn't work within a quote:

1234

It doesn't work within a pre (with and without notextile):

1234
1234

It doesn't work within a pre + code (with and without notextile):

&lt;code&gt;1234&lt;/code&gt;
1234

It doesn't work within == either:

1234
== 1234 ==

Also available in: Atom PDF