MCPcopy Index your code
hub / github.com/bangle-io/banger-editor

github.com/bangle-io/banger-editor @v2.0.0-alpha.17

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0-alpha.17 ↗ · + Follow
423 symbols 1,157 edges 85 files 44 documented · 10% updated 5d agov2.0.0-alpha.20 · 2026-07-03★ 674
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Banger Editor: ProseMirror Made Easy

Banger Editor aims to provide missing pieces of ProseMirror components so you don't have to build them from scratch. And trust me, you don't want to build them from scratch.

Why Banger Editor?

  • :battery: Batteries Included: Everything you need to get started with ProseMirror.
  • :spider_web: Framework Agnostic: Vanilla JS at its core, but works great with React. Vue support coming soon!
  • :+1: Pure ProseMirror: No extra abstractions, just pure ProseMirror. Compatible with libraries like tiptap, milkdown, and novel.
  • :hammer_and_wrench: Headless & Customizable: Use our shadcn/ui-like components or build your own.

Getting Started

npm install banger-editor

[!NOTE] Example Repo: banger-vite-react-starter

Peer Dependencies

Banger Editor uses ProseMirror packages directly. You'll need to install the ones you need.

New to ProseMirror? Install these:

npm install orderedmap prosemirror-commands prosemirror-dropcursor prosemirror-flat-list prosemirror-gapcursor prosemirror-history prosemirror-inputrules prosemirror-keymap prosemirror-model prosemirror-schema-basic prosemirror-state prosemirror-transform prosemirror-view

Extension points exported contracts — how you extend this code

EditorTestContext (Interface)
(no doc)
packages/pm-markdown/src/__tests__/pm-markdown.spec.ts
ExportMapResult (Interface)
(no doc)
packages/tooling/packager/common.ts
ActiveNodeConfig (Interface)
(no doc)
packages/banger-editor/src/active-node.ts
SetVersionConfig (Interface)
(no doc)
packages/tooling/packager/set-version.ts
DropCursorOptions (Interface)
(no doc)
packages/banger-editor/src/drop-gap-cursor.ts
SetVersionContext (Interface)
(no doc)
packages/tooling/packager/set-version.ts
NodeOffsetCalculationArgs (Interface)
(no doc)
packages/banger-editor/src/drag/helpers.ts
PublishConfigType (Interface)
(no doc)
packages/tooling/packager/packager.ts

Core symbols most depended-on inside this repo

collection
called by 52
packages/banger-editor/src/common/collection.ts
getNodeType
called by 41
packages/banger-editor/src/pm-utils/helpers.ts
getMarkType
called by 31
packages/banger-editor/src/pm-utils/helpers.ts
setPriority
called by 24
packages/banger-editor/src/common/collection.ts
findParentNodeOfType
called by 19
packages/banger-editor/src/pm-utils/selection.ts
resolve
called by 19
packages/banger-editor/src/common/collection.ts
keybinding
called by 16
packages/banger-editor/src/common/keybinding.ts
filterCommand
called by 10
packages/banger-editor/src/pm-utils/commands.ts

Shape

Function 377
Method 25
Interface 17
Class 4

Languages

TypeScript100%

Modules by API surface

packages/tooling/packager/packager.ts33 symbols
packages/banger-editor/src/pm-utils/helpers.ts28 symbols
packages/banger-editor/src/list.ts23 symbols
packages/banger-editor/src/link/link.ts20 symbols
packages/banger-editor/src/common/collection.ts18 symbols
packages/banger-editor/src/image.ts16 symbols
packages/banger-editor/src/code.ts14 symbols
packages/banger-editor/src/pm-utils/transforms.ts12 symbols
packages/banger-editor/src/pm-utils/selection.ts12 symbols
packages/banger-editor/src/blockquote.ts12 symbols
packages/pm-markdown/src/__tests__/pm-markdown.spec.ts11 symbols
packages/banger-editor/src/paragraph.ts11 symbols

For agents

$ claude mcp add banger-editor \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact