fix(compiler): should only strip leading newline directly in pre tag
This commit is contained in:
parent
84440780f9
commit
be666ebd59
@ -223,7 +223,7 @@ function parseChildren(
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (parent && context.options.isPreTag(parent.tag)) {
|
||||
// remove leading newline per html spec
|
||||
// https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element
|
||||
const first = nodes[0]
|
||||
|
@ -141,12 +141,24 @@ describe('DOM parser', () => {
|
||||
|
||||
// #908
|
||||
test('<pre> tag should remove leading newline', () => {
|
||||
const rawText = `\nhello`
|
||||
const rawText = `\nhello<div>\nbye</div>`
|
||||
const ast = parse(`<pre>${rawText}</pre>`, parserOptions)
|
||||
expect((ast.children[0] as ElementNode).children[0]).toMatchObject({
|
||||
type: NodeTypes.TEXT,
|
||||
content: rawText.slice(1)
|
||||
})
|
||||
expect((ast.children[0] as ElementNode).children).toMatchObject([
|
||||
{
|
||||
type: NodeTypes.TEXT,
|
||||
content: `hello`
|
||||
},
|
||||
{
|
||||
type: NodeTypes.ELEMENT,
|
||||
children: [
|
||||
{
|
||||
type: NodeTypes.TEXT,
|
||||
// should not remove the leading newline for nested elements
|
||||
content: `\nbye`
|
||||
}
|
||||
]
|
||||
}
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user