prosemirror-transform
Advanced tools
Comparing version
@@ -0,1 +1,7 @@ | ||
## 1.7.4 (2023-07-28) | ||
### Bug fixes | ||
When using `setBlockType` to convert a code block to a type of node that doesn't contain code, replace newlines with spaces. | ||
## 1.7.3 (2023-06-01) | ||
@@ -2,0 +8,0 @@ |
{ | ||
"name": "prosemirror-transform", | ||
"version": "1.7.3", | ||
"version": "1.7.4", | ||
"description": "ProseMirror document transformations", | ||
@@ -5,0 +5,0 @@ "type": "module", |
@@ -77,3 +77,3 @@ import {Mark, MarkType, Slice, Fragment, NodeType} from "prosemirror-model" | ||
let node = tr.doc.nodeAt(pos)! | ||
let delSteps: Step[] = [], cur = pos + 1 | ||
let replSteps: Step[] = [], cur = pos + 1 | ||
for (let i = 0; i < node.childCount; i++) { | ||
@@ -83,3 +83,3 @@ let child = node.child(i), end = cur + child.nodeSize | ||
if (!allowed) { | ||
delSteps.push(new ReplaceStep(cur, end, Slice.empty)) | ||
replSteps.push(new ReplaceStep(cur, end, Slice.empty)) | ||
} else { | ||
@@ -89,2 +89,11 @@ match = allowed | ||
tr.step(new RemoveMarkStep(cur, end, child.marks[j])) | ||
if (child.isText && !parentType.spec.code) { | ||
let m, newline = /\r?\n|\r/g, slice | ||
while (m = newline.exec(child.text!)) { | ||
if (!slice) slice = new Slice(Fragment.from(parentType.schema.text(" ", parentType.allowedMarks(child.marks))), | ||
0, 0) | ||
replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice)) | ||
} | ||
} | ||
} | ||
@@ -97,3 +106,3 @@ cur = end | ||
} | ||
for (let i = delSteps.length - 1; i >= 0; i--) tr.step(delSteps[i]) | ||
for (let i = replSteps.length - 1; i >= 0; i--) tr.step(replSteps[i]) | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
297947
0.51%6279
0.4%