ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â ð shadcn/directory/udecode/plate/(plugins)/(elements)/column.cn â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
title: åæ docs:
column-group-node å·¥å
·æ éæ©å€ç§åæ æ ·åŒæå¿«æ·çæ¹åŒæ¯äœ¿çš ColumnKitïŒå®å
å«é¢é
眮ç ColumnPlugin å ColumnItemPlugin 以å Plate UI ç»ä»¶ã
ColumnGroupElement: æž²æåæ ç»å®¹åšColumnElement: æž²æåäžªåæ é¡¹å°å¥ä»¶å å ¥æä»¶å衚ïŒ
import { createPlateEditor } from 'platejs/react';
import { ColumnKit } from '@/components/editor/plugins/column-kit';
const editor = createPlateEditor({
plugins: [
// ...å
¶ä»æä»¶,
...ColumnKit,
],
});
</Steps>
npm install @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';
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',
}
</Steps>
ColumnPluginäžºææ¡£æ·»å åæ åèœã
ColumnItemPluginäžºææ¡£æ·»å åæ é¡¹åèœã
TColumnGroupElementç»§æ¿èª TElementã
TColumnElementç»§æ¿èª TElementã
insertColumnGroupæå ¥å å«äž€äžªç©ºæ çåæ ç»ã
<API name="insertColumnGroup"> <APIOptions type="InsertNodesOptions & { columns?: number[] | number }"> - `columns`: æ 宜æ°ç»æçå®œåæ æ°éïŒé»è®€ïŒ2ïŒ - å ¶ä» `InsertNodesOptions` çšäºæ§å¶æå ¥è¡äžº <APIItem name="columns" type="number[] | number" optional> æ 宜æ°ç»æçå®œåæ æ°éïŒé»è®€ïŒ2ïŒ </APIItem> <APIItem name="...InsertNodesOptions" type="InsertNodesOptions"> å ¶ä»æ§å¶æå ¥è¡äžºçé项 </APIItem> </APIOptions> </API>insertColumnæå ¥äžäžªç©ºæ ã
<API name="insertColumn"> <APIOptions type="InsertNodesOptions & { width?: string }"> <APIItem name="width" type="string" optional> åæ å®œåºŠïŒé»è®€ïŒ"33%"ïŒ </APIItem> <APIItem name="...InsertNodesOptions" type="InsertNodesOptions"> å ¶ä»æ§å¶æå ¥è¡äžºçé项 </APIItem> </APIOptions> </API>moveMiddleColumnå°äžéŽæ åå·Šæåå³ç§»åšã
<API name="moveMiddleColumn"> <APIParameters> <APIItem name="nodeEntry" type="NodeEntry"> åæ å çŽ çèç¹ entry </APIItem> <APIItem name="options" type="{ direction: 'left' | 'right' }"> æ§å¶äžéŽæ ç§»åšæ¹å </APIItem> </APIParameters> <APIReturns type="boolean"> è¥äžéŽèç¹äžºç©ºåè¿å `false`ïŒå¹¶ç§»é€è¯¥èç¹ïŒïŒåŠåè¿å `true`ã </APIReturns> </API>toggleColumnGroupå°åºå蜬æ¢äžºåæ ç»åžå±ææŽæ°ç°æåæ ç»çåžå±ã
<API name="toggleColumnGroup"> - è¥ç®æ åºåäžæ¯åæ ç»ïŒåå°å ¶å è£¹åšæ°çåæ ç»äžå¹¶å建æå®æ°éçåæ - è¥ç®æ åºåå·²æ¯åæ ç»ïŒåäœ¿çš `setColumns` æŽæ°å ¶åžå± - åå§å å®¹å°æäžºç¬¬äžæ çå 容 - å ¶ä»æ å°åå»ºç©ºæ®µèœ <APIOptions type="object"> <APIItem name="at" type="Location" optional> åæ¢åæ ç»çäœçœ® </APIItem> <APIItem name="columns" type="number" optional> èŠå建ççå®œåæ æ°éïŒé»è®€ïŒ2ïŒ </APIItem> <APIItem name="widths" type="string[]" optional> æ 宜æ°ç»ïŒåŠ ['50%', '50%']ïŒïŒäŒå 级é«äº `columns` </APIItem> </APIOptions> </API>setColumnsæŽæ°ç°æåæ ç»çåžå±ã
<API name="setColumns"> - å¢å åæ æ¶ïŒ - ä¿çç°ææ å 容 - æ·»å æå®å®œåºŠçæ°ç©ºæ - åå°åæ æ¶ïŒ - å°è¢«ç§»é€æ çå 容åå¹¶å°æåäžæ - æŽæ°å©äœæ ç宜床 - åæ æ°éäžåæ¶ïŒ - ä» æŽæ°æ 宜 <APIOptions type="object"> <APIItem name="at" type="Path"> åæ ç»å çŽ çè·¯åŸ </APIItem> <APIItem name="columns" type="number" optional> èŠå建ççå®œåæ æ°é </APIItem> <APIItem name="widths" type="string[]" optional> æ 宜æ°ç»ïŒåŠ ['33%', '67%']ïŒïŒäŒå 级é«äº `columns` </APIItem> </APIOptions> </API>useDebouncePopoverOpenâ â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ