Skip to content

portabletext/editor

Repository files navigation

Portable Text Logo

Portable Text Editor Monorepo

Portable Text is an open specification for structured block content. Rich text, images, code blocks, and any custom type you define, stored as JSON and renderable anywhere.

This monorepo contains @portabletext/editor, the officially supported editor for working with Portable Text content. It's a headless, schema-driven block content editor for React: you bring the UI, the editor handles the editing. The other packages in this repository support editor work, including schema definition, toolbar hooks, plugins, conversion to and from HTML and Markdown, and testing utilities.

Looking to render Portable Text? The renderers (@portabletext/react, @portabletext/to-html, and friends) live in separate repositories. See Render Portable Text for the full picture.

For documentation and guides, visit portabletext.org. To try the editor, head to the Portable Text Playground.

Portable Text Playground

Core

Package Description
@portabletext/editor The official editor for editing Portable Text
@portabletext/schema Define and compile Portable Text schemas with full type safety
@portabletext/toolbar React hooks for building toolbars and related UI components

Editor Plugins

Package Description
@portabletext/plugin-character-pair-decorator Automatically match a pair of characters and decorate the text in between
@portabletext/plugin-emoji-picker Easily configure an Emoji Picker for the Portable Text Editor
@portabletext/plugin-input-rule Easily configure Input Rules in the Portable Text Editor
@portabletext/plugin-markdown-shortcuts Adds helpful Markdown shortcuts to the editor
@portabletext/plugin-one-line Restricts the Portable Text Editor to a single line
@portabletext/plugin-paste-link Allows pasting links in the Portable Text Editor
@portabletext/plugin-typeahead-picker Generic typeahead picker infrastructure (emoji, mentions, slash commands)
@portabletext/plugin-sdk-value Connects a Portable Text Editor with a Sanity document using the SDK
@portabletext/plugin-typography Automatically transform text to typographic variants

Other Libraries

Package Description
@portabletext/html Convert HTML to Portable Text
@portabletext/block-tools Sanity-flavored HTML to Portable Text (wraps html)
@portabletext/markdown Convert Portable Text to Markdown and back again
@portabletext/keyboard-shortcuts Platform-aware keyboard shortcuts
@portabletext/sanity-bridge Convert between Sanity schemas and Portable Text schemas
@portabletext/patches Apply Sanity patches to a value
@portabletext/test Testing utilities for the Portable Text Editor
racejar A testing framework agnostic Gherkin driver