• 简体中文
  • Emoji 短码

    EmojiPlugin 将 :smile:、:+1: 等 GitHub 风格的 emoji 短码转换为 Unicode 表情。React、Vue、Svelte、Angular、React Native、Lynx、Solid 和 Taro 的 Full 组件默认包含此插件,Lite 组件可按需添加。

    import { Fluxdown } from 'fluxdown';
    
    export function Message() {
      return <Fluxdown text="Hello :smile: Great work :+1:" />;
    }

    输出为「Hello 😄 Great work 👍」。表情使用系统字体,具体外观取决于设备。

    支持的内容

    短码可用于 Markdown 文本,包括标题、列表、表格和链接文字。未知短码,以及 :smile 这样尚未闭合的输入,会保留原文。流式输出时,已识别的短码在结尾冒号到达后转换为表情。

    行内代码和围栏代码块保留源码。例如,`:smile:` 会显示 :smile:,不会转换为表情。

    引入插件

    各框架的 Full 组件已内置 EmojiPlugin,无需手动注册。使用 Core 或 Lite 组件时,先安装对应的插件包:

    pnpm add @fluxdown/core-plugins

    Core 将 EmojiRemarkPlugin 加入快速开始的 remarks 输入;组件则通过 plugins 扩展预设:

    import { EmojiRemarkPlugin } from '@fluxdown/core-plugins/plugins/remark/emoji';
    
    const remarks = [EmojiRemarkPlugin];

    关闭转换

    将 EmojiPlugin 与 config 放在同一个插件包中,可以按需禁用此功能。Core 使用带 disabled 配置的 remark 插件条目:

    import type { IPluggable, IRemarkPlugin } from '@fluxdown/types';
    
    import { EmojiRemarkPlugin } from '@fluxdown/core-plugins/plugins/remark/emoji';
    
    const remarks: IPluggable<IRemarkPlugin, unknown>[] = [
      [EmojiRemarkPlugin, { disabled: true }],
    ];