parent
be666ebd59
commit
8c17535a47
@ -194,7 +194,7 @@ function parseChildren(
|
||||
for (let i = 0; i < nodes.length; i++) {
|
||||
const node = nodes[i]
|
||||
if (node.type === NodeTypes.TEXT) {
|
||||
if (!node.content.trim()) {
|
||||
if (!/[^\t\r\n\f ]/.test(node.content)) {
|
||||
const prev = nodes[i - 1]
|
||||
const next = nodes[i + 1]
|
||||
// If:
|
||||
@ -219,7 +219,7 @@ function parseChildren(
|
||||
node.content = ' '
|
||||
}
|
||||
} else {
|
||||
node.content = node.content.replace(/\s+/g, ' ')
|
||||
node.content = node.content.replace(/[\t\r\n\f ]+/g, ' ')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,9 +8,9 @@ import {
|
||||
InterpolationNode
|
||||
} from '@vue/compiler-core'
|
||||
import {
|
||||
parserOptionsMinimal as parserOptions,
|
||||
parserOptionsStandard as parserOptions,
|
||||
DOMNamespaces
|
||||
} from '../src/parserOptionsMinimal'
|
||||
} from '../src/parserOptionsStandard'
|
||||
|
||||
describe('DOM parser', () => {
|
||||
describe('Text', () => {
|
||||
@ -160,6 +160,16 @@ describe('DOM parser', () => {
|
||||
}
|
||||
])
|
||||
})
|
||||
|
||||
// #945
|
||||
test(' should not be condensed', () => {
|
||||
const nbsp = String.fromCharCode(160)
|
||||
const ast = parse(`foo bar`, parserOptions)
|
||||
expect(ast.children[0]).toMatchObject({
|
||||
type: NodeTypes.TEXT,
|
||||
content: `foo${nbsp}${nbsp}bar`
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Interpolation', () => {
|
||||
|
@ -2,6 +2,8 @@ import { ParserOptions } from '@vue/compiler-core'
|
||||
import { parserOptionsMinimal } from './parserOptionsMinimal'
|
||||
import namedCharacterReferences from './namedChars.json'
|
||||
|
||||
export { DOMNamespaces } from './parserOptionsMinimal'
|
||||
|
||||
export const parserOptionsStandard: ParserOptions = {
|
||||
// extends the minimal options with more spec-compliant overrides
|
||||
...parserOptionsMinimal,
|
||||
|
Loading…
Reference in New Issue
Block a user