UNPKG

@atlaskit/editor-plugin-image-upload

Version:

Image upload plugin for @atlaskit/editor-core

28 lines (27 loc) 942 B
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin'; import { createRule } from '@atlaskit/editor-common/utils'; import { createPlugin } from '@atlaskit/prosemirror-input-rules'; import { createExternalMediaNode } from '../ui/hooks/utils'; export function inputRulePlugin(schema, featureFlags) { if (!schema.nodes.media || !schema.nodes.mediaSingle) { return; } // ![something](link) should convert to an image // eslint-disable-next-line require-unicode-regexp const imageRule = createRule(/!\[(.*)\]\((\S+)\)$/, (state, match, start, end) => { const { schema } = state; const attrs = { src: match[2], alt: match[1] }; const node = createExternalMediaNode(attrs.src, schema); if (node) { return state.tr.replaceWith(start, end, node); } return null; }); return new SafePlugin(createPlugin('image-upload', [imageRule])); } export default inputRulePlugin;