菜单

富文本编辑器

相关源文件

目的与范围

本文档提供了关于 vue-element-admin 框架中富文本编辑器组件的详细信息。内容涵盖了 Tinymce 和 Markdown Editor 这两个主要编辑器组件的实现和使用。这些组件能够实现具有丰富格式的内容创建和编辑,这对于管理后台的内容管理功能至关重要。

来源

概述

Vue Element Admin 系统提供了两种不同的富文本编辑器,以满足不同的内容创建需求。

  1. Tinymce 编辑器 - 功能齐全的所见即所得 HTML 编辑器。
  2. Markdown 编辑器 - 用于 Markdown 内容的双窗格编辑器。

下图展示了这些编辑器如何融入组件架构。

来源

Tinymce 编辑器

Tinymce 编辑器提供了一个全面的所见即所得 (WYSIWYG) 编辑体验。它被实现为一个 Vue 组件,集成了 TinyMCE 富文本编辑器库。

实现细节

Tinymce 组件围绕动态加载模式构建,该模式在运行时从 CDN 加载 TinyMCE 库。这种方法可以在保持包体积可控的同时,提供完整的编辑器功能。

来源

属性和配置

Tinymce 组件接受以下属性进行配置:

属性类型默认描述
id字符串生成的唯一 ID编辑器实例的唯一标识符。
value字符串''编辑器内容 (v-model)
toolbar数组默认工具栏数组自定义工具栏配置
menubar字符串'file edit insert view format table'菜单栏配置
height数字/字符串360编辑器高度
width数字/字符串'auto'编辑器宽度

来源

功能和能力

编辑器包含许多插件和工具栏选项,用于富内容编辑。

  1. 文本格式化 - 加粗、斜体、下划线、删除线等。
  2. 结构 - 列表、表格、标题、缩进。
  3. 媒体 - 插入图片(使用自定义上传组件)。
  4. 代码 - 代码片段,HTML 编辑。
  5. 全屏模式 - 扩展的编辑区域。

插件配置包括:

advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount

来源

使用示例

要在组件中使用 Tinymce 编辑器,请:

来源

Markdown 编辑器

Markdown 编辑器提供双窗格的 Markdown 内容编辑体验。它被实现为一个 Vue 组件,包装了 TOAST UI Editor 库。

实现细节

MarkdownEditor 组件集成了 TOAST UI Editor 库,同时提供了 Markdown 编辑和预览功能。

来源

属性和配置

MarkdownEditor 组件接受以下属性:

属性类型默认描述
value字符串''编辑器内容 (v-model)
id字符串生成的唯一 ID编辑器实例的唯一标识符。
options对象defaultOptions编辑器配置选项。
mode字符串'markdown'编辑器模式('markdown' 或 'wysiwyg')。
height字符串'300px'编辑器高度
language字符串'en_US'编辑器语言。

来源

功能和能力

Markdown 编辑器提供了一些关键功能:

  1. 双窗格编辑 - 在一个窗格中编辑 Markdown,在另一个窗格中查看渲染后的输出。
  2. 模式切换 - 在 Markdown 和所见即所得编辑模式之间切换。
  3. 自定义工具栏 - 根据需要配置工具栏项。
  4. 国际化 - 支持多种语言。
  5. HTML 导出 - 从 Markdown 内容生成 HTML。

使用示例

基本用法

仅 Markdown 模式

自定义工具栏

来源

数据流和生命周期管理

下图展示了两个编辑器组件的数据流和生命周期管理。

来源

最佳实践

在您的应用程序中实现富文本编辑器时,请考虑以下最佳实践:

  1. 编辑器选择:

    • 当您需要全面的 HTML 编辑功能时,请使用 **Tinymce**。
    • 当您的内容遵循 Markdown 格式或用户偏好 Markdown 时,请使用 **Markdown 编辑器**。
  2. 性能考量:

    • 两种编辑器都需要加载外部库,这可能会影响初始加载时间。
    • Tinymce 使用动态加载来提高性能。
  3. 内容处理:

    • 请注意,Tinymce 生成 HTML,而 Markdown 编辑器可以同时输出 Markdown 和 HTML。
    • 在存储或显示来自富文本编辑器的 HTML 内容之前,请务必对其进行清理。
  4. 集成:

    • 使用 v-model 进行双向数据绑定,支持两种编辑器。
    • 当您需要更多控制时,请利用显式方法(setValue、getValue 等)。

来源

组件关系

下图展示了富文本编辑器与系统中其他组件的关联方式。

来源