Olivier Lambert f5d794220e fix: resolve keystroke input being swallowed after link in Firefox (#1922)
* fix: resolve keystroke input being swallowed after link in Firefox

In Firefox, when the cursor is at the right boundary of a link mark,
contenteditable inserts new text inside the <a> element. ProseMirror
then rejects the DOM mutation because the link mark has inclusive: false,
causing keystrokes to be silently swallowed. Unlike Chrome, Firefox also
does not fire ProseMirror's handleTextInput callback in this state.

This adds a ProseMirror plugin that intercepts printable character
keydowns at link mark boundaries and programmatically inserts the text
without the link mark, bypassing Firefox's native contenteditable
behavior entirely.

Fixes #1773

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve keystroke input being swallowed before a link in Firefox

Extend the linkBoundaryInput plugin to also handle the left boundary
of links, where the cursor is just before a link (e.g. at the start
of a line). Firefox inserts text inside the <a> element in this case
too, causing ProseMirror to reject the mutation.

Fixes #1748
2026-03-03 17:19:03 +00:00
2026-03-02 21:52:58 +00:00
2026-01-16 13:21:42 +00:00
2025-03-06 13:38:37 +00:00
2025-03-06 13:38:37 +00:00
2024-01-09 18:58:26 +01:00
2025-01-04 13:22:31 +00:00
2026-02-06 10:28:52 -08:00
2026-01-16 13:21:42 +00:00
2023-11-15 23:11:15 +00:00
2026-02-14 20:58:08 -08:00
2026-03-03 00:13:01 +00:00
2026-03-02 21:44:24 +00:00
2025-04-21 21:50:21 +01:00

Docmost

Open-source collaborative wiki and documentation software.
Website | Documentation | Twitter / X


Getting started

To get started with Docmost, please refer to our documentation or try our cloud version .

Features

  • Real-time collaboration
  • Diagrams (Draw.io, Excalidraw and Mermaid)
  • Spaces
  • Permissions management
  • Groups
  • Comments
  • Page history
  • Search
  • File attachments
  • Embeds (Airtable, Loom, Miro and more)
  • Translations (10+ languages)

Screenshots

home editor

License

Docmost core is licensed under the open-source AGPL 3.0 license.
Enterprise features are available under an enterprise license (Enterprise Edition).

All files in the following directories are licensed under the Docmost Enterprise license defined in packages/ee/License.

  • apps/server/src/ee
  • apps/client/src/ee
  • packages/ee

Contributing

See the development documentation

Thanks

Special thanks to;

Crowdin

Crowdin for providing access to their localization platform.

Algolia-mark-square-white

Algolia for providing full-text search to the docs.

Languages
TypeScript 96%
CSS 3.8%