Loading…
套件使用
安装
最快捷的方式是使用 ColumnKit,它包含预配置的 ColumnPlugin 和 ColumnItemPlugin 以及 Plate UI 组件。
'use client';
import { ColumnItemPlugin, ColumnPlugin } from '@platejs/layout/react';
import { ColumnElement, ColumnGroupElement } from '@/components/ui/column-node';
export const ColumnKit = [
ColumnPlugin.withComponent(ColumnGroupElement),
ColumnItemPlugin.withComponent(ColumnElement),
];'use client';
import { ColumnItemPlugin, ColumnPlugin } from '@platejs/layout/react';
import { ColumnElement, ColumnGroupElement } from '@/components/ui/column-node';
export const ColumnKit = [
ColumnPlugin.withComponent(ColumnGroupElement),
ColumnItemPlugin.withComponent(ColumnElement),
];ColumnGroupElement: 渲染分栏组容器ColumnElement: 渲染单个分栏项
添加套件
将套件加入插件列表:
import { createPlateEditor } from 'platejs/react';
import { ColumnKit } from '@/components/editor/plugins/column-kit';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
...ColumnKit,
],
});import { createPlateEditor } from 'platejs/react';
import { ColumnKit } from '@/components/editor/plugins/column-kit';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
...ColumnKit,
],
});手动配置
安装
pnpm add @platejs/layoutpnpm add @platejs/layout添加插件
在创建编辑器时将分栏插件加入 Plate 插件数组。
import { ColumnPlugin, ColumnItemPlugin } from '@platejs/layout/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
ColumnPlugin,
ColumnItemPlugin,
],
});import { ColumnPlugin, ColumnItemPlugin } from '@platejs/layout/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
ColumnPlugin,
ColumnItemPlugin,
],
});配置插件
通过自定义组件配置插件来渲染分栏布局。
import { ColumnPlugin, ColumnItemPlugin } from '@platejs/layout/react';
import { createPlateEditor } from 'platejs/react';
import { ColumnGroupElement, ColumnElement } from '@/components/ui/column-node';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
ColumnPlugin.withComponent(ColumnGroupElement),
ColumnItemPlugin.withComponent(ColumnElement),
],
});import { ColumnPlugin, ColumnItemPlugin } from '@platejs/layout/react';
import { createPlateEditor } from 'platejs/react';
import { ColumnGroupElement, ColumnElement } from '@/components/ui/column-node';
const editor = createPlateEditor({
plugins: [
// ...其他插件,
ColumnPlugin.withComponent(ColumnGroupElement),
ColumnItemPlugin.withComponent(ColumnElement),
],
});withComponent: 指定ColumnGroupElement渲染分栏组容器,ColumnElement渲染单个分栏。
转换为工具栏按钮
可将此功能添加至 转换为工具栏按钮 来将区块转为分栏布局:
{
icon: <Columns3Icon />,
label: '3栏布局',
value: 'action_three_columns',
}{
icon: <Columns3Icon />,
label: '3栏布局',
value: 'action_three_columns',
}插件
ColumnPlugin
为文档添加分栏功能。
ColumnItemPlugin
为文档添加分栏项功能。
类型定义
TColumnGroupElement
继承自 TElement。
TColumnElement
继承自 TElement。
转换方法
insertColumnGroup
插入包含两个空栏的分栏组。
insertColumn
插入一个空栏。
moveMiddleColumn
将中间栏向左或向右移动。
toggleColumnGroup
将区块转换为分栏组布局或更新现有分栏组的布局。
setColumns
更新现有分栏组的布局。