UNPKG

typewriter-editor

Version:

A rich text editor using the Delta format with decorations and rendered with a tiny virtual dom

32 lines (31 loc) 928 B
import { AttributeMap } from '@typewriter/document'; import { h } from '../rendering/vdom'; import { embed } from './typeset'; export const image = embed({ name: 'image', selector: 'img', commands: editor => (image, props) => editor.insert({ image, ...props }), fromDom: node => { const image = {}; ['src', 'alt', 'width', 'height'].forEach(name => { if (!node.hasAttribute(name)) return; const value = node.getAttribute(name); if (name === 'src') name = 'image'; image[name] = value; }); return image; }, render: (embed) => { const { image, ...props } = embed; props.src = image; return h('img', props); }, }); export const br = embed({ name: 'br', selector: 'br', commands: editor => () => editor.insert({ br: true }), render: () => h('br'), });