Back to Plate

Horizontal Rule

content/(plugins)/(elements)/horizontal-rule.mdx

53.0.52.3 KB
Original Source
<ComponentPreview name="basic-blocks-demo" /> <PackageInfo>

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
</PackageInfo>

Kit Usage

<Steps>

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.

<ComponentSource name="basic-blocks-kit" />
  • HrElement: Renders horizontal rule elements.

Add Kit

Add the kit to your plugins:

tsx
import { createPlateEditor } from 'platejs/react';
import { BasicBlocksKit } from '@/components/editor/plugins/basic-blocks-kit';

const editor = createPlateEditor({
  plugins: [
    // ...otherPlugins,
    ...BasicBlocksKit,
  ],
});
</Steps>

Manual Usage

<Steps>

Installation

bash
npm install @platejs/basic-nodes

Add Plugin

Include HorizontalRulePlugin in your Plate plugins array when creating the editor.

tsx
import { HorizontalRuleRules } from '@platejs/basic-nodes';
import { HorizontalRulePlugin } from '@platejs/basic-nodes/react';
import { createPlateEditor } from 'platejs/react';

const editor = createPlateEditor({
  plugins: [
    // ...otherPlugins,
    HorizontalRulePlugin,
  ],
});

Configure Plugin

You can enable the built-in markdown shorthand on HorizontalRulePlugin:

tsx
import { HorizontalRulePlugin } from '@platejs/basic-nodes/react';
import { createPlateEditor } from 'platejs/react';

const editor = createPlateEditor({
  plugins: [
    // ...otherPlugins,
    HorizontalRulePlugin.configure({
      inputRules: [HorizontalRuleRules.markdown({ variant: '-' })],
    }),
  ],
});
  • HorizontalRuleRules.markdown({ variant: '-' }): Enables ---.

Insert Toolbar Button

You can add this item to the Insert Toolbar Button to insert horizontal rules:

tsx
{
  icon: <MinusIcon />,
  label: 'Divider',
  value: KEYS.hr,
}
</Steps>

Plugins

HorizontalRulePlugin

Plugin for inserting horizontal rules to separate content. Horizontal rules are void elements that render as <hr> tags by default.