Skip to content

导出项

包提供 35+ 个命名导出,适合高级用法。

组件

ts
import { EmailEditor } from "@fpfe-group/email-editor-ai";

Labels 与 i18n

ts
import { DEFAULT_LABELS, ZH_LABELS } from "@fpfe-group/email-editor-ai";
导出项类型说明
DEFAULT_LABELSEditorLabels默认中文 labels,包含 175+ 个 key
ZH_LABELSEditorLabels中文 labels 预设

序列化

ts
import {
  compileMjml,
  documentToMjml,
  mjmlToDocument,
} from "@fpfe-group/email-editor-ai";
导出项签名说明
documentToMjml(doc: EmailDocument) => string将文档序列化为 MJML 字符串
mjmlToDocument(mjml: string) => EmailDocument将 MJML 字符串解析为文档
compileMjml(mjml: string) => { html: string }将 MJML 编译为 HTML

节点工厂函数

ts
import {
  createDefaultDocument,
  createSection,
  createColumn,
  createText,
  createImage,
  createButton,
  createDivider,
  createSpacer,
  createSocial,
  createHero,
  createWrapper,
} from "@fpfe-group/email-editor-ai";
工厂函数说明
createDefaultDocument()创建包含 body 的空文档
createSection(children?, attrs?)创建 mj-section,可带 columns
createColumn(children?, attrs?)创建 mj-column,可带内容
createText(html?, attrs?)创建 mj-text,可带内容
createImage(attrs?)创建 mj-image,包含 src、alt 等属性
createButton(text?, attrs?)创建带 label 和 link 的 mj-button
createDivider(attrs?)创建 mj-divider 水平线
createSpacer(attrs?)创建 mj-spacer 垂直间距
createSocial(elements?, attrs?)创建带社交链接的 mj-social
createHero(children?, attrs?)创建全宽 mj-hero 区域
createWrapper(children?, attrs?)创建 mj-wrapper 包裹区块

树工具函数

ts
import {
  findNode,
  findParent,
  removeNode,
  moveNode,
  cloneSubtree,
} from "@fpfe-group/email-editor-ai";
工具函数签名说明
findNode(root, id) => EmailNode | null根据 ID 在树中查找节点
findParent(root, id) => EmailNode | null查找节点的父节点
removeNode(root, id) => boolean从树中删除节点
moveNode(root, id, targetParentId, index) => boolean将节点移动到新位置
cloneSubtree(node) => EmailNode深拷贝节点及其全部子节点

常量

ts
import {
  DEFAULT_THEME,
  STATIC_BLOCKS,
  CONTENT_NODE_TYPES,
  CONTAINER_NODE_TYPES,
  SELF_CLOSING_NODE_TYPES,
} from "@fpfe-group/email-editor-ai";
常量类型说明
DEFAULT_THEMERequired<ThemeConfig>25 个主题默认值
STATIC_BLOCKSBlockDefinition[]43 个内置区块定义
CONTENT_NODE_TYPESEmailNodeType[]htmlContent 的节点类型
CONTAINER_NODE_TYPESEmailNodeType[]children 的节点类型
SELF_CLOSING_NODE_TYPESEmailNodeType[]没有内容或子节点的类型

类型守卫

ts
import { isNewEditorJson } from "@fpfe-group/email-editor-ai";
导出项说明
isNewEditorJson(data)如果数据符合 EmailDesignJson 格式,返回 true

类型(TypeScript)

所有类型都可以通过 import type 引入:

ts
import type {
  EmailDocument,
  EmailNode,
  EmailNodeType,
  NodeId,
  EmailHeadAttributes,
  EmailDesignJson,
  BlockDefinition,
  BlockCategory,
  BlockCategoryDefinition,
  PropertyDefinition,
  PropertyType,
  ThemeConfig,
  Plugin,
  PluginContext,
  EditorEventMap,
  EmailEditorAPI,
  ToolbarAction,
  SidebarPanel,
  DevicePreset,
  DragSource,
  DropTarget,
  DropPosition,
} from "@fpfe-group/email-editor-ai";

基于 MIT License 发布,©FPFE — 保留所有权利。
开源不易,且行且珍惜。