UNPKG

@atlaskit/adf-schema

Version:

Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs

50 lines (48 loc) 963 B
import { FONT_STYLE } from '../groups'; /** * @name subsup_mark */ function getAttrFromVerticalAlign(node) { if (node.style.verticalAlign) { const type = node.style.verticalAlign.slice(0, 3); if (type === 'sub' || type === 'sup') { return { type }; } } return false; } export const subsup = { inclusive: true, group: FONT_STYLE, attrs: { type: { default: 'sub' } }, parseDOM: [{ tag: 'sub', attrs: { type: 'sub' } }, { tag: 'sup', attrs: { type: 'sup' } }, { // Special case for pasting from Google Docs // Google Docs uses vertical align to denote subscript and super script tag: 'span', style: 'vertical-align=super', getAttrs: node => getAttrFromVerticalAlign(node) }, { tag: 'span', style: 'vertical-align=sub', getAttrs: node => getAttrFromVerticalAlign(node) }], toDOM(mark) { return [mark.attrs.type]; } };