custom_undo_redo_levels

此选项应包含要在内存中保留的 undo 级别数量。默认情况下,它设置为使用无限数量的 undo 级别。对于低端系统,custom_undo_redo_levels 的值应为 10 或更低,否则它将占用大量内存。

类型: Number

默认值: unlimited

示例:使用 custom_undo_redo_levels

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  custom_undo_redo_levels: 10
});

end_container_on_empty_block

此选项指定当在空的内部块元素内按下 Enter 键时,当前容器块元素如何拆分。可用的选项有:

  • 始终拆分块;

  • 为特定块元素拆分;或者

  • 完全不拆分块。

类型: Boolean 或 String

默认值: 'blockquote'

可能的值: true、false 或逗号分隔的元素标签名称 String

在 TinyMCE 6.1 之前,此选项仅接受 Boolean 值。

示例:使用 end_container_on_empty_block

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  end_container_on_empty_block: true
});

draggable_modal

使用 draggable_modal 选项可以为 模态对话框启用拖动功能。

类型: Boolean

默认值: false

可能的值: true、false

示例:使用 draggable_modal

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  draggable_modal: true
});

keep_styles

keep_styles 选项将在用户按下 enter/return 时保留编辑器的当前文本样式。

类型: Boolean

默认值: true

可能的值: true、false

示例:使用 keep_styles

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  keep_styles: false
});

newdocument_content

此选项设置当调用 File → New document菜单项时新编辑器包含的内容。

类型: String

默认值: ''

示例:使用 newdocument_content

此示例展示了将 newdocument_content 与 editable_root 选项一起使用,以在不可编辑的根元素内设置一个可编辑元素。

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  editable_root: false,
  newdocument_content: '<div contenteditable="true">Editable content</div>'
});

newline_behavior

此选项允许您调整按下 Enter 或 Return 键时发生的情况。有四个选项:

  • default 在按 Enter 时插入一个块(由 forced_root_block 定义),在按 Shift+Enter 时插入一个 br 标签。

  • block 在所有情况下强制上述 Enter 行为。

  • linebreak 在所有情况下强制上述 Shift+Enter 行为。

  • invert 交换 Enter 和 Shift+Enter 行为。

此选项更改 mceInsertNewLine 命令的行为。insertParagraph 和 InsertLineBreak 命令不受影响。

类型: String

默认值: 'default'

示例:使用 newline_behavior

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  newline_behavior: 'linebreak'
});

object_resizing

此选项允许您开启或关闭图像、表格或媒体对象上的调整大小手柄。此选项默认启用,允许您调整表格和图像的大小。您还可以指定一个 CSS3 选择器,以确定要在其上启用调整大小的元素。

禁用所有图像/表格的调整大小

类型: Boolean、String

默认值: true

可能的值: true、false 或有效的 CSS 选择器

此选项的默认值在移动设备上有所不同。有关默认移动选项的信息,请参阅:TinyMCE Mobile — 具有移动默认值的配置选项。

示例:禁用对象调整大小

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  object_resizing: false
});

仅对图像启用调整大小

类型: Boolean, String

默认值: true

可能的值: true, false, img

示例:对图像启用对象调整大小

tinymce.init({
  selector: 'textarea',  // 根据您的HTML更改此值
  object_resizing: 'img'
});

resize_img_proportional

当用户在编辑器中调整图像大小,此选项控制图像是按比例调整还是自由调整。如果设置为:

  • true — 当用户调整图像大小时,图像将按比例调整(图像的两个维度按相同的百分比长度调整)。用户可以通过在调整大小时按住 Shift 键来自由调整图像大小。

  • false — 当用户调整图像大小时,图像可以自由调整大小。用户可以通过在调整大小时按住 Shift 键来按比例调整图像大小。

类型: Boolean

默认值: true

可能的值: true, false

示例:使用 resize_img_proportional

要禁用按比例调整图像大小:

tinymce.init({
  selector: 'textarea',  // 根据您的HTML更改此值
  resize_img_proportional: false
});

inline_boundaries

此选项允许您禁用内联边界。有关如何更改内联边界外观的信息,请参阅 样板内容CSS页面。

类型: Boolean

默认值: true

可能的值: true, false

示例:使用 inline_boundaries

tinymce.init({
  selector: 'textarea',  // 根据您的HTML更改此值
  inline_boundaries: false
});

inline_boundaries_selector

此选项允许您指定内联边界应应用于哪些元素。默认值为 a[href],code,.mce-annotation,但可以扩展以包含其他内联元素,如 b、strong、i 和 em。

如果您添加了新元素,则需要在内容CSS中为它们添加CSS选择器。有关详细信息,请参阅 样板内容CSS页面。

类型: String

默认值: 'a[href],code,.mce-annotation'

示例:使用 inline_boundaries_selector

tinymce.init({
  selector: 'textarea',  // 根据您的HTML更改此值
  inline_boundaries_selector: 'a[href],code,b,i,strong,em'
});

text_patterns

此选项允许配置在编辑器中输入时匹配的文本模式。文本模式可用于应用格式、替换文本或执行命令。默认情况下,基本的markdown模式已启用,因此用户可以输入 # text 来生成标题,或输入 **text** 来使文本加粗。要禁用文本模式替换,请将选项设置为 false。

有三种类型的模式:inline、block 和 replacement 模式。内联模式有一个 start 和一个 end 文本模式,而块模式和替换模式只有 start。用户可以指定要应用于选区的格式、要执行的命令或要替换的文本。

文本模式中使用的任何格式或命令都需要在编辑器初始化时注册。这可能包括启用相关插件,如 lists 插件。有关以下信息:

类型: Array 或 false

此选项的默认值在TinyMCE 7.0中已更改,有关更多信息,请参阅 更改。

默认值:

default: [
  { start: '*', end: '*', format: 'italic' },
  { start: '**', end: '**', format: 'bold' },
  { start: '#', format: 'h1', trigger: 'space' },
  { start: '##', format: 'h2', trigger: 'space' },
  { start: '###', format: 'h3', trigger: 'space' },
  { start: '####', format: 'h4', trigger: 'space' },
  { start: '#####', format: 'h5', trigger: 'space' },
  { start: '######', format: 'h6', trigger: 'space' },
  { start: '1.', cmd: 'InsertOrderedList', trigger: 'space' },
  { start: '*', cmd: 'InsertUnorderedList', trigger: 'space' },
  { start: '-', cmd: 'InsertUnorderedList', trigger: 'space' },
  { start: '>', cmd: 'mceBlockQuote', trigger: 'space' },
  { start: '---', cmd: 'InsertHorizontalRule', trigger: 'space' }
]
当在 TinyMCE 编辑器配置中设置text_patterns选项时,新值将完全覆盖现有的默认文本模式。这意味着编辑器将使用用户配置中指定的模式,并忽略默认模式。如果要添加新模式而不丢失默认模式,必须在自定义text_patterns数组中包含所有默认模式以及任何额外模式。

内联模式

内联模式必须具有以下内容:

  • 一个start和一个end。

  • 一个format或一个cmd。

    • 如果指定了cmd,则允许使用可选的value属性。

这使得模式可以用于应用格式或执行命令,可选择使用给定的值。

内联模式在按下空格键或Enter键时执行。

示例:使用内联模式

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  // The `link` plugin is required for the `createLink` command
  plugin: 'link',
  text_patterns: [
    { start: '*', end: '*', format: 'italic' },
    { start: '**', end: '**', format: 'bold' },
    { start: '~', end: '~', cmd: 'createLink', value: 'https://tiny.cloud' }
  ]
});

使用此示例中的配置:

  • { start: '*', end: '*', format: 'italic' } - 在`*`之间输入文本,然后按下空格键,将对*符号之间的文本应用italic格式。

  • { start: '**', end: '**', format: 'bold' } - 在`**`之间输入文本,然后按下空格键,将应用bold格式。

  • { start: '~', end: '~', cmd: 'createLink', value: 'https://tiny.cloud' } - 这将执行editor.execCommand('createLink', false, 'https://tiny.cloud'),将~符号之间的文本包装在一个指向https://tiny.cloud的链接中。

块模式

块模式必须具有以下内容:

  • 一个start。

  • 一个format或一个cmd。

    • 如果指定了cmd,则允许使用可选的value属性。

  • 一个trigger,它接受一个可以是'space'或'enter'的字符串,并指定激活键。

块模式没有end属性。这使得模式可以用于应用块格式或执行命令,可选择使用给定的值。

块模式默认在空格键上执行,但可以配置为在Enter上执行。

示例:使用块模式

tinymce.init({
  selector: 'textarea', // change this value according to your HTML
  // The `lists` plugin is required for list-related text patterns
  // The trigger property can be configured to use either space or enter.
  plugin: 'lists',
  text_patterns: [
    { start: '*', end: '*', format: 'italic' },
    { start: '**', end: '**', format: 'bold' },
    { start: '#', format: 'h1', trigger: 'space' },
    { start: '##', format: 'h2', trigger: 'space' },
    { start: '###', format: 'h3', trigger: 'space' },
    { start: '####', format: 'h4', trigger: 'space' },
    { start: '#####', format: 'h5', trigger: 'space' },
    { start: '######', format: 'h6', trigger: 'space' },
    { start: '*', cmd: 'InsertUnorderedList', trigger: 'space' },
    { start: '- ', cmd: 'InsertUnorderedList', trigger: 'enter' },
    { start: '1.', cmd: 'InsertOrderedList', value: { 'list-style-type': 'decimal' }, trigger: 'space' },
    { start: '1) ', cmd: 'InsertOrderedList', value: { 'list-style-type': 'decimal' }, trigger: 'enter' },
    { start: 'a.', cmd: 'InsertOrderedList', value: { 'list-style-type': 'lower-alpha' }, trigger: 'space' },
    { start: 'a) ', cmd: 'InsertOrderedList', value: { 'list-style-type': 'lower-alpha' }, trigger: 'enter' },
    { start: 'i.', cmd: 'InsertOrderedList', value: { 'list-style-type': 'lower-roman' }, trigger: 'space' },
    { start: 'i) ', cmd: 'InsertOrderedList', value: { 'list-style-type': 'lower-roman' }, trigger: 'enter' }
  ]
});

使用此示例中的配置:

  • { start: '#', format: 'h1', trigger: 'space' } - 输入#,然后按下Space将创建一个空的h1标题。

  • 输入1),然后输入一个Space,再输入所需的文本,然后按下Enter;编辑器将把文本转换为一个有序列表,原始文本作为第一个列表项,新行作为第二个列表项。由于我们已经指定了value,此模式将执行editor.execCommand('InsertOrderedList', false, { 'list-style-type': 'decimal'})。

替换模式

替换模式必须具有以下内容:

  • 一个start。

  • 一个replacement,它接受一个可以是文本或 HTML 的字符串。

替换模式插入块元素还是内联元素取决于replacement字符串是什么。

替换模式在按下空格键或Enter键时执行。

示例:使用替换模式

tinymce.init({
  selector: 'textarea',  // 根据你的 HTML 更改此值
  text_patterns: [
    { start: '---', replacement: '<hr/>' },
    { start: '--', replacement: '—' },
    { start: '-', replacement: '—' },
    { start: '(c)', replacement: '©' },
    { start: '//brb', replacement: 'Be Right Back' },
    { start: '//heading', replacement: '<h1 style="color: blue">Heading here</h1> <h2>Author: Name here</h2> <p><em>Date: 01/01/2000</em></p> <hr />' }
  ]
});

使用此示例中的配置:

  • 输入 --- 后按 空格键或Enter键将插入一个水平线块。

  • 输入 (c) 后按 空格键或Enter键将插入内联版权符号。

这对于常用短语或符号非常有用,并且可用于创建内容模板。最后一个模式就是一个例子。

text_patterns_lookup

此选项允许指定一个函数,该函数动态地将额外的文本模式附加到默认的text_patterns中。该函数接受一个上下文对象作为参数,并返回一个文本模式数组。每当编辑器触发文本模式匹配时,就会调用此函数。

类型: 函数

示例:使用 text_patterns_lookup

tinymce.init({
  selector: 'textarea', // 根据你的 HTML 更改此值
  text_patterns_lookup: (ctx) => {
    const parentTag = ctx.block.nodeName.toLowerCase();
    if (parentTag === 'pre') {
      return [
        { start: '`', end: '`', format: 'code' }
      ];
    } else if (parentTag === 'p') {
      return [
        { start: '*', end: '*', format: 'bold' }
      ];
    } else if (parentTag === 'span') {
      return [
        // ctx.text 是从块开始到光标的字符串
        { start: 'brb', replacement: ctx.text + ': Be Right Back' }
      ];
    } else {
      return [];
    }
  }
});

typeahead_urls

此选项控制是否启用或禁用自动补全URL字段功能。

类型: 布尔值

默认值: true

可能的值: true, false

示例:使用 typeahead_urls

tinymce.init({
  selector: 'textarea',  // 根据你的 HTML 更改此值
  typeahead_urls: false
});