Skip to main content

Wagtail 的 TinyMCE 编辑器集成

项目描述

Wagtail TinyMCE 将 TinyMCE 富文本编辑器集成到 Wagtail CMS中。

从 Wagtail 1.5 开始,它使用 Wagtail 的替代富文本编辑器功能集成,不需要额外的自定义或修补。

安装

wagtailtinymce添加到您的INSTALLED_APPS Django 设置中

在您的设置中添加或更改WAGTAILADMIN_RICH_TEXT_EDITORS以使用小部件wagtailtinymce.rich_text.TinyMCERichTextArea

例如,要对所有RichTextFieldRichTextBlock实例使用 TinyMCE:

WAGTAILADMIN_RICH_TEXT_EDITORS = {
    'default': {
        'WIDGET': 'wagtailtinymce.rich_text.TinyMCERichTextArea'
    },
}

或者,在某些情况下使用 TinyMCE……

WAGTAILADMIN_RICH_TEXT_EDITORS = {
    'default': {
        'WIDGET': 'wagtail.wagtailadmin.rich_text.HalloRichTextArea'
    },
    'tinymce': {
        'WIDGET': 'wagtailtinymce.rich_text.TinyMCERichTextArea'
    },
}

…并在editor参数中使用相应的键声明字段:

html_field = RichTextField(editor='tinymce', ...)
stream_field = StreamField([('html', RichTextBlock(editor='tinymce', ...)), ...])

TinyMCE 配置

TinyMCERichTextArea构造函数接受按钮、菜单和选项的关键字参数,这些参数与默认值合并并传递给 TinyMCE 。

但是,Wagtail 目前不允许将参数传递给此构造函数。要更改配置,您必须创建和注册TinyMCERichTextArea的子类,并在子类构造函数中传递这些参数或修改默认值。

纽扣

这些被配置为菜单栏列表,每个包含一个组列表,每个包含一个按钮名称列表。

默认情况下,TinyMCE 加载了撤消/重做、样式下拉列表、粗体/斜体、列表和表格、链接/取消链接、Wagtail 文档/图像/嵌入、粘贴过滤器切换和全屏编辑按钮。

选项

这是一个字典。默认情况下,TinyMCE 加载了以下选项集:

  • browser_spellcheck

  • noneditable_leave_contenteditable(Wagtail 图像/嵌入处理需要)

  • 语言(取自 Django 设置)

  • 语言加载

TinyMCE 插件和工具

TinyMCE 加载了以下插件:

  • 小时

  • 代码

  • 全屏

  • 不可编辑( Wagtail图像/嵌入处理需要)

  • 粘贴

  • (和可插入工具)

要向 TinyMCE 添加更多插件和工具,请使用 insert_tinymce_jsinsert_tinymce_css挂钩。设置好钩子后,使用以下 JavaScript 向 TinyMCE 注册插件:

registerMCEPlugin(name, path, language);

例如:

registerMCEPlugin('myplugin', '/static/js/my-tinymce-plugin.js', 'en_GB');

语言参数是可选的,可以省略。

一个完整的wagtail_hooks.py文件示例:

import json

from django.templatetags.static import static
from django.utils import translation
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from wagtail.wagtailcore import hooks

@hooks.register('insert_tinymce_js')
def my_plugin_js():
    return format_html(
        """
        <script>
            registerMCEPlugin("myplugin", {});
        </script>
        """,
        mark_safe(json.dumps(static('js/my-tinymce-plugin.js'))),
        to_js_primitive(translation.to_locale(translation.get_language())),
    )

版本控制

此软件包的版本号是 TinyMCE 版本,后面是该 TinyMCE 版本的此软件包的发行号。

变化

4.2.1.5 (2016-06-08)

  • 根据 Wagtail 1.5.1 Hallo 编辑器更改 doclink 编辑修复。

  • 更改页面选择器以使用与 Wagtail 1.5.1 Hallo 编辑器一致的父页面 ID。

4.2.1.4 (2016-06-01)

  • 更新为使用 Wagtail 1.5 可插入富文本编辑器机制。

  • 重构链接和 doclink 插件以消除竞争条件。

  • 根据 Wagtail 1.5 Hallo 编辑器添加链接编辑和取消链接。

  • 修复了使用链接编辑器编辑文档链接的问题。

  • 重构设置以允许每个字段变化。

  • 使默认菜单/工具栏设置更加 Wagtail 友好。

4.2.1.3(未发布)

  • 没有变化。

4.2.1.2(未发布)

  • 添加更多按钮和菜单栏设置。

  • 坚持 TinyMCE 内容在更改时形成,以避免在预览时因验证错误而丢失内容。

4.2.1.1(未发布)

  • 与页面/文档链接处理程序相关的错误修复。

  • 添加图像/嵌入编辑(需要自定义 Wagtail)。

  • 添加图像/嵌入标题字段(需要自定义 Wagtail)。

4.2.1.0(未发布)

  • 初始发行。

执照

此软件包版权所有 (c) 2016,Isotoma Limited 保留所有权利。

如果满足以下条件,则允许以源代码和二进制形式重新分发和使用,无论是否经过修改:

  • 源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。

  • 二进制形式的再分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。

  • 未经事先明确的书面许可,不得使用 Isotoma Limited 的名称或其贡献者的名称来认可或推广源自该软件的产品。

本软件由版权所有者和贡献者“按原样”提供,并且不提供任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,ISOTOMA LIMITED 均不对任何直接、间接、偶然、特殊、示例性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断)承担责任) 无论是由何种责任理论引起的,无论是在合同、严格责任或侵权行为(包括疏忽或其他方式)中,以任何方式因使用本软件而引起,即使已被告知存在此类损害的可能性。

归因

此软件包包括在 LGPLv2.1 下获得许可的 TinyMCE 4.x。

TinyMCE 的图标由http://icomoon.io 服务生成和提供。

Document 图标来自 Wagtail 自己的图标字体,由http://icomoon.ico服务生成和提供。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

wagtailtinymce-4.2.1.5.zip (2.3 MB 查看哈希

已上传 source