# Uncategorized

**URL:** https://discuss.prosemirror.net/c/uncategorized/1.md

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

---

## [Welcome to discuss.ProseMirror](https://discuss.prosemirror.net/t/welcome-to-discuss-prosemirror/8)

<div class="topic-metadata">

**Author:** [@system](https://discuss.prosemirror.net/u/system)\
**Replies:** 0\
**Last updated:** [September 4, 2015, 12:44pm UTC](https://discuss.prosemirror.net/t/welcome-to-discuss-prosemirror/8 "2015-09-04T12:44:46Z")

</div>

This is a place for discussion and questions around the ProseMirror rich text editor. Please be constructive and civil. For bug reports, use the issue tracker instead.

---

## [Open source editors based on ProseMirror](https://discuss.prosemirror.net/t/open-source-editors-based-on-prosemirror/5660)

<div class="topic-metadata">

**Author:** [@degel123](https://discuss.prosemirror.net/u/degel123)\
**Replies:** 12\
**Last updated:** [October 14, 2026, 8:35am UTC](https://discuss.prosemirror.net/t/open-source-editors-based-on-prosemirror/5660 "2026-10-14T08:35:28Z")

</div>

What are the open-source editors that are based on ProseMirror? I know TipTap, is there anything else? I’m looking for advanced prose mirror plugins (with image resizing and table advanced features for example).

---

## [Hiring again](https://discuss.prosemirror.net/t/hiring-again/9096)

<div class="topic-metadata">

**Author:** [@cortfritz](https://discuss.prosemirror.net/u/cortfritz)\
**Replies:** 0\
**Last updated:** [October 8, 2026, 3:38pm UTC](https://discuss.prosemirror.net/t/hiring-again/9096 "2026-10-08T15:38:49Z")

</div>

Hey folks, we are hiring again so posting link to previous post that we hired from:

---

## [ProseMirror Proposal: Range-wrapping decoration](https://discuss.prosemirror.net/t/prosemirror-proposal-range-wrapping-decoration/9088)

<div class="topic-metadata">

**Author:** [@hros](https://discuss.prosemirror.net/u/hros)\
**Replies:** 1\
**Last updated:** [September 17, 2026, 10:32am UTC](https://discuss.prosemirror.net/t/prosemirror-proposal-range-wrapping-decoration/9088 "2026-09-17T10:32:42Z")

</div>

Title: Decoration type for wrapping a range of sibling nodes in a container element While working on a personal project, I ran into a limitation I think many ProseMirror editors would benefit from solving upstream: ther…

---

## [Reordering bug with collaborative editing in ProseMirror.](https://discuss.prosemirror.net/t/reordering-bug-with-collaborative-editing-in-prosemirror/9078)

<div class="topic-metadata">

**Author:** [@samiabobaker](https://discuss.prosemirror.net/u/samiabobaker)\
**Replies:** 1\
**Last updated:** [September 11, 2026, 3:02pm UTC](https://discuss.prosemirror.net/t/reordering-bug-with-collaborative-editing-in-prosemirror/9078 "2026-09-11T15:02:45Z")

</div>

Hi, I’ve been investigating behaviours of collaborative text-editing algorithms for a paper I hope to publish about the correctness properties of many of these algorithms. I’ve been looking at the collaborative editing i…

---

## [Caret flickers across a mark view with \`contenteditable=false\` child](https://discuss.prosemirror.net/t/caret-flickers-across-a-mark-view-with-contenteditable-false-child/9075)

<div class="topic-metadata">

**Author:** [@ocavue](https://discuss.prosemirror.net/u/ocavue)\
**Replies:** 3\
**Last updated:** [September 8, 2026, 11:19am UTC](https://discuss.prosemirror.net/t/caret-flickers-across-a-mark-view-with-contenteditable-false-child/9075 "2026-09-08T11:19:03Z")

</div>

Online demo: ProseMirror mark view selection repro Source code: GitHub - issueset/repro-pm-markview-selection-ios · GitHub A mention mark view renders a non-editable label followed by the editable source text: \<span c…

---

## [Ghost cursor on safari](https://discuss.prosemirror.net/t/ghost-cursor-on-safari/9074)

<div class="topic-metadata">

**Author:** [@awilkowski-maxima](https://discuss.prosemirror.net/u/awilkowski-maxima)\
**Replies:** 3\
**Last updated:** [September 4, 2026, 6:10am UTC](https://discuss.prosemirror.net/t/ghost-cursor-on-safari/9074 "2026-09-04T06:10:02Z")

</div>

Hi, We’re using ProseMirror for our text fields and I’ve noticed that sometimes when I make new lines with shift+return it leaves a ghost cursor behind. I tried to reproduce the bug without ProseMirror but was unable to,…

---

## [Library to cleanup Microsoft Word HTML?](https://discuss.prosemirror.net/t/library-to-cleanup-microsoft-word-html/3161)

<div class="topic-metadata">

**Author:** [@orestis](https://discuss.prosemirror.net/u/orestis)\
**Replies:** 7\
**Last updated:** [August 18, 2026, 8:43am UTC](https://discuss.prosemirror.net/t/library-to-cleanup-microsoft-word-html/3161 "2026-08-18T08:43:54Z")

</div>

I just spent the better part of a morning trying to figure out if there’s a library out there that works in the browser and can take whatever crap HTML Microsoft Word outputs and convert it into something that has some s…

---

## [Suggestion regarding marks & nodes](https://discuss.prosemirror.net/t/suggestion-regarding-marks-nodes/9051)

<div class="topic-metadata">

**Author:** [@achehab](https://discuss.prosemirror.net/u/achehab)\
**Replies:** 0\
**Last updated:** [August 11, 2026, 2:14pm UTC](https://discuss.prosemirror.net/t/suggestion-regarding-marks-nodes/9051 "2026-08-11T14:14:54Z")

</div>

I’m building a template editor and a preview editor. Both are editable ProseMirror/Tiptap editors. A simplified example: Template Hello @FirstName where @FirstName is a semantic placeholder. Preview Hello Jake T…

---

## [Standalone windows installer for prosemirror ?](https://discuss.prosemirror.net/t/standalone-windows-installer-for-prosemirror/9039)

<div class="topic-metadata">

**Author:** [@shodan](https://discuss.prosemirror.net/u/shodan)\
**Replies:** 2\
**Last updated:** [July 24, 2026, 5:48pm UTC](https://discuss.prosemirror.net/t/standalone-windows-installer-for-prosemirror/9039 "2026-07-24T17:48:19Z")

</div>

Hello, I would like to try prosemirror Is there a standalone windows setup installer that works offline so I can try it ?

---

## [Shift-enter in mobile phones](https://discuss.prosemirror.net/t/shift-enter-in-mobile-phones/4903)

<div class="topic-metadata">

**Author:** [@haafus](https://discuss.prosemirror.net/u/haafus)\
**Replies:** 9\
**Last updated:** [July 9, 2026, 5:37pm UTC](https://discuss.prosemirror.net/t/shift-enter-in-mobile-phones/4903 "2026-07-09T17:37:26Z")

</div>

Hello! I use shift-enter in prosemirror in desktop browsers to add hard breaks and it works fine. But the same key combination seems to be ignored on iOS/safari and also Android/firefox, though all keyboard events are th…

---

## [Chrome-specific selectionToDOM kludge no longer necessary?](https://discuss.prosemirror.net/t/chrome-specific-selectiontodom-kludge-no-longer-necessary/9034)

<div class="topic-metadata">

**Author:** [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Replies:** 2\
**Last updated:** [July 2, 2026, 1:03pm UTC](https://discuss.prosemirror.net/t/chrome-specific-selectiontodom-kludge-no-longer-necessary/9034 "2026-07-02T13:03:21Z")

</div>

ProseMirror View has had this Chrome-specific drag-to-select kludge for 4 years or so: prosemirror-view/src/selection.ts at main - prosemirror/prosemirror-view - code.haverbeke.berlin This is the originating issue: Can'…

---

## [Obsidian on the web Using Prosemirror](https://discuss.prosemirror.net/t/obsidian-on-the-web-using-prosemirror/8525)

<div class="topic-metadata">

**Author:** [@abdelrahman](https://discuss.prosemirror.net/u/abdelrahman)\
**Replies:** 6\
**Last updated:** [June 25, 2026, 5:09pm UTC](https://discuss.prosemirror.net/t/obsidian-on-the-web-using-prosemirror/8525 "2026-06-25T17:09:07Z")

</div>

Hi everyone, I recently started using Obsidian for note-taking, but I noticed there isn’t an official or community web version!. What if we built a simple, open-source Obsidian-like app for the web using ProseMirror? …

---

## [Cursor jumps visually around a widget with no actual selection change](https://discuss.prosemirror.net/t/cursor-jumps-visually-around-a-widget-with-no-actual-selection-change/9030)

<div class="topic-metadata">

**Author:** [@optimistiks](https://discuss.prosemirror.net/u/optimistiks)\
**Replies:** 1\
**Last updated:** [June 19, 2026, 9:26pm UTC](https://discuss.prosemirror.net/t/cursor-jumps-visually-around-a-widget-with-no-actual-selection-change/9030 "2026-06-19T21:26:33Z")

</div>

Found a little issue around widgets and cursors, was able to isolate it from our app’s code, but not sure if it’s on ProseMirror side or browser side "prosemirror-state": "1.4.4", "prosemirror-view": "1.41.9", "prosemir…

---

## [Is it expected that a ReplaceStep widens past an inline atom node, deleting it?](https://discuss.prosemirror.net/t/is-it-expected-that-a-replacestep-widens-past-an-inline-atom-node-deleting-it/9029)

<div class="topic-metadata">

**Author:** [@haitu-philips](https://discuss.prosemirror.net/u/haitu-philips)\
**Replies:** 3\
**Last updated:** [June 17, 2026, 6:26am UTC](https://discuss.prosemirror.net/t/is-it-expected-that-a-replacestep-widens-past-an-inline-atom-node-deleting-it/9029 "2026-06-17T06:26:06Z")

</div>

I have inline atom nodes that act as field markers (fieldStart / fieldEnd) wrapping ordinary editable text inside a paragraph. I’m seeing a replace (typing over a selection) delete these atom nodes even though my selecti…

---

## [Question about DOMOutputSpec type definition](https://discuss.prosemirror.net/t/question-about-domoutputspec-type-definition/9028)

<div class="topic-metadata">

**Author:** [@priceld](https://discuss.prosemirror.net/u/priceld)\
**Replies:** 2\
**Last updated:** [June 15, 2026, 1:35pm UTC](https://discuss.prosemirror.net/t/question-about-domoutputspec-type-definition/9028 "2026-06-15T13:35:22Z")

</div>

The type definition for DOMOutputSpec was changed recently in bb834ae103. Specifically: -export type DOMOutputSpec = DOMNode | {dom: DOMNode, contentDOM?: HTMLElement} | readonly \[string, ...any\[\]\] +export type DOMOutpu…

---

## [Please change the rules for pasting plain text](https://discuss.prosemirror.net/t/please-change-the-rules-for-pasting-plain-text/3996)

<div class="topic-metadata">

**Author:** [@sonick](https://discuss.prosemirror.net/u/sonick)\
**Replies:** 6\
**Last updated:** [June 15, 2026, 1:19pm UTC](https://discuss.prosemirror.net/t/please-change-the-rules-for-pasting-plain-text/3996 "2026-06-15T13:19:40Z")

</div>

In prosemirror, if there is one newline, it is made into a paragraph. If there is only one newline, then \<br\> If there are two line breaks, then \<p\>\</p\> However, I think I need to add some processing such as clipboar…

---

## [Suggestions as Decorations](https://discuss.prosemirror.net/t/suggestions-as-decorations/9027)

<div class="topic-metadata">

**Author:** [@nickthesick](https://discuss.prosemirror.net/u/nickthesick)\
**Replies:** 4\
**Last updated:** [June 11, 2026, 8:19am UTC](https://discuss.prosemirror.net/t/suggestions-as-decorations/9027 "2026-06-11T08:19:35Z")

</div>

Hi Marijn, We (Kevin from Y.js and Nick from BlockNote) are considering going back on our previous approach of suggested content as marks and are now reevaluating to represent suggestions as decorations. The reason tha…

---

## [Updating ProseMirror from within Dokuwiki 2025-05-14b](https://discuss.prosemirror.net/t/updating-prosemirror-from-within-dokuwiki-2025-05-14b/9024)

<div class="topic-metadata">

**Author:** [@Hogwild](https://discuss.prosemirror.net/u/Hogwild)\
**Replies:** 2\
**Last updated:** [June 5, 2026, 7:54pm UTC](https://discuss.prosemirror.net/t/updating-prosemirror-from-within-dokuwiki-2025-05-14b/9024 "2026-06-05T19:54:15Z")

</div>

Hi: Newbie here. I just noticed that on the wiki I sometimes work on (Dokuwiki Release 2025-05-14b “Librarian”, PHP 8.3.31) we have a very old version of ProseMirror installed. It’s currently still using version 2024-11…

---

## [Wondering about WASM](https://discuss.prosemirror.net/t/wondering-about-wasm/2448)

<div class="topic-metadata">

**Author:** [@mikeb](https://discuss.prosemirror.net/u/mikeb)\
**Replies:** 3\
**Last updated:** [June 2, 2026, 7:10am UTC](https://discuss.prosemirror.net/t/wondering-about-wasm/2448 "2026-06-02T07:10:45Z")

</div>

I’m curious if anyone has played with reimplementing PM’s internals using WebAssembly. We do some heavy calculations during certain updates, and based on using both JS and WASM versions of a few libraries, I suspect ther…

---

## [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…

[Next page](https://discuss.prosemirror.net/c/uncategorized/1.md?page=1)
