Skip to content

Newlines inside <pre> blocks are collapsed instead of preserved #185

@chrispy-snps

Description

@chrispy-snps

If I have child elements in a <pre> block that have adjacent newlines between them, they are collapsed:

md = markdownify.MarkdownConverter().convert

html = '<pre><span>foo\n\n\n</span><span>\n\n\nbar</span></pre>'
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^

md('<pre><span>foo\n\n\n</span><span>\n\n\nbar</span></pre>')
# '\n```\nfoo\n\n\nbar\n```\n'
#            ^^^^^^

This is incorrect behavior - newlines inside <pre> elements should be preserved as-is.

Here are some suggested regression test commands:

assert md('<pre>\n\n<span>\n\nfoo\n\n\n</span><span>\n\n\nbar\n\n</span>\n\n</pre>') == '\n\n```\nfoo\n\n\n\n\n\n\n\n\n\n\n\n\n\nbar\n```\n\n'
assert md('<pre>\n\n<span>\n\nfoo\n\n</span>\n\n<span>\n\nbar\n\n</span>\n\n</pre>') == '\n\n```\nfoo\n\n\n\n\n\n\n\n\n\n\n\n\n\nbar\n```\n\n'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions