This change introduces two new top-level options to the editor: `enableContentCheck` & `onContentError` for dealing with content supplied that does not match the prose-mirror schema generated by the set of tiptap extensions.
`enableContentCheck` allows the app developer to opt into the behavior to check for invalid schemas (this change is otherwise backwards compatible).
When true, this will try to parse the document, and any content that does not match the schema will emit a `contentError` which can be listened to via the `onContentError` callback.
* added JSDocs for almost all extensions
* start adding commands jsdocs
* add jsdocs for rest of extensions
* add jsdocs for Extensions
* add js docs for all extensions
* add more jsdocs
* add js docs for node spec definitions
* add support for mod-delete and mod-backspace
* fix backspace not working right behind a list
* move list helpers to core, add support for task lists
* add option to check for node in isAtEndOfNode
---------
Co-authored-by: bdbch <dominik@bdbch.com>
* Adds attributes to toggleList
When dealing with different variants of bullet lists, I wanted to adopt the same technique I used for different paragraph variants. Since `wrapInList` is capable of receiving attributes, just like `setNode` is, I don't see any reason why `toggleList` should not be capable of the same.
Here's my bullet list extension in action that is in need of attributes support.
```js
export const CustomBulletList = BulletList.extend({
content: 'listItem*',
addAttributes() {
return {
variant: {
default: DEFAULT_LIST,
renderHTML: attributes => {
return {
class: `list-${attributes.variant}`,
};
},
},
};
},
addCommands() {
return {
toggleBulletList: attributes => (c) => {
return c.commands.toggleListCustom(this.name, this.options.itemTypeName, attributes);
},
};
},
});
```
* Update toggle-list.md
* Update toggle-list.md
* feat: #3540 Ability to preserve marks on lists
* feat: preserveAttrs in list items
* `keepMarks` is working, but need help with `keepAttrs`
* fix: conflict
* avoid casting
* fix(core): 🐛 fix delete on empty nodes joining next node incorrectly
This PR implements a "deleteCurrentNode" action in combination with registering this command inside the keymap for the delete key. This way, we editor will check, if the current node is empty before joining - if the current node is empty, the node will be removed. Joining will still work if the current node is not empty and the selection is at the end of the current node
2924
* refactor(core): ♻️ remove unnecessary return on handleDelete keymap
Previously, setting marks did no schema validation checks for dry runs
(like the `.can()` command). The `setMark` raw command will now properly
check if the mark is possible to be set given the editor node/mark
schema.
Co-authored-by: Cameron Hessler <cameron.hessler@buildertrend.com>
this fixes a bug introduced a few months ago that caused positions not resolving on the most recent transaction but the editor state that was existing before the last transactions beforehand existed causing the editor to crash
* check if we can replace the wrapping node by the newly inserted content
/
* we dont need this anymore
* set selection to inserted content instead of below
* improve hr cursor behavior