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
|
||||
test('stringify v-html', () => {
|
||||
const { code } = compileWithStringify(`
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import {
|
|||
isArray,
|
||||
isBooleanAttr,
|
||||
isKnownHtmlAttr,
|
||||
isKnownMathMLAttr,
|
||||
isKnownSvgAttr,
|
||||
isString,
|
||||
isSymbol,
|
||||
|
|
@ -190,7 +191,9 @@ const isStringifiableAttr = (name: string, ns: Namespaces) => {
|
|||
? isKnownHtmlAttr(name)
|
||||
: ns === Namespaces.SVG
|
||||
? 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`,
|
||||
)
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue