1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-02-13 11:44:55 +01:00
slate/packages/slate-react/test/rendering/fixtures/custom-inline-multiple.js
Ian Storm Taylor 7a71de387c
Add controller (#2221)
* 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
2018-10-09 14:03:27 -07:00

82 lines
1.5 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 />
<link href="https://google.com">word</link>
<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">&#xFEFF;</span>
</span>
</span>
<a href="https://google.com">
<span>
<span>word</span>
</span>
</a>
<span>
<span>
<span data-slate-zero-width="z">&#xFEFF;</span>
</span>
</span>
<a href="https://google.com">
<span>
<span>word</span>
</span>
</a>
<span>
<span>
<span data-slate-zero-width="z">&#xFEFF;</span>
</span>
</span>
<a href="https://google.com">
<span>
<span>word</span>
</span>
</a>
<span>
<span>
<span data-slate-zero-width="z">&#xFEFF;</span>
</span>
</span>
</div>
</div>
`.trim()