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

โ† Root | โ†‘ Up

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“„ shadcn/directory/udecode/plate/(plugins)/(functionality)/caption.cn โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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

title: ๆ ‡้ข˜็ป„ไปถ description: ไธบๅ›พ็‰‡ใ€่ง†้ข‘ใ€ๆ–‡ไปถ็ญ‰ๅช’ไฝ“ๅ…ƒ็ด ๆทปๅŠ ๆ ‡้ข˜่ฏดๆ˜Žใ€‚ docs:

  • route: /docs/components/caption title: ๆ ‡้ข˜็ป„ไปถ

<ComponentPreview name="media-demo" /> <PackageInfo>

ๅŠŸ่ƒฝ็‰นๆ€ง

  • ไธบๅ›พ็‰‡ใ€่ง†้ข‘ใ€้Ÿณ้ข‘ๆ–‡ไปถ็ญ‰ๅช’ไฝ“ๅ…ƒ็ด ๆทปๅŠ ๆ ‡้ข˜่ฏดๆ˜Ž
  • ้€š่ฟ‡ๆ–นๅ‘้”ฎๅœจๅŒบๅ—ๅ†…้€‰ๆ‹ฉๆ ‡้ข˜
  • ไฝฟ็”จๆ–‡ๆœฌๅŒบๅŸŸ็ป„ไปถ่ฟ›่กŒๅ†…่”ๆ ‡้ข˜็ผ–่พ‘
</PackageInfo>

ๅฅ—ไปถไฝฟ็”จ

<Steps>

ๅฎ‰่ฃ…

ๆœ€ๅฟซๆท็š„ๆ–นๅผๆ˜ฏไฝฟ็”จMediaKitๅฅ—ไปถ๏ผŒๅฎƒๅŒ…ๅซ้ข„้…็ฝฎ็š„CaptionPluginไปฅๅŠๅช’ไฝ“ๆ’ไปถๅ’Œๅฎƒไปฌ็š„Plate UI็ป„ไปถใ€‚

<ComponentSource name="media-kit" />
  • Caption: ไธบๅช’ไฝ“ๅ…ƒ็ด ๆธฒๆŸ“ๆ ‡้ข˜็ป„ไปถ

ๆทปๅŠ ๅฅ—ไปถ

import { createPlateEditor } from 'platejs/react';
import { MediaKit } from '@/components/editor/plugins/media-kit';

const editor = createPlateEditor({
  plugins: [
    // ...ๅ…ถไป–ๆ’ไปถ
    ...MediaKit,
  ],
});
</Steps>

ๆ‰‹ๅŠจ้…็ฝฎ

<Steps>

ๅฎ‰่ฃ…

npm install @platejs/caption

ๆทปๅŠ ๆ’ไปถ

import { CaptionPlugin } from '@platejs/caption/react';
import { createPlateEditor } from 'platejs/react';

const editor = createPlateEditor({
  plugins: [
    // ...ๅ…ถไป–ๆ’ไปถ
    CaptionPlugin,
  ],
});

้…็ฝฎๆ’ไปถ

้…็ฝฎๅ“ชไบ›ๅช’ไฝ“ๆ’ไปถๅบ”ๆ”ฏๆŒๆ ‡้ข˜ๅŠŸ่ƒฝ๏ผš

import { KEYS } from 'platejs';
import { CaptionPlugin } from '@platejs/caption/react';
import {
  AudioPlugin,
  FilePlugin,
  ImagePlugin,
  MediaEmbedPlugin,
  VideoPlugin,
} from '@platejs/media/react';

const editor = createPlateEditor({
  plugins: [
    // ...ๅ…ถไป–ๆ’ไปถ
    ImagePlugin,
    VideoPlugin,
    AudioPlugin,
    FilePlugin,
    MediaEmbedPlugin,
    CaptionPlugin.configure({
      options: {
        query: {
          allow: [KEYS.img, KEYS.video, KEYS.audio, KEYS.file, KEYS.mediaEmbed],
        },
      },
    }),
  ],
});
  • query.allow: ๆ”ฏๆŒๆ ‡้ข˜ๅŠŸ่ƒฝ็š„ๆ’ไปถ้”ฎๅๆ•ฐ็ป„
</Steps>

ๆ’ไปถ

CaptionPlugin

ไธบๅช’ไฝ“ๅ…ƒ็ด ๆทปๅŠ ๆ ‡้ข˜ๅŠŸ่ƒฝ็š„ๆ’ไปถใ€‚

<API name="CaptionPlugin"> <APIOptions> <APIItem name="query" type="{ allow: string[] }" required> ้…็ฝฎๅ“ชไบ›ๆ’ไปถๆ”ฏๆŒๆ ‡้ข˜ๅŠŸ่ƒฝ <APISubList> <APISubListItem parent="query" name="allow" type="string[]"> ๅฏๆทปๅŠ ๆ ‡้ข˜็š„ๅŒบๅ—ๆ’ไปถ้”ฎๅ </APISubListItem> </APISubList> </APIItem> <APIItem name="focusEndPath" type="Path" optional> ๆ ‡้ข˜ๆœซๅฐพ็š„่š็„ฆ่ทฏๅพ„ - **้ป˜่ฎคๅ€ผ:** `null` </APIItem> <APIItem name="focusStartPath" type="Path" optional> ๆ ‡้ข˜่ตทๅง‹็š„่š็„ฆ่ทฏๅพ„ - **้ป˜่ฎคๅ€ผ:** `null` </APIItem> <APIItem name="visibleId" type="string" optional> ๅฝ“ๅ‰ๅฏ่งๆ ‡้ข˜็š„ID - **้ป˜่ฎคๅ€ผ:** `null` </APIItem> </APIOptions> </API>

็ฑปๅž‹

TCaptionElement

็ปงๆ‰ฟ่‡ชTElementใ€‚

<API name="TCaptionElement"> <APIAttributes> <APIItem name="caption" type="Descendant[]" optional> ๆ ‡้ข˜ๅ€ผ๏ผŒ็”ฑๅญ่Š‚็‚นๆ•ฐ็ป„ๆž„ๆˆ </APIItem> </APIAttributes> </API>

็ป„ไปถ

<Caption>

<API name="Caption"> <APIProps> <APIItem name="options" type="object" optional> ๆ ‡้ข˜็ป„ไปถ็š„้…็ฝฎ้€‰้กน </APIItem> <APIItem name="state" type="object" optional> ๆ ‡้ข˜็ป„ไปถ็š„็Šถๆ€ <APISubList> <APISubListItem parent="state" name="captionString" type="string" optional> ่กจ็คบๆ ‡้ข˜็š„ๅญ—็ฌฆไธฒ </APISubListItem> <APISubListItem parent="state" name="selected" type="boolean" optional> ๆ ‡้ข˜็ป„ไปถๆ˜ฏๅฆ่ขซ้€‰ไธญ </APISubListItem> <APISubListItem parent="state" name="readOnly" type="boolean" optional> ๆ ‡้ข˜็ป„ไปถๆ˜ฏๅฆๅค„ไบŽๅช่ฏปๆจกๅผ </APISubListItem> </APISubList> </APIItem> <APIOptions type="object"> <APIItem name="readOnly" type="boolean" optional> ๆ ‡้ข˜็ป„ไปถๆ˜ฏๅฆๅค„ไบŽๅช่ฏปๆจกๅผ </APIItem> </APIOptions> </APIProps> </API>

<CaptionTextarea>

<API name="CaptionTextarea"> <APIProps> <APIItem name="state" type="object"> ๆ ‡้ข˜ๆ–‡ๆœฌๅŒบๅŸŸ็š„็Šถๆ€ <APISubList> <APISubListItem parent="state" name="textareaRef" type="Ref"> ๆ–‡ๆœฌๅŒบๅŸŸๅ…ƒ็ด ็š„ๅผ•็”จ </APISubListItem> <APISubListItem parent="state" name="captionValue" type="TextareaAutosizeProps['value']"> ๆ–‡ๆœฌๅŒบๅŸŸไธญๆ˜พ็คบ็š„ๆ ‡้ข˜ๅ€ผ </APISubListItem> <APISubListItem parent="state" name="setCaptionValue" type="(value: TextareaAutosizeProps['value']) => void"> ๆ›ดๆ–ฐๆ ‡้ข˜ๅ€ผ็š„ๅ‡ฝๆ•ฐ </APISubListItem> <APISubListItem parent="state" name="readOnly" type="boolean"> ๆ ‡้ข˜็ป„ไปถๆ˜ฏๅฆๅค„ไบŽๅช่ฏปๆจกๅผ </APISubListItem> <APISubListItem parent="state" name="element" type="TCaptionElement"> ๆ ‡้ข˜ๅ…ƒ็ด  </APISubListItem> </APISubList> </APIItem> </APIProps> </API>
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โ† Root | โ†‘ Up