Milian Wolff wrote:

> What's the point in adding a newline before the closing tags of a
> preformatted code block? Example:
>
>     This is Code
>
> Will become:
>
>     <pre><code>This is Code
>     </code></pre>
>
> (In both PHP and Perl Markdown)
>
> I don't really see the point, especially because this is not what I
> would want to see. With a normal stylesheet which has
white-space:pre; set on pre/code blocks, you'll see an empty line
> after "This is Code". In my eyes that is wrong.
>
> It's pretty easy to prevent though, you'll just have to remove the
> newline before `</code></pre>` in _DoCodeBlocks(_callback).

Some background:

In XHTML, the <pre> tag means all the text characters in the content,
including the white space characters, is significant (that is, the
XML attribute 'xml:space' is designated the value of 'preserve'.) The
white space characters are:

   space           (U+0020)
   tab             (U+0009)
   carriage return (U+000D)
   line feed       (U+000A)

(To note: For ordinary XHTML elements, where xml:space is set the
value of 'default', the default browser/user agent behavior is to
collapse a sequence of one or more white space characters in content
to a single space character. Also, leading and trailing white space
is ignored.)

Thus,

<pre><code>This is Code
</code></pre>

is different than:

<pre><code>This is Code</code></pre>

For comparison, for ordinary XHTML markup where xml:space has the
value of 'default':

<p>This is a paragraph.</p>

Is the same to browsers as:

<p>
This is a paragraph.
</p>


Now, I don't know the reason in Perl or PHP markdown for preserving
CR/LF characters using <pre>, but there must be some reason. I'm
only trying to give some background information.


Jon Noring

_______________________________________________
Markdown-Discuss mailing list
[email protected]
http://six.pairlist.net/mailman/listinfo/markdown-discuss

Reply via email to