mirror of https://github.com/vuejs/core.git
fix(compile-dom): should be able to stringify mathML (#11891)
This commit is contained in:
parent
49fa673493
commit
85c138ced1
|
|
@ -389,6 +389,24 @@ describe('stringify static html', () => {
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('should stringify mathML', () => {
|
||||||
|
const math = `<math xmlns="http://www.w3.org/1998/Math/MathML">`
|
||||||
|
const repeated = `<ms>1</ms>`
|
||||||
|
const { ast } = compileWithStringify(
|
||||||
|
`<div>${math}${repeat(
|
||||||
|
repeated,
|
||||||
|
StringifyThresholds.NODE_COUNT,
|
||||||
|
)}</math></div>`,
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(ast.cached).toMatchObject([
|
||||||
|
cachedArrayStaticNodeMatcher(
|
||||||
|
`${math}${repeat(repeated, StringifyThresholds.NODE_COUNT)}</math>`,
|
||||||
|
1,
|
||||||
|
),
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
// #5439
|
// #5439
|
||||||
test('stringify v-html', () => {
|
test('stringify v-html', () => {
|
||||||
const { code } = compileWithStringify(`
|
const { code } = compileWithStringify(`
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import {
|
||||||
isArray,
|
isArray,
|
||||||
isBooleanAttr,
|
isBooleanAttr,
|
||||||
isKnownHtmlAttr,
|
isKnownHtmlAttr,
|
||||||
|
isKnownMathMLAttr,
|
||||||
isKnownSvgAttr,
|
isKnownSvgAttr,
|
||||||
isString,
|
isString,
|
||||||
isSymbol,
|
isSymbol,
|
||||||
|
|
@ -190,7 +191,9 @@ const isStringifiableAttr = (name: string, ns: Namespaces) => {
|
||||||
? isKnownHtmlAttr(name)
|
? isKnownHtmlAttr(name)
|
||||||
: ns === Namespaces.SVG
|
: ns === Namespaces.SVG
|
||||||
? isKnownSvgAttr(name)
|
? isKnownSvgAttr(name)
|
||||||
: false) || dataAriaRE.test(name)
|
: ns === Namespaces.MATH_ML
|
||||||
|
? isKnownMathMLAttr(name)
|
||||||
|
: false) || dataAriaRE.test(name)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,25 @@ export const isKnownSvgAttr: (key: string) => boolean = /*@__PURE__*/ makeMap(
|
||||||
`xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`,
|
`xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
||||||
|
*/
|
||||||
|
export const isKnownMathMLAttr: (key: string) => boolean =
|
||||||
|
/*@__PURE__*/ makeMap(
|
||||||
|
`accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,` +
|
||||||
|
`altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,` +
|
||||||
|
`columnspan,denomalign,depth,dir,display,displaystyle,encoding,` +
|
||||||
|
`equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,` +
|
||||||
|
`groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,` +
|
||||||
|
`indentshift,indentshiftfirst,indentshiftlast,indextype,justify,` +
|
||||||
|
`largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,` +
|
||||||
|
`mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,` +
|
||||||
|
`rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,` +
|
||||||
|
`scriptsizemultiplier,selection,separator,separators,shift,side,` +
|
||||||
|
`src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,` +
|
||||||
|
`voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`,
|
||||||
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shared between server-renderer and runtime-core hydration logic
|
* Shared between server-renderer and runtime-core hydration logic
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue