âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â ð shadcn/directory/udecode/plate/(plugins)/(functionality)/(utils)/exit-break.cn â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
æå¿«æ·çæ¹åŒæ¯äœ¿çš ExitBreakKitïŒå®å
å«é¢é
眮ç ExitBreakPlugin åé®çå¿«æ·é®ã
import { createPlateEditor } from 'platejs/react';
import { ExitBreakKit } from '@/components/editor/plugins/exit-break-kit';
const editor = createPlateEditor({
plugins: [
// ...å
¶ä»æä»¶,
...ExitBreakKit,
],
});
</Steps>
import { ExitBreakPlugin } from 'platejs';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...å
¶ä»æä»¶,
ExitBreakPlugin,
],
});
import { ExitBreakPlugin } from 'platejs';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...å
¶ä»æä»¶,
ExitBreakPlugin.configure({
shortcuts: {
insert: { keys: 'mod+enter' },
insertBefore: { keys: 'mod+shift+enter' },
},
}),
],
});
shortcuts.insert: å®ä¹éåºå¹¶åšä¹åæå
¥æ°åçé®çå¿«æ·é®shortcuts.insertBefore: å®ä¹éåºå¹¶åšä¹åæå
¥æ°åçé®çå¿«æ·é®ExitBreakPluginæäŸèªåšéåºåµå¥åç»æç蜬æ¢åèœã该æä»¶éè¿æ¥æŸå 讞æ ååå åŒèç¹çéŠäžªç¥å èç¹æ¥ç¡®å®åéçéåºäœçœ®ã
<API name="ExitBreakPlugin"> <APIOptions> <APIItem name="shortcuts" type="object" optional> é®çå¿«æ·é®é 眮 <APISubList> <APISubListItem parent="shortcuts" name="insert" type="Shortcut" optional> éåºå¹¶åšä¹åæå ¥åçå¿«æ·é® - **瀺äŸ:** `{ keys: 'mod+enter' }` </APISubListItem> <APISubListItem parent="shortcuts" name="insertBefore" type="Shortcut" optional> éåºå¹¶åšä¹åæå ¥åçå¿«æ·é® - **瀺äŸ:** `{ keys: 'mod+shift+enter' }` </APISubListItem> </APISubList> </APIItem> </APIOptions> </API>éåºååèœäœ¿çš isStrictSiblings 屿§æ¥ç¡®å®éåºåµå¥ç»ææ¶æ°åçæå
¥äœçœ®ã
è§Šåéåºåæ¶ïŒ
isStrictSiblings: false çç¥å
èç¹ä»£ç åïŒ
<codeblock> // â éåºç¹ïŒé¡¶å±åïŒ
<codeline>代ç |</codeline> // â èµ·å§äœçœ®
</codeblock>
<p>|</p> // â åšæ€å€æå
¥æ°æ®µèœ
åäžçè¡šæ ŒïŒåšè¡šæ Œå±çº§éåºïŒïŒ
// ç¬¬äžæ¬¡éåº
<column_group>
<column>
<table> // â éåºç¹ïŒisStrictSiblings: falseïŒ
<tr> // isStrictSiblings: true
<td> // isStrictSiblings: true
<p>å
容|</p> // â èµ·å§äœçœ®
</td>
</tr>
</table>
<p>|</p> // â åšæ€å€æå
¥æ°æ®µèœ
</column>
</column_group>
// ç¬¬äºæ¬¡éåº
<column_group> // â éåºç¹ïŒisStrictSiblings: falseïŒ
<column> // isStrictSiblings: true
<table>
<tr>
<td>
<p>å
容</p>
</td>
</tr>
</table>
<p>|</p> // â èµ·å§äœçœ®
</column>
</column_group>
<p>|</p> // â åšæ€å€æå
¥æ°æ®µèœ
䞺èªå®ä¹æä»¶é
眮 isStrictSiblingsïŒ
// è¡šæ Œç»æ
const CustomTablePlugin = createSlatePlugin({
key: 'table',
node: {
isElement: true,
// isStrictSiblings: false (é»è®€åŒ) - å
讞段èœå
åŒèç¹
},
});
const CustomTableRowPlugin = createSlatePlugin({
key: 'tr',
node: {
isElement: true,
isStrictSiblings: true, // ä»
å
讞 tr å
åŒèç¹
},
});
const CustomTableCellPlugin = createSlatePlugin({
key: 'td',
node: {
isElement: true,
isStrictSiblings: true, // ä»
å
讞 td/th å
åŒèç¹
},
});
â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ