I’ve just tagged 0.13.0. I didn’t have time to look into everything I wanted to look into, but I figured regular releases are a good thing, so here you are.
The main work this release has been on copy/paste behavior. This ended up causing a major refactor of the DOM parser and a rewrite of the way replacing a selection is done, which I think both improved the system. Paste behavior is still not perfect, but (assuming my tests aren’t missing any major regressions) it should be quite a lot better.
The other changes are mostly small bug fixes and reintroductions of a few features that were dropped in the 0.10→0.11 transition, but that people did actually really need. Read about them in the…
Release Notes
prosemirror-model 0.13.0 (2016-11-11)
Breaking changes
ResolvedPos.sameDepth
is now called ResolvedPos.sharedDepth
, and takes a raw, unresolved position as argument.
New features
DOMSerializer
's nodes
and marks
properties are now public.
ContentMatch.findWrapping
now takes a third argument, marks
. There’s a new method findWrappingFor
that accepts a whole node.
Adds Slice.maxOpen
static method to create maximally open slices.
DOM parser objects now have a parseSlice
method which parses an HTML fragment into a Slice
, rather than trying to create a whole document from it.
prosemirror-transform 0.13.0 (2016-11-11)
Bug fixes
Fix issue where Transform.replace
would, in specific circumstances, unneccessarily drop content.
New features
The new Transform
method replaceRange
, replaceRangeWith
, and deleteRange
provide a way to replace and delete content in a ‘do what I mean’ way, automatically expanding the replaced region over empty parent nodes and including the parent nodes in the inserted content when appropriate.
prosemirror-state 0.13.0 (2016-11-11)
Breaking changes
EditorTransform.replaceSelection
now takes a slice, no longer a node. The new replaceSelectionWith
method should be used to replace the selection with a node. Until the next release, calling it the old way will still work and emit a warning.
Bug fixes
The documentation for applyAction
now actually reflects the arguments this method is given.
New features
A state field’s applyAction
method is now passed the previous state as 4th argument, so that it has access to the new doc and selection.
EditorTransform.replaceSelection
now accepts a slice (or, as before, as a node), and uses a revised algorithm, relying on the defining
node flag.
The TextSelection
and NodeSelection
classes now have a static create
convenience method for creating selections from unresolved positions.
Allow transform actions to be extended during dispatch using extendTransformAction
. Introduce sealed
flag to indicate when this is not safe.
A new utility function NodeSelection.isSelectable
can be used to test whether a node can be the target of a node selection.
prosemirror-view 0.13.0 (2016-11-11)
Breaking changes
Selecting nodes on OS X is now done with cmd-leftclick rather than ctrl-leftclick.
Bug fixes
Pasting text into a code block will now insert the raw text.
Widget decorations at the start or end of a textblock no longer block horizontal cursor motion through them.
Widget nodes at the end of textblocks are now reliably drawn during display updates.
New features
DecorationSet.map
now takes an options object which allows you to specify an onRemove
callback to be notified when remapping drops decorations.
The transformPastedHTML
and transformPastedText
props were (re-)added, and can be used to clean up pasted content.
prosemirror-commands 0.13.0 (2016-11-11)
New features
The autoJoin
function allows you to wrap command functions so that when the command makes nodes of a certain type occur next to each other, they are automatically joined.