From 1a1f680536364a234bfb5ecd0b100b0975154640 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 15 Nov 2023 23:55:50 +0800 Subject: [PATCH] wip: pre tag handling --- packages/compiler-core/src/parser/index.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/compiler-core/src/parser/index.ts b/packages/compiler-core/src/parser/index.ts index 7ced0f4301..34da397a34 100644 --- a/packages/compiler-core/src/parser/index.ts +++ b/packages/compiler-core/src/parser/index.ts @@ -274,10 +274,13 @@ function emitOpenTag(name: string, start: number) { function endOpenTag(end: number) { addNode(currentElement!) const name = currentElement!.tag - if (!currentOptions.isVoidTag(name)) { - stack.unshift(currentElement!) - } else { + if (currentOptions.isPreTag(name)) { + inPre++ + } + if (currentOptions.isVoidTag(name)) { onCloseTag(currentElement!, end) + } else { + stack.unshift(currentElement!) } currentElement = null } @@ -319,6 +322,9 @@ function onCloseTag(el: ElementNode, end: number) { el.loc.end = tokenizer.getPos(end + offset + 1) // whitepsace management el.children = condenseWhitespace(el.children) + if (currentOptions.isPreTag(el.tag)) { + inPre-- + } } const windowsNewlineRE = /\r\n/g -- 2.47.3