From zbeyens. The source code is available on GitHub.

Plate
PlatePliteEditorsTemplates
GitHub16kGitHub
DiscordDiscord
UNPUBLISHED
  • Overview
  • Why This Fork
  • Examples
Walkthroughs
  • Installing Plite
  • Adding Event Handlers
  • Defining Custom Elements
  • Applying Custom Formatting
  • Executing Commands
  • Saving to a Database
  • Canonical Change Substrate
  • Improving Performance
Concepts
  • Interfaces
  • Nodes
  • Locations
  • Transforms
  • Document Changes
  • Commands
  • Editor
  • Extensions
  • Rendering
  • Serializing
  • Normalizing
  • Using TypeScript
  • Roots
  • Document State
  • Editing Behavior
  • Selection And DOM
  • Clipboard And Paste
  • Projection And Overlays
  • Schema
API
  • Anchor API
  • Location API
  • Path API
  • PointEntry API
  • Point API
  • Range API
  • Selection API
  • Location Types APIs
  • Span API
  • Editor
  • Element API
  • NodeEntry API
  • Node API
  • Node Types APIs
  • Text API
  • Debug Value Scrubbing
  • Transforms API
Libraries
  • Plite DOM
  • History Editor API
  • History Extension Setup
  • History
  • Plite History
  • Plite Hyperscript
  • Plite Layout
  • Annotations
  • DOM Coverage Boundaries
  • Editable Component
  • Plite React Event Handling
  • Virtualized Rendering
  • Plite React Hooks
  • React Editor Setup
  • React Editor
  • Plite React
  • Plite Component
  • Plite Yjs
  • Plite
General
  • Migration
  • Contributing
  • Docs Proof Map
  • FAQ
  • Resources

FAQ

PreviousNext

Common questions about paste behavior, browser support, package scope, and proof expectations.

These answers describe the Plite package set.

Why Is Pasted Content Plain Text?

Plite does not know your product schema. It cannot safely turn arbitrary HTML into your nodes without an app-owned policy.

By default, pasted content becomes text. Add a clipboardHandler(...) extension contribution from @platejs/plite-dom when the app wants to consume DataTransfer HTML, files, or custom MIME data. Return true after the handler owns the paste.

Use Plite DOM, Event Handling, and the Paste HTML example as the starting points.

What Browsers And Devices Does Plite Support?

Docs Proof MapResources

On This Page

Why Is Pasted Content Plain Text?What Browsers And Devices Does Plite Support?Is This The Official %%UPSTREAM_PLITE_CAP%% Release?Should Apps Use @platejs/browser?Where Should I Start?
Build your editor
Production-ready AI template and reusable components.
Get all-access

Desktop browser behavior is claimed only where tests and browser proof cover it.

The main local lanes target current Chromium, Firefox, Safari/WebKit, and mobile viewport rows through Playwright. Raw mobile-device behavior is a separate proof lane and should not be inferred from a desktop browser run.

If a behavior depends on native selection, IME, clipboard, drag/drop, hidden DOM, or huge documents, verify it through browser proof before treating it as supported.

Is This The Official %%UPSTREAM_PLITE_CAP%% Release?

No. This is the Plite package set. It keeps a plain JSON document model, but its canonical change engine, runtime, package names, proof harness, and public API are maintained in the Plate repository.

Read Why This Fork for the maintenance philosophy and boundaries.

Should Apps Use @platejs/browser?

Use @platejs/browser for tests and proof harnesses. Do not build product editor features on it.

Apps should build editors with @platejs/plite, @platejs/plite-dom, @platejs/plite-react, and the extensions they need.

Where Should I Start?

Start with Installing Plite. Then read Why This Fork if you need the project boundary, or Migration if you are moving from upstream Slate 0.x.