Loading...
Features
- Quick access to various editor commands
- Triggered by
/
character - Keyboard navigation and filtering
- Customizable command groups and options
Kit Usage
Installation
The fastest way to add slash command functionality is with the SlashKit
, which includes pre-configured SlashPlugin
and SlashInputPlugin
along with their Plate UI components.
SlashInputElement
: Renders the slash command combobox with predefined options
Add Kit
import { createPlateEditor } from 'platejs/react';
import { SlashKit } from '@/components/editor/plugins/slash-kit';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
...SlashKit,
],
});
Manual Usage
Installation
pnpm add @platejs/slash-command
Add Plugins
import { SlashPlugin, SlashInputPlugin } from '@platejs/slash-command/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
SlashPlugin,
SlashInputPlugin,
],
});
Configure Plugins
import { SlashPlugin, SlashInputPlugin } from '@platejs/slash-command/react';
import { createPlateEditor } from 'platejs/react';
import { SlashInputElement } from '@/components/ui/slash-node';
import { KEYS } from 'platejs';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
SlashPlugin.configure({
options: {
trigger: '/',
triggerPreviousCharPattern: /^\s?$/,
triggerQuery: (editor) =>
!editor.api.some({
match: { type: editor.getType(KEYS.codeBlock) },
}),
},
}),
SlashInputPlugin.withComponent(SlashInputElement),
],
});
options.trigger
: Character that triggers the slash command combobox (default:/
)options.triggerPreviousCharPattern
: RegExp pattern for character before triggeroptions.triggerQuery
: Function to determine when slash commands should be enabledwithComponent
: Assigns the UI component for the slash command interface
Usage
How to use slash commands:
- Type
/
anywhere in your document to open the slash menu - Start typing to filter options or use arrow keys to navigate
- Press Enter or click to select an option
- Press Escape to close the menu without selecting
Available options include:
- Text blocks (paragraphs, headings)
- Lists (bulleted, numbered, to-do)
- Advanced blocks (tables, code blocks, callouts)
- Inline elements (dates, equations)
Use keywords to quickly find options. For example, type '/ul' for Bulleted List or '/h1' for Heading 1.
Plate Plus
Plugins
SlashPlugin
Plugin for slash command functionality. Extends TriggerComboboxPluginOptions.
trigger optional string
Character that triggers slash command combobox.
- Default:
'/'
- Default:
triggerPreviousCharPattern optional RegExp
RegExp to match character before trigger.
- Default:
/^\s?$/
- Default:
createComboboxInput optional () => TComboboxInputElement
Function to create combobox input element.
- Default:
() => ({ children: [{ text: '' }], type: KEYS.slashInput, });
triggerQuery optional (editor: PlateEditor) => boolean
Function to determine when slash commands should be enabled. Useful for disabling in certain contexts like code blocks.
SlashInputPlugin
Handles the input behavior for slash command insertion.