跳转到主要内容

Wagtail的TinyMCE编辑器集成

项目描述

Wagtail TinyMCE提供将TinyMCE富文本编辑器集成到Wagtail CMS的解决方案。

自Wagtail 1.5起,此集成使用Wagtail的替代富文本编辑器功能,无需额外的自定义或修补。

安装

wagtailtinymce 添加到您的 INSTALLED_APPS Django 设置 中。

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

例如,为了使用 TinyMCE 处理所有 RichTextFieldRichTextBlock 实例

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 图像/嵌入处理所必需)

  • language(从 Django 设置中获取)

  • language_load

TinyMCE 插件和工具

TinyMCE 载入以下插件

  • hr

  • code

  • fullscreen

  • noneditable(Wagtail 图像/嵌入处理所必需)

  • paste

  • table(和 inserttable 工具)

要向 TinyMCE 添加更多插件和工具,请使用 insert_tinymce_jsinsert_tinymce_css 钩子。一旦您设置了钩子,请使用以下 JavaScript 将插件注册到 TinyMCE

registerMCEPlugin(name, path, language);

例如

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

language 参数是可选的,可以省略。

完整的 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 编辑器添加链接编辑和取消链接。

  • 围绕使用链接编辑器编辑 doclinks 的修复。

  • 重构设置以允许字段级别的变化。

  • 使默认菜单/工具栏设置更适合 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不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论损害是由于何种原因引起的,也不论基于何种责任理论,无论是在合同、严格责任还是侵权(包括疏忽或其他)责任中,即使已告知可能发生此类损害。

归属

此软件包包括TinyMCE 4.x,该软件受LGPLv2.1许可。

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

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

项目详情


下载文件

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

源分布

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

上传时间

支持者