UNPKG

@curvenote/schema

Version:

Schema and markdown parser for @curvenote/editor

41 lines 1.15 kB
import { NodeGroups } from './types'; const mention = { group: NodeGroups.inline, attrs: { label: { default: '' }, user: { default: '' } }, inline: true, draggable: true, selectable: true, marks: '', toDOM(node) { const { label, user } = node.attrs; return ['span', { title: label, 'data-user': user, class: 'mention' }]; }, parseDOM: [ { tag: 'span.mention', getAttrs(dom) { const label = dom.getAttribute('title') || ''; const user = dom.getAttribute('data-user') || ''; return { label, user }; }, }, ], attrsFromMyst: (token) => ({ user: token.identifier, label: token.value || '', }), toMyst: (props) => ({ type: 'mention', identifier: props['data-user'], label: props['data-user'], value: props.title, }), }; export const toMarkdown = (state, node) => { state.write(node.attrs.label); }; export const toTex = (state, node) => { state.write(node.attrs.label); }; export default mention; //# sourceMappingURL=mention.js.map