UNPKG

@atlaskit/editor-plugin-image-upload

Version:

Image upload plugin for @atlaskit/editor-core

26 lines (25 loc) 933 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 var imageRule = createRule(/!\[(.*)\]\((\S+)\)$/, function (state, match, start, end) { var schema = state.schema; var attrs = { src: match[2], alt: match[1] }; var 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;