Loading...
Features
- Insert horizontal lines to separate content or indicate topic shifts
- Type three dashes (
---
) at a new line start to transform into a horizontal rule - Renders as
<hr>
HTML element by default
Kit Usage
Installation
The fastest way to add the horizontal rule plugin is with the BasicBlocksKit
, which includes pre-configured HorizontalRulePlugin
along with other basic block elements and their Plate UI components.
HrElement
: Renders horizontal rule elements.
Add Kit
Add the kit to your plugins:
import { createPlateEditor } from 'platejs/react';
import { BasicBlocksKit } from '@/components/editor/plugins/basic-blocks-kit';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
...BasicBlocksKit,
],
});
Manual Usage
Installation
pnpm add @platejs/basic-nodes
Add Plugin
Include HorizontalRulePlugin
in your Plate plugins array when creating the editor.
import { HorizontalRulePlugin } from '@platejs/basic-nodes/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
HorizontalRulePlugin,
],
});
Configure Plugin
You can configure the HorizontalRulePlugin
with autoformat rules to automatically convert typed patterns like ---
into horizontal rules.
import { insertNodes, setNodes, KEYS } from 'platejs';
import { AutoformatPlugin } from '@platejs/autoformat';
import { HorizontalRulePlugin } from '@platejs/basic-nodes/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
HorizontalRulePlugin,
AutoformatPlugin.configure({
options: {
rules: [
{
mode: 'block',
type: KEYS.hr,
match: ['---', '—-', '___ '],
format: (editor) => {
setNodes(editor, { type: KEYS.hr });
insertNodes(editor, {
type: KEYS.p,
children: [{ text: '' }],
});
},
},
],
},
}),
],
});
AutoformatPlugin
: Automatically converts typed patterns (like---
) into horizontal rules.
Insert Toolbar Button
You can add this item to the Insert Toolbar Button to insert horizontal rules:
{
icon: <MinusIcon />,
label: 'Divider',
value: KEYS.hr,
}
Plugins
HorizontalRulePlugin
Plugin for inserting horizontal rules to separate content. Horizontal rules are void elements that render as <hr>
tags by default.