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
|
// remove leading newline per html spec
|
||||||
// https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element
|
// https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element
|
||||||
const first = nodes[0]
|
const first = nodes[0]
|
||||||
|
@ -141,12 +141,24 @@ describe('DOM parser', () => {
|
|||||||
|
|
||||||
// #908
|
// #908
|
||||||
test('<pre> tag should remove leading newline', () => {
|
test('<pre> tag should remove leading newline', () => {
|
||||||
const rawText = `\nhello`
|
const rawText = `\nhello<div>\nbye</div>`
|
||||||
const ast = parse(`<pre>${rawText}</pre>`, parserOptions)
|
const ast = parse(`<pre>${rawText}</pre>`, parserOptions)
|
||||||
expect((ast.children[0] as ElementNode).children[0]).toMatchObject({
|
expect((ast.children[0] as ElementNode).children).toMatchObject([
|
||||||
|
{
|
||||||
type: NodeTypes.TEXT,
|
type: NodeTypes.TEXT,
|
||||||
content: rawText.slice(1)
|
content: `hello`
|
||||||
})
|
},
|
||||||
|
{
|
||||||
|
type: NodeTypes.ELEMENT,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: NodeTypes.TEXT,
|
||||||
|
// should not remove the leading newline for nested elements
|
||||||
|
content: `\nbye`
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user