Releases: ianstormtaylor/slate
Releases · ianstormtaylor/slate
0.6.0
BREAKING CHANGES
- Void components are no longer rendered implicity! Previously, Slate would automatically wrap any node with
isVoid: true
in a<Void>
component. But doing this prevented you from customizing the wrapper, like adding aclassName
orstyle
property. So you must now render the wrapper yourself, and it has been exported asSlate.Void
. This, combined with a small change to the<Void>
component's structure allows the "selected" state of void nodes to be rendered purely with CSS based on the:focus
property of a<Void>
element, which previously had to be handled in Javascript. This allows us to streamline selection-handling logic, improving performance and reducing complexity. data-offset-key
is now<key>-<index>
instead of<key>:<start>-<end>
. This shouldn't actually affect anyone, unless you were specifically relying on that attribute in the DOM. This change greatly reduces the number of re-renders needed, since previously any additional characters would cause a cascading change in the<start>
and<end>
offsets of latter text ranges.
0.5.0
BREAKING CHANGES
node.getTextNodes()
is nownode.getTexts()
. This is just for consistency with the other existingNode
methods likegetBlocks()
,getInlines()
, etc. And it's nicely shorter. 😉Node
methods nowthrow
earlier during unexpected states. This shouldn't break anything for most folks, unless a strange edge-case was going undetected previously.
0.4.0
BREAKING CHANGES
renderMark(mark, state, editor)
is nowrenderMark(mark, marks, state, editor)
. This change allows you to render marks based on multiplemarks
presence at once on a given range of text, for example using a customBoldItalic.otf
font when text has bothbold
anditalic
marks.
0.3.0
BREAKING CHANGES
transform.unwrapBlock()
now unwraps selectively. Previously, callingunwrapBlock
with a range representing a middle sibling would unwrap all of the siblings, removing the wrapping block entirely. Now, calling it with those same arguments will only move the middle sibling up a layer in the hierarchy, preserving the nesting on any of its siblings. This changes makes it much simpler to implement functionality like unwrapping a single list item, which previously would unwrap the entire list.
0.2.0
BREAKING CHANGES
transform.mark()
is nowtransform.addMark()
andtransform.unmark()
is nowtransform.removeMark()
. The new names make it clearer that the transforms are actions being performed, and it paves the way for adding atoggleMark
convenience as well.