๐Ÿ“ Sign Up | ๐Ÿ” Log In

โ† Root | โ†‘ Up

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“„ shadcn/directory/udecode/plate/(guides)/plugin-context.cn โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘

title: ๆ’ไปถไธŠไธ‹ๆ–‡ description: ็†่งฃๅนถๅˆฉ็”จ Plate ๆ’ไปถไธญ็š„ๆ’ไปถไธŠไธ‹ๆ–‡ใ€‚

ๆ’ไปถไธŠไธ‹ๆ–‡ๆ˜ฏไธ€ไธชๅœจๆ‰€ๆœ‰ๆ’ไปถๆ–นๆณ•ไธญ้ƒฝๅฏ็”จ็š„ๅฏน่ฑก๏ผŒๆไพ›ไบ†ๅฏน็ผ–่พ‘ๅ™จๅฎžไพ‹ใ€ๆ’ไปถ้…็ฝฎๅ’Œๅฎž็”จๅ‡ฝๆ•ฐ็š„่ฎฟ้—ฎใ€‚

่ฎฟ้—ฎๆ’ไปถไธŠไธ‹ๆ–‡

ๆ’ไปถๆ–นๆณ•

ๆ’ไปถไธŠไธ‹ๆ–‡ไฝœไธบ็ฌฌไธ€ไธชๅ‚ๆ•ฐๅœจๆ‰€ๆœ‰ๆ’ไปถๆ–นๆณ•ไธญๅฏ็”จ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  handlers: {
    onKeyDown: (ctx) => {
      // ctx ๅฐฑๆ˜ฏๆ’ไปถไธŠไธ‹ๆ–‡
      console.info(ctx.editor, ctx.plugin);
    },
  },
});

getEditorPlugin

ๅฝ“ๆ‚จ้œ€่ฆ่ฎฟ้—ฎๅ…ถไป–ๆ’ไปถ็š„ไธŠไธ‹ๆ–‡ๆ—ถ๏ผŒ่ฟ™ไธชๅ‡ฝๆ•ฐ็‰นๅˆซๆœ‰็”จใ€‚ๅฎƒๆ”ฏๆŒ่ทจๆ’ไปถ้€šไฟกๅ’Œไบคไบ’๏ผŒๅฎž็Žฐๆ›ดๅคๆ‚ๅ’Œ็›ธไบ’ๅ…ณ่”็š„ๆ’ไปถ่กŒไธบใ€‚

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  handlers: {
    onKeyDown: ({ editor }) => {
      const linkCtx = getEditorPlugin(LinkPlugin);
    },
  },
});

useEditorPlugin

ๅœจ React ็ป„ไปถไธญ๏ผŒๆ‚จๅฏไปฅไฝฟ็”จ useEditorPlugin ้’ฉๅญๆฅ่ฎฟ้—ฎๆ’ไปถไธŠไธ‹ๆ–‡๏ผš

const MyComponent = () => {
  const { editor, plugin, type } = useEditorPlugin(MyPlugin);
  
  return <div>{type}</div>;
};

ๆ’ไปถไธŠไธ‹ๆ–‡ๅฑžๆ€ง

editor

ๅฝ“ๅ‰็š„ PlateEditor ๅฎžไพ‹๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  handlers: {
    onChange: ({ editor }) => {
      console.info('็ผ–่พ‘ๅ™จๅ†…ๅฎน:', editor.children);
    },
  },
});

plugin

ๅฝ“ๅ‰ๆ’ไปถ็š„้…็ฝฎ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  handlers: {
    onKeyDown: ({ plugin }) => {
      console.info('ๆ’ไปถ้”ฎๅ:', plugin.key);
    },
  },
});

getOption

่Žทๅ–ๆ’ไปถ็‰นๅฎš้€‰้กนๅ€ผ็š„ๅ‡ฝๆ•ฐ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  options: { myOption: 'default' },
  handlers: {
    onClick: ({ getOption }) => {
      const myOption = getOption('myOption');
      console.info('้€‰้กนๅ€ผ:', myOption);
    },
  },
});

getOptions

่Žทๅ–ๆ’ไปถๆ‰€ๆœ‰้€‰้กน็š„ๅ‡ฝๆ•ฐ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  options: { option1: 'value1', option2: 'value2' },
  handlers: {
    onClick: ({ getOptions }) => {
      const options = getOptions();
      console.info('ๆ‰€ๆœ‰้€‰้กน:', options);
    },
  },
});

setOption

่ฎพ็ฝฎๆ’ไปถ็‰นๅฎš้€‰้กนๅ€ผ็š„ๅ‡ฝๆ•ฐ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  options: { count: 0 },
  handlers: {
    onClick: ({ setOption }) => {
      setOption('count', 1);
    },
  },
});

setOptions

่ฎพ็ฝฎๆ’ไปถๅคšไธช้€‰้กน็š„ๅ‡ฝๆ•ฐ๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  options: { option1: 'value1', option2: 'value2' },
  handlers: {
    onClick: ({ setOptions }) => {
      setOptions({
        option1: 'newValue1',
        option2: 'newValue2',
      });
    },
  },
});

type

ไธŽๆ’ไปถๅ…ณ่”็š„่Š‚็‚น็ฑปๅž‹๏ผš

const MyPlugin = createPlatePlugin({
  key: 'myPlugin',
  node: { type: 'myNodeType' },
  handlers: {
    onKeyDown: ({ type }) => {
      console.info('่Š‚็‚น็ฑปๅž‹:', type);
    },
  },
});
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โ† Root | โ†‘ Up