mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-02-13 11:44:55 +01:00
* fold Stack into Editor * switch Change objects to be tied to editors, not values * introduce controller * add the "commands" concept * convert history into commands on `value.data` * add the ability to not normalize on editor creation/setting * convert schema to a mutable constructor * add editor.command method * convert plugin handlers to receive `next` * switch commands to use the onCommand middleware * add queries support, convert schema to queries * split out browser plugin * remove noop util * fixes * fixes * start fixing tests, refactor hyperscript to be more literal * fix slate-html-serializer tests * fix schema tests with hyperscript * fix text model tests with hyperscript * fix more tests * get all tests passing * fix lint * undo decorations example update * update examples * small changes to the api to make it nicer * update docs * update commands/queries plugin logic * change normalizeNode and validateNode to be middleware * fix decoration removal * rename commands tests * add useful errors to existing APIs * update changelogs * cleanup * fixes * update docs * add editor docs
58 lines
1.0 KiB
JavaScript
58 lines
1.0 KiB
JavaScript
/** @jsx h */
|
|
|
|
import React from 'react'
|
|
import h from '../../helpers/h'
|
|
|
|
function Link(props) {
|
|
return React.createElement(
|
|
'a',
|
|
{ href: props.node.data.get('href'), ...props.attributes },
|
|
props.children
|
|
)
|
|
}
|
|
|
|
function renderNode(props) {
|
|
switch (props.node.type) {
|
|
case 'link':
|
|
return Link(props)
|
|
}
|
|
}
|
|
|
|
export const props = {
|
|
renderNode,
|
|
}
|
|
|
|
export const value = (
|
|
<value>
|
|
<document>
|
|
<paragraph>
|
|
<text />
|
|
<link href="https://google.com">word</link>
|
|
<text />
|
|
</paragraph>
|
|
</document>
|
|
</value>
|
|
)
|
|
|
|
export const output = `
|
|
<div data-slate-editor="true" contenteditable="true" role="textbox">
|
|
<div style="position:relative">
|
|
<span>
|
|
<span>
|
|
<span data-slate-zero-width="z"></span>
|
|
</span>
|
|
</span>
|
|
<a href="https://google.com">
|
|
<span>
|
|
<span>word</span>
|
|
</span>
|
|
</a>
|
|
<span>
|
|
<span>
|
|
<span data-slate-zero-width="z"></span>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
`.trim()
|