# Latest

**URL:** https://discuss.prosemirror.net/latest.md?page=1

[Latest](https://discuss.prosemirror.net/latest.md) · [Categories](https://discuss.prosemirror.net/categories.md)

**Page:** 2

---

## [The Unreasonable Effectiveness of ProseMirror Model in Rich Text Transformation](https://discuss.prosemirror.net/t/the-unreasonable-effectiveness-of-prosemirror-model-in-rich-text-transformation/9020)

<div class="topic-metadata">

**Author:** [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Replies:** 4\
**Last updated:** [May 19, 2026, 3:32pm UTC](https://discuss.prosemirror.net/t/the-unreasonable-effectiveness-of-prosemirror-model-in-rich-text-transformation/9020 "2026-05-19T15:32:14Z")

</div>

Hopefully this is interesting to some folks! I found myself reaching for ProseMirror while working on a rare non-text-editor project of mine, which nonetheless needed to transform rich text. Wrote a bit about how I por…

---

## [Focus Issue on MathLive Integration with Prosemirror](https://discuss.prosemirror.net/t/focus-issue-on-mathlive-integration-with-prosemirror/9021)

<div class="topic-metadata">

**Author:** [@Blackshadow10](https://discuss.prosemirror.net/u/Blackshadow10)\
**Replies:** 1\
**Last updated:** [May 19, 2026, 12:59pm UTC](https://discuss.prosemirror.net/t/focus-issue-on-mathlive-integration-with-prosemirror/9021 "2026-05-19T12:59:17Z")

</div>

I’m integrating MathLive MathfieldElement as an inline node in ProseMirror. Link: Mathfield Demo · MathLive The problem is that the MathField focus conflicts with the ProseMirror node focus. When I focus the MathFie…

---

## [getContent not get called for an image node](https://discuss.prosemirror.net/t/getcontent-not-get-called-for-an-image-node/9017)

<div class="topic-metadata">

**Author:** [@etclub](https://discuss.prosemirror.net/u/etclub)\
**Replies:** 6\
**Last updated:** [May 12, 2026, 7:54am UTC](https://discuss.prosemirror.net/t/getcontent-not-get-called-for-an-image-node/9017 "2026-05-12T07:54:05Z")

</div>

I defined an \`image\` node with parse rule: { tag: 'img\[src\]', getContent(dom, schema){ debugger let src = dom.src if(sr…

---

## [Feature request: maxDepth on NodeSpec — Upstream ProseMirror Pitch](https://discuss.prosemirror.net/t/feature-request-maxdepth-on-nodespec-upstream-prosemirror-pitch/9009)

<div class="topic-metadata">

**Author:** [@jim-alexander](https://discuss.prosemirror.net/u/jim-alexander)\
**Replies:** 6\
**Last updated:** [May 8, 2026, 8:39am UTC](https://discuss.prosemirror.net/t/feature-request-maxdepth-on-nodespec-upstream-prosemirror-pitch/9009 "2026-05-08T08:39:22Z")

</div>

What this adds A single optional field on NodeSpec: interface NodeSpec { // ...existing fields... /\*\* \* The maximum number of times this node type may appear in its own \* ancestor chain. When set, ProseMirror…

---

## [The Chinese combined input method encounters cursor error issues](https://discuss.prosemirror.net/t/the-chinese-combined-input-method-encounters-cursor-error-issues/9003)

<div class="topic-metadata">

**Author:** [@1730995963](https://discuss.prosemirror.net/u/1730995963)\
**Replies:** 4\
**Last updated:** [May 7, 2026, 1:52pm UTC](https://discuss.prosemirror.net/t/the-chinese-combined-input-method-encounters-cursor-error-issues/9003 "2026-05-07T13:52:00Z")

</div>

import { EditorState, TextSelection } from "prosemirror-state"; import { EditorView } from "prosemirror-view"; import { Schema, DOMParser } from "prosemirror-model"; import { schema } from "prosemirror-schema-basic"; imp…

---

## [Oddities when posting images via a clipboard](https://discuss.prosemirror.net/t/oddities-when-posting-images-via-a-clipboard/8354)

<div class="topic-metadata">

**Author:** [@alxgrn](https://discuss.prosemirror.net/u/alxgrn)\
**Replies:** 12\
**Last updated:** [May 6, 2026, 2:18pm UTC](https://discuss.prosemirror.net/t/oddities-when-posting-images-via-a-clipboard/8354 "2026-05-06T14:18:02Z")

</div>

I slightly modified the original image node by adding the image ID in the database and replacing the output in the DOM so that the caption under the image is visible. const nodes = baseSchema.spec.nodes.remove('image').…

---

## [Queryable AND collaborative ProseMirror documents](https://discuss.prosemirror.net/t/queryable-and-collaborative-prosemirror-documents/8977)

<div class="topic-metadata">

**Author:** [@thesmartwon](https://discuss.prosemirror.net/u/thesmartwon)\
**Replies:** 1\
**Last updated:** [May 1, 2026, 5:48pm UTC](https://discuss.prosemirror.net/t/queryable-and-collaborative-prosemirror-documents/8977 "2026-05-01T17:48:33Z")

</div>

I have a large corpus of documents with every word marked with grammatical features. I want to full text search and render fragments of these documents. I also want to synchronize these documents across devices. Storing…

---

## [Patterns for rendering subsets of a document](https://discuss.prosemirror.net/t/patterns-for-rendering-subsets-of-a-document/9002)

<div class="topic-metadata">

**Author:** [@sch](https://discuss.prosemirror.net/u/sch)\
**Replies:** 3\
**Last updated:** [April 30, 2026, 6:48pm UTC](https://discuss.prosemirror.net/t/patterns-for-rendering-subsets-of-a-document/9002 "2026-04-30T18:48:16Z")

</div>

Lately, I’ve been interested in exploring techniques for rendering a partial ProseMirror doc. My theory is that a good API around this could open up functionality around: Node-level subsets: “focusing in” on a part of …

---

## [How to select all the content of a node (not the node)](https://discuss.prosemirror.net/t/how-to-select-all-the-content-of-a-node-not-the-node/9000)

<div class="topic-metadata">

**Author:** [@etclub](https://discuss.prosemirror.net/u/etclub)\
**Replies:** 11\
**Last updated:** [April 28, 2026, 2:38am UTC](https://discuss.prosemirror.net/t/how-to-select-all-the-content-of-a-node-not-the-node/9000 "2026-04-28T02:38:55Z")

</div>

I have a schema with a content body foot for the top node. Both the children contain block+ content and have isolating and defining true. And contenteditable is false for foot. When one is edting in body, I want all it…

---

## [CSS pseudo-elements affect cursor/caret positions](https://discuss.prosemirror.net/t/css-pseudo-elements-affect-cursor-caret-positions/9001)

<div class="topic-metadata">

**Author:** [@semiaddict](https://discuss.prosemirror.net/u/semiaddict)\
**Replies:** 2\
**Last updated:** [April 23, 2026, 5:08pm UTC](https://discuss.prosemirror.net/t/css-pseudo-elements-affect-cursor-caret-positions/9001 "2026-04-23T17:08:53Z")

</div>

If I add a ::before pseudo element on a cusrtom node, the caret needs to be moved twice to the left to leave the node. I am using such pseudo elements for a background animation which can only be acheived with pseudo el…

---

## [Schema for preserving unknown HTML content and structure as-is](https://discuss.prosemirror.net/t/schema-for-preserving-unknown-html-content-and-structure-as-is/8999)

<div class="topic-metadata">

**Author:** [@johan-ludvigsson](https://discuss.prosemirror.net/u/johan-ludvigsson)\
**Replies:** 6\
**Last updated:** [April 21, 2026, 3:47pm UTC](https://discuss.prosemirror.net/t/schema-for-preserving-unknown-html-content-and-structure-as-is/8999 "2026-04-21T15:47:47Z")

</div>

I’m working on making a replacement for our old CKE4 implementation with a new ProseMirror implementation, and need to be careful about avoiding unintended data loss when migrating over to the new ProseMirror-based edito…

---

## [Making React ProseMirror really, really fast](https://discuss.prosemirror.net/t/making-react-prosemirror-really-really-fast/8980)

<div class="topic-metadata">

**Author:** [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Replies:** 4\
**Last updated:** [April 20, 2026, 9:13pm UTC](https://discuss.prosemirror.net/t/making-react-prosemirror-really-really-fast/8980 "2026-04-20T21:13:08Z")

</div>

Hey folks! I finally wrote up a post about the performance improvements we made to React ProseMirror last year. In both writing this post and getting feedback from folks trying out the demo editors, I’ve learned some m…

---

## [Building a Canvas-Based Editor on Top of ProseMirror’s State and Plugin System](https://discuss.prosemirror.net/t/building-a-canvas-based-editor-on-top-of-prosemirror-s-state-and-plugin-system/8982)

<div class="topic-metadata">

**Author:** [@String](https://discuss.prosemirror.net/u/String)\
**Replies:** 5\
**Last updated:** [April 16, 2026, 6:59am UTC](https://discuss.prosemirror.net/t/building-a-canvas-based-editor-on-top-of-prosemirror-s-state-and-plugin-system/8982 "2026-04-16T06:59:45Z")

</div>

Hi everyone, I’d like to share a project we’ve been building on top of ProseMirror. The core of the project still relies on ProseMirror’s document model, transactions, state management, and plugin architecture. We did …

---

## [Prevent browser default drag behavior](https://discuss.prosemirror.net/t/prevent-browser-default-drag-behavior/8996)

<div class="topic-metadata">

**Author:** [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Replies:** 2\
**Last updated:** [April 8, 2026, 12:00pm UTC](https://discuss.prosemirror.net/t/prevent-browser-default-drag-behavior/8996 "2026-04-08T12:00:51Z")

</div>

prosemirror-view, as best I can tell, will try very hard to add draggable="true" to any node that does not have draggable: false and selectable: false. I’m seeing: In ViewDesc.create, if a node has no contentDOM and i…

---

## [Resize the height of the prosemirror editor to the height of the content](https://discuss.prosemirror.net/t/resize-the-height-of-the-prosemirror-editor-to-the-height-of-the-content/8995)

<div class="topic-metadata">

**Author:** [@robehickman](https://discuss.prosemirror.net/u/robehickman)\
**Replies:** 2\
**Last updated:** [April 6, 2026, 9:04am UTC](https://discuss.prosemirror.net/t/resize-the-height-of-the-prosemirror-editor-to-the-height-of-the-content/8995 "2026-04-06T09:04:59Z")

</div>

Hi, How can you make the prosemirror editor resize so that the height of the editor window expands to be the same as the height of the content? I find this a substantial ergonomic improvement as it means there is only o…

---

## [Ctrl+Drag/drop clones content, but can that be changed to Alt+Drag/drop?](https://discuss.prosemirror.net/t/ctrl-drag-drop-clones-content-but-can-that-be-changed-to-alt-drag-drop/6640)

<div class="topic-metadata">

**Author:** [@prosed](https://discuss.prosemirror.net/u/prosed)\
**Replies:** 12\
**Last updated:** [April 2, 2026, 11:06pm UTC](https://discuss.prosemirror.net/t/ctrl-drag-drop-clones-content-but-can-that-be-changed-to-alt-drag-drop/6640 "2026-04-02T23:06:24Z")

</div>

I wonder if it’s possible to change this behavior because Alt+Drag/drop seems more in line with general expectations (eg Photoshop) Is it possible to customize this? Especially without resorting to patch-package?

---

## [Best praxis for HTML serialization and whitespace preservation](https://discuss.prosemirror.net/t/best-praxis-for-html-serialization-and-whitespace-preservation/8992)

<div class="topic-metadata">

**Author:** [@johan-ludvigsson](https://discuss.prosemirror.net/u/johan-ludvigsson)\
**Replies:** 6\
**Last updated:** [March 31, 2026, 8:45am UTC](https://discuss.prosemirror.net/t/best-praxis-for-html-serialization-and-whitespace-preservation/8992 "2026-03-31T08:45:24Z")

</div>

Pardon me if this is a duplicate question, I’ve been looking for info on this but haven’t been able to find anything related. We are building a web component for our internal design system that wraps ProseMirror and wil…

---

## [Delete selection spanning to the beginning of the next text block](https://discuss.prosemirror.net/t/delete-selection-spanning-to-the-beginning-of-the-next-text-block/8989)

<div class="topic-metadata">

**Author:** [@ianchen83](https://discuss.prosemirror.net/u/ianchen83)\
**Replies:** 2\
**Last updated:** [March 30, 2026, 8:48am UTC](https://discuss.prosemirror.net/t/delete-selection-spanning-to-the-beginning-of-the-next-text-block/8989 "2026-03-30T08:48:16Z")

</div>

If we select the whole paragraph and delete it, the next text block gets merged into the current block. The expectation (at least to me) is that it should remove the whole heading and leave only one paragraph in the b…

---

## [How to style overlapping inline decorations](https://discuss.prosemirror.net/t/how-to-style-overlapping-inline-decorations/3162)

<div class="topic-metadata">

**Author:** [@ronnyroeller](https://discuss.prosemirror.net/u/ronnyroeller)\
**Replies:** 9\
**Last updated:** [March 26, 2026, 6:51pm UTC](https://discuss.prosemirror.net/t/how-to-style-overlapping-inline-decorations/3162 "2026-03-26T18:51:47Z")

</div>

The Prosemirror Edit Example allows to add comments. These comments can be overlapping. For example, here are two overlapping comments - one on the whole content and the other only on the word “sample”: Unfortunately…

---

## [Fragment Mark View or Node View](https://discuss.prosemirror.net/t/fragment-mark-view-or-node-view/8979)

<div class="topic-metadata">

**Author:** [@thesmartwon](https://discuss.prosemirror.net/u/thesmartwon)\
**Replies:** 4\
**Last updated:** [March 26, 2026, 4:06pm UTC](https://discuss.prosemirror.net/t/fragment-mark-view-or-node-view/8979 "2026-03-26T16:06:34Z")

</div>

I have a mark per-word in a large document. Displaying all marks takes ~10x longer to render (~700ms vs 70ms) due to the overhead of creating so many DOM nodes. Since they’re only needed conditionally is there a way to r…

---

## [Pitter Patter from Handle with Care](https://discuss.prosemirror.net/t/pitter-patter-from-handle-with-care/8981)

<div class="topic-metadata">

**Author:** [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Replies:** 0\
**Last updated:** [March 26, 2026, 3:08pm UTC](https://discuss.prosemirror.net/t/pitter-patter-from-handle-with-care/8981 "2026-03-26T15:08:29Z")

</div>

This post doesn’t perfectly align with “jobs board”, but I think it has enough overlap to make sense here. Our collective, Handle with Care (we maintain some open source ProseMirror libraries, including React ProseMirr…

---

## [Decoration loss on undo with async paragraph-level updates](https://discuss.prosemirror.net/t/decoration-loss-on-undo-with-async-paragraph-level-updates/8978)

<div class="topic-metadata">

**Author:** [@sinan](https://discuss.prosemirror.net/u/sinan)\
**Replies:** 5\
**Last updated:** [March 26, 2026, 8:35am UTC](https://discuss.prosemirror.net/t/decoration-loss-on-undo-with-async-paragraph-level-updates/8978 "2026-03-26T08:35:21Z")

</div>

Demo Setup (Minimal Plugin) import { Extension } from '@tiptap/core' import { Plugin, PluginKey } from 'prosemirror-state' import { Decoration, DecorationSet, EditorView } from 'prosemirror-view' import { Node as Pro…

---

## [Visualize changes between 2 tiptap jsons](https://discuss.prosemirror.net/t/visualize-changes-between-2-tiptap-jsons/8328)

<div class="topic-metadata">

**Author:** [@madhan](https://discuss.prosemirror.net/u/madhan)\
**Replies:** 11\
**Last updated:** [March 24, 2026, 5:28am UTC](https://discuss.prosemirror.net/t/visualize-changes-between-2-tiptap-jsons/8328 "2026-03-24T05:28:38Z")

</div>

Hi, I want to diff 2 rendered versions of tiptap jsons,like green highlight for inserted and red for deleted contents like (snapshot-compare)extension in tiptap pro.This has to work with custom nodes also.Sharing my idea…

---

## [Annotation for view mode and edit mode](https://discuss.prosemirror.net/t/annotation-for-view-mode-and-edit-mode/6537)

<div class="topic-metadata">

**Author:** [@tiwarishankar](https://discuss.prosemirror.net/u/tiwarishankar)\
**Replies:** 9\
**Last updated:** [March 19, 2026, 6:06pm UTC](https://discuss.prosemirror.net/t/annotation-for-view-mode-and-edit-mode/6537 "2026-03-19T18:06:47Z")

</div>

Hey everyone !! I recently encountered a unique situation, and I’m not sure if Prosemirror has a built-in solution for this. I’ve looked through the Prosemirror code but couldn’t find anything relevant. Imagine I maint…

---

## [How to have a mark with content hide/show dynamically](https://discuss.prosemirror.net/t/how-to-have-a-mark-with-content-hide-show-dynamically/8959)

<div class="topic-metadata">

**Author:** [@etclub](https://discuss.prosemirror.net/u/etclub)\
**Replies:** 9\
**Last updated:** [March 13, 2026, 6:33pm UTC](https://discuss.prosemirror.net/t/how-to-have-a-mark-with-content-hide-show-dynamically/8959 "2026-03-13T18:33:50Z")

</div>

I have some mark with userId attrs, and I have a select to determine which mark should show. Now I use markview Builds span elements with data-uid Applies display/visibility based on selectedUid It works for most sit…

---

## [Staff TypeScript & ProseMirror engineer roles at scripto.live](https://discuss.prosemirror.net/t/staff-typescript-prosemirror-engineer-roles-at-scripto-live/8520)

<div class="topic-metadata">

**Author:** [@cortfritz](https://discuss.prosemirror.net/u/cortfritz)\
**Replies:** 3\
**Last updated:** [March 7, 2026, 11:42am UTC](https://discuss.prosemirror.net/t/staff-typescript-prosemirror-engineer-roles-at-scripto-live/8520 "2026-03-07T11:42:43Z")

</div>

Hi lovely people! We here at Scripto - proud ProseMirror sponsors - have openings for Staff or principal TypeScript engineers. We are a small team making a professional screenplay / script editor that powers the dialog…

---

## [Some issues with inline marks and decorations](https://discuss.prosemirror.net/t/some-issues-with-inline-marks-and-decorations/8962)

<div class="topic-metadata">

**Author:** [@optimistiks](https://discuss.prosemirror.net/u/optimistiks)\
**Replies:** 2\
**Last updated:** [March 7, 2026, 10:26am UTC](https://discuss.prosemirror.net/t/some-issues-with-inline-marks-and-decorations/8962 "2026-03-07T10:26:14Z")

</div>

In our app we have an inline mark, a widget decoration that is essentially a span with an svg inside. We’ve discovered that having the decoration inside the mark that is in the middle of a word changes the word break …

---

## [Text folding](https://discuss.prosemirror.net/t/text-folding/439)

<div class="topic-metadata">

**Author:** [@maacl](https://discuss.prosemirror.net/u/maacl)\
**Replies:** 8\
**Last updated:** [March 4, 2026, 8:54pm UTC](https://discuss.prosemirror.net/t/text-folding/439 "2026-03-04T20:54:48Z")

</div>

Does anyone have any good ideas for how to implement folding in ProseMirror. I would like to be able to fold/unfold text under a heading until the next heading at the same level. The approach I am currently considering…

---

## [Adding internal links](https://discuss.prosemirror.net/t/adding-internal-links/683)

<div class="topic-metadata">

**Author:** [@Niloofar](https://discuss.prosemirror.net/u/Niloofar)\
**Replies:** 2\
**Last updated:** [March 3, 2026, 9:06am UTC](https://discuss.prosemirror.net/t/adding-internal-links/683 "2026-03-03T09:06:04Z")

</div>

Would you please let me know whether there is a way in prosemirror that I can implement an internal link to headings? Thanks

---

## [Showing changes in alternate color](https://discuss.prosemirror.net/t/showing-changes-in-alternate-color/8925)

<div class="topic-metadata">

**Author:** [@bencahan](https://discuss.prosemirror.net/u/bencahan)\
**Replies:** 4\
**Last updated:** [February 18, 2026, 4:27pm UTC](https://discuss.prosemirror.net/t/showing-changes-in-alternate-color/8925 "2026-02-18T16:27:51Z")

</div>

This topic has come up before, but I would love a bit of guidance on having changes/additions (when wanted) shown in a color other than black to give them easy visual reference. I thought initially of using the stored c…

[Previous page](https://discuss.prosemirror.net/latest.md)

[Next page](https://discuss.prosemirror.net/latest.md?page=2)
