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

โ† Root | โ†‘ Up

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“„ shadcn/directory/udecode/plate/(plugins)/(styles)/line-height.cn โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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

title: ่กŒ้ซ˜ docs:

  • route: /docs/components/line-height-toolbar-button title: ่กŒ้ซ˜ๅทฅๅ…ทๆ ๆŒ‰้’ฎ

<ComponentPreview name="line-height-demo" /> <PackageInfo>

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

  • ไธบๆฎต่ฝใ€ๆ ‡้ข˜็ญ‰ๅ—็บงๅ…ƒ็ด ๅบ”็”จ่‡ชๅฎšไน‰่กŒ้ซ˜
  • ๅ‘็›ฎๆ ‡ๅ—็บงๅ…ƒ็ด ๆณจๅ…ฅ lineHeight ๅฑžๆ€ง
</PackageInfo>

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

<Steps>

ๅฎ‰่ฃ…

ๆœ€ๅฟซๆท็š„ๆ–นๅผๆ˜ฏไฝฟ็”จ LineHeightKit๏ผŒๅฎƒๅŒ…ๅซ้ข„้…็ฝฎ็š„ LineHeightPlugin๏ผŒ้’ˆๅฏนๆฎต่ฝๅ’Œๆ ‡้ข˜ๅ…ƒ็ด ใ€‚

<ComponentSource name="line-height-kit" />
  • ้…็ฝฎ Paragraph ๅ’Œ Heading ๅ…ƒ็ด ๏ผˆH1-H6๏ผ‰ๆ”ฏๆŒ lineHeight ๅฑžๆ€ง
  • ๆไพ›้ป˜่ฎค่กŒ้ซ˜ๅ€ผ 1.5 ๅ’Œๆœ‰ๆ•ˆๅ€ผ [1, 1.2, 1.5, 2, 3]

ๆทปๅŠ ๅฅ—ไปถ

ๅฐ†ๅฅ—ไปถๆทปๅŠ ๅˆฐๆ’ไปถไธญ๏ผš

import { createPlateEditor } from 'platejs/react';
import { LineHeightKit } from '@/components/editor/plugins/line-height-kit';

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

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

<Steps>

ๅฎ‰่ฃ…

npm install @platejs/basic-styles

ๆทปๅŠ ๆ’ไปถ

ๅœจๅˆ›ๅปบ็ผ–่พ‘ๅ™จๆ—ถๅฐ† LineHeightPlugin ๅŒ…ๅซๅˆฐ Plate ๆ’ไปถๆ•ฐ็ป„ไธญใ€‚

import { LineHeightPlugin } from '@platejs/basic-styles/react';
import { createPlateEditor } from 'platejs/react';

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

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

ๆ‚จๅฏไปฅ้…็ฝฎ LineHeightPlugin ๆฅๆŒ‡ๅฎš็›ฎๆ ‡ๅ…ƒ็ด ๅนถๅฎšไน‰้ป˜่ฎคๆˆ–ๆœ‰ๆ•ˆ็š„่กŒ้ซ˜ๅ€ผใ€‚

import { LineHeightPlugin } from '@platejs/basic-styles/react';
import { KEYS } from 'platejs/react';
import { createPlateEditor } from 'platejs/react';

const editor = createPlateEditor({
  plugins: [
    // ...ๅ…ถไป–ๆ’ไปถ,
    LineHeightPlugin.configure({
      inject: {
        nodeProps: {
          defaultNodeValue: 1.5,
          validNodeValues: [1, 1.2, 1.5, 2, 3],
        },
        targetPlugins: [KEYS.p, KEYS.h1, KEYS.h2, KEYS.h3],
      },
    }),
  ],
});
  • inject.nodeProps.defaultNodeValue: ่ฎพ็ฝฎ้ป˜่ฎค่กŒ้ซ˜ๅ€ผ๏ผˆๅฆ‚ 1.5๏ผ‰
  • inject.nodeProps.validNodeValues: ๅฎšไน‰ๅธธ็”จ่กŒ้ซ˜ๅ€ผๅˆ—่กจ๏ผŒ้€‚็”จไบŽๅทฅๅ…ทๆ ไธ‹ๆ‹‰่œๅ•
  • inject.targetPlugins: ๆ’ไปถ้”ฎๅๆ•ฐ็ป„๏ผˆๅฆ‚ KEYS.p, KEYS.h1๏ผ‰๏ผŒๆŒ‡ๅฎšๅ“ชไบ›ๅ…ƒ็ด ็ฑปๅž‹ๅฐ†ๆŽฅๆ”ถ lineHeight ๅฑžๆ€ง

ๆทปๅŠ ๅทฅๅ…ทๆ ๆŒ‰้’ฎ

ๆ‚จๅฏไปฅๅœจๅทฅๅ…ทๆ ไธญๆทปๅŠ  LineHeightToolbarButton ๆฅๆŽงๅˆถ่กŒ้ซ˜ใ€‚

</Steps>

ๆ’ไปถ

LineHeightPlugin

็”จไบŽ่ฎพ็ฝฎๅ—็บงๅ…ƒ็ด ่กŒ้ซ˜็š„ๆ’ไปถใ€‚ๅฎƒไผšๅ‘ inject.targetPlugins ๆŒ‡ๅฎš็š„ๅ…ƒ็ด ๆณจๅ…ฅ lineHeight ๅฑžๆ€งใ€‚

<API name="LineHeightPlugin"> <APIOptions type="object"> <APIItem name="inject.nodeProps.defaultNodeValue" type="number" optional> ้ป˜่ฎค่กŒ้ซ˜ๅ€ผ </APIItem> <APIItem name="inject.nodeProps.validNodeValues" type="number[]" optional> ๆœ‰ๆ•ˆ่กŒ้ซ˜ๅ€ผๆ•ฐ็ป„ </APIItem> <APIItem name="inject.targetPlugins" type="string[]" optional> ็›ฎๆ ‡ๆ’ไปถ้”ฎๅๆ•ฐ็ป„๏ผŒ็”จไบŽ่กŒ้ซ˜ๆณจๅ…ฅ - **้ป˜่ฎคๅ€ผ:** `['p']` </APIItem> </APIOptions> </API>

่ฝฌๆขๅ™จ

tf.lineHeight.setNodes

ไธบ็ผ–่พ‘ๅ™จไธญ้€‰ไธญ็š„่Š‚็‚น่ฎพ็ฝฎ่กŒ้ซ˜ใ€‚

<API name="tf.lineHeight.setNodes"> <APIParameters> <APIItem name="value" type="number"> ่กŒ้ซ˜ๅ€ผ </APIItem> <APIItem name="options" type="SetNodesOptions" optional> `setNodes` ๅ‡ฝๆ•ฐ็š„้…็ฝฎ้€‰้กน </APIItem> </APIParameters> </API>
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โ† Root | โ†‘ Up