CKEditor for Plone
项目描述
简介
如何安装
您可以将其作为任何Plone插件进行安装。请遵循官方文档。
代码源可以在https://github.com/collective/collective.ckeditor找到
请在此处报告问题https://github.com/collective/collective.ckeditor/issues
依赖项
Plone >= 4
翻译
此产品已被翻译成
西班牙语。
法语。
意大利语。
您可以为我们缺少的消息或其他新语言做出贡献,加入我们,在Transifex.net服务中与全世界的Plone翻译者社区一起加入Plone Collective团队。
升级
转到ZMI–>portal_setup–>Upgrades,选择“collective.ckeditor:default”配置文件并执行升级步骤。
4.3.0
版本 4.3.0 带有增强的 图片 插件(image2)。该插件默认未启用,因为它会移除默认图片插件(image)提供的一些高级功能。然而,增强图片 插件提供与图片一起添加标题的能力,并且更加用户友好。
要启用插件,您需要通过通用设置 propertiestool.xml 配置 ckeditor_properties
<?xml version="1.0"?> <object name="portal_properties" meta_type="Plone Properties Tool"> <object name="ckeditor_properties" meta_type="Plone Property Sheet"> <property name="removePlugins" type="lines"> <element value="image"/> </property> <property name="plugins" type="lines"> <element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/> <element value="image2;/++resource++ckeditor/plugins/image2/plugin.js"/> </property> </object> </object>
这将禁用默认的 image 插件并启用 image2 插件。
image2 插件包含两个特定设置(只能通过通用设置进行配置)
<?xml version="1.0"?> <object name="portal_properties" meta_type="Plone Properties Tool"> <object name="ckeditor_properties" meta_type="Plone Property Sheet"> <property name="image2_captionedClass" type="string">image</property> <property name="image2_alignClasses" type="lines"> <element value="image-left"/> <element value="image-dummy"/> <element value="image-right"/> </property> </object> </object>
这些设置是 image2_captionedClass 和 image2_alignClasses。上面的值是默认值。
如果您启用此插件,您还需要设置 Plone 以接受 figcaption 标签。
这可以通过配置 HTML 过滤器来完成,例如使用设置处理器
def enable_figcaption(p): """ Allow figcaption as valid tag in portal_transforms safe_html""" from Products.PortalTransforms.Transform import make_config_persistent pt = getToolByName(p, 'portal_transforms') tid = 'safe_html' if not tid in pt.objectIds(): return trans = pt[tid] tconfig = trans._config validtags = tconfig['valid_tags'] validtags.update({'figcaption': 1}) make_config_persistent(tconfig) trans._p_changed = True trans.reload() log.info('added figcaption as valid tag')
CKEditor插件
balloontoolbar插件
自版本 4.8.0 以来提供
默认情况下未启用,此插件提供设置上下文相关工具栏的 API。
要启用插件,请将 balloontoolbar;/++resource++ckeditor/plugins/balloontoolbar/plugin.js 添加到 CKEditor 控制面板(@@ckeditor-controlpanel)中的 插件 字段。
uploadimage插件
自版本 4.7.0 以来提供
默认启用,此插件管理对拖放到编辑器中的图片的上传支持。
nonbreaking插件
自版本 4.4.5 以来提供。
启用时,此插件提供用于插入非断行字符的键盘快捷键
Ctrl-Alt-Space 用于非断行空格,
Ctrl-Alt-Hyphen 用于非断行连字符。
相应按钮也可以在工具栏中进行配置
NbSpace
NbHyphen
要启用插件,请将 nonbreaking;/++resource++cke_nonbreaking/plugin.js 添加到 CKEditor 控制面板(@@ckeditor-controlpanel)中的 插件 字段。
或通过通用设置 propertiestool.xml 配置 ckeditor_properties
<?xml version="1.0"?> <object name="portal_properties" meta_type="Plone Properties Tool"> <object name="ckeditor_properties" meta_type="Plone Property Sheet"> <property name="plugins" type="lines"> <element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/> <element value="nonbreaking;/++resource++cke_nonbreaking/plugin.js"/> </property> </object> </object>
tableresize插件
启用时,此插件可以轻松通过拖放从左到右和从右到左来更改表格列的宽度。
要启用插件,请将 tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js 添加到 CKEditor 控制面板(@@ckeditor-controlpanel)中的 插件 字段。
或通过通用设置 propertiestool.xml 配置 ckeditor_properties
<?xml version="1.0"?> <object name="portal_properties" meta_type="Plone Properties Tool"> <object name="ckeditor_properties" meta_type="Plone Property Sheet"> <property name="plugins" type="lines" purge="False"> <element value="tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js"/> </property> </object> </object>
开发
在检出 collective.ckeditor 源代码后,运行包含的 buildout。
这将安装并运行 copy_ckeditor_code 脚本。它负责将 ckeditor 代码复制到适当的 browser/ckeditor 目录。
browser/ckeditor 目录使 ckeditorjavascript 代码在浏览器中可通过以下路径访问
http://yourplonesite/++resource++ckeditor/
如何发布
显然,ckeditor 代码也需要包含在发布的 eggs 中。
collective.ckeditor 为 zest.releaser 注册了一个入口点,如果调用正确,将在准备发布时处理代码的复制。
但是,为了利用入口点,您必须使用开发 buildout 本地安装的 bin/fullrelease,而不是全局安装的 fullrelease。
只有本地的 bin/fullrelease 脚本可以看到 collective.ckeditor 注册的入口点。
如何更新到CKEditor的新版本
适用于 CKEditor 4
转到 dev/build-ckeditor
在 image2.sh、moono.sh、scayt 和 wsc 中更新插件版本的计算,这些文件位于 scayt.sh
运行以下命令 CKEDITOR_VERSION=4.x.x make
运行 bin/copy_ckeditor_code
进行测试
添加未跟踪的文件 git add ../../src/collective/ckeditor/_src/ckeditor/
提交更改
如果您需要未压缩的 JS 代码进行调试,可以将步骤 3 替换为
MINIFIED_JS=--leave-js-unminified CKEDITOR_VERSION=4.x.x make
测试状态
此插件使用 Travis CI 进行测试。当前插件的状态是
致谢
公司
贡献者
Kai Lautaportti <kai.lautaportti@hexagonit.fi>
Giacomo Spettoli <giacomo.spettoli@gmail.com>
Godefroid Chapelle <gotcha@bubblenet.be>
Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>
Jean-Mat Grimaldi <jeanmat.grimaldi@gmail.com>
Michael Smith <msmith64@naz.edu>
Victor Fernandez de Alba <sneridagh@gmail.com>
Kim Paulissen <spereverde@gmail.com>
Jean-Michel FRANCOIS aka toutpt <toutpt@gmail.com>
Gauthier Bastien <gauthier@imio.be>
Leonardo J. Caballero G. <leonardocaballero@gmail.com>
变更日志
4.10.1 (2021-10-01)
修复 4.10.0 版本中 CKEditor 未正确打包的问题。[aduchene]
使用 zest.releaser = 6.22.1。[aduchene]
4.10.0 (2021-06-11)
将不允许的内容选项添加到黑名单内容。[naro, gotcha]
4.9.1 (2021-02-12)
添加 Transifex.net 服务集成以管理翻译过程。[macagua]
添加西班牙语翻译。[macagua]
AjaxSave 插件,当没有任何更改时显示消息(内容已保存(没有更改)。)[gbastien]
AjaxSave 插件,添加 async:true 属性,因此可以将其设置为 async:false 并确保在继续之前保存内容。[gotcha, gbastien]
4.9.0 (2019-09-12)
更新到 CKEditor 4.12.1 [gotcha]
4.8.3 (2018-11-13)
AjaxSave 插件,防御无法遍历的对象,如 plone.registry 记录 [gotcha]
4.8.2 (2018-10-12)
重构 AjaxSave 插件
修复 Archetypes 的 bug
支持 plone.app.contenttypes
支持 formlib portlets
[gotcha]
4.8.1 (2018-07-10)
CKEditor 语言与编辑视图语言一致 [gotcha]
4.8.0 (2018-06-22)
更新到 CKEditor 4.9.2 包括未启用的 balloons toolbar 插件 [gotcha]
4.7.2 (2017-12-15)
使 uploadimage 和 resolveuid 链接成为相对链接。 [gotcha]
4.7.1 (2017-12-08)
uploadimage 支持使用 resolveuid。[gotcha]
4.7.0 (2017-12-01)
启用 uploadwidget 和 uploadimage 插件。相应的升级步骤(现在依赖于 plone.api) [gotcha]
4.6.0 (2017-08-18)
更新到 CKEditor 4.7.2 [gotcha]
4.5.0 (2017-02-24)
为 CKEditor 皮肤添加设置:彩色或平面按钮
默认皮肤仍然是 Moonocolor,彩色按钮。平面按钮来自新的 Moono-lisa 皮肤(见 https://ckeditor.npmjs.net.cn/addon/moono-lisa) [gotcha]
为了避免在默认 Plone 4 皮肤中的按钮出现难看的底部边框:将以下样式添加到您的 CSS 中
#content a.cke_button { border-bottom: 0; } #content a.cke_button:hover { border-bottom: #ccc 0.1em solid; }
更新到 CKEditor 4.6.2 [gotcha]
4.4.5 (2016-11-23)
nonbreaking 插件:用于插入非断行空格和连字符。[gotcha]
4.4.4 (2016-05-02)
修复过载设置:它应该是一个空字典而不是 None [gotcha]
4.4.3 (2016-05-02)
为 formlib wysiwyg 小部件启用设置过载。[gotcha]
4.4.2 (2016-04-13)
修复 filexxxBrowserUrl 小部件的定制,根据语言设置 [gotcha]
4.4.1 (2016-04-13)
为 plone.app.z3cform wysiwyg 小部件启用设置过载。[gotcha]
根据语言,启用文件xxxBrowserUrl的每个小部件的定制功能。[注意事项]
4.4.0 (2016-03-11)
在注册表中存储自定义工具栏。(通过之前的更改,启用每个小部件不同的工具栏)[注意事项]
改进每个小部件的设置覆盖功能。[注意事项]
只有当您是经过身份验证的用户时才加载js。[bsuttor]
4.3.5 (2016-02-16)
修复在弹窗窗口中点击主图片时ckeditor中的图片预览问题。[boulch]
4.3.4 (2016-01-21)
修复在添加小部件时由plone.app.form.widgets.wysiwygwidget调用时的ckeditor_plone_config.js的上下文。[注意事项]
4.3.3 (2016-01-20)
修复在编辑小部件时由plone.app.form.widgets.wysiwygwidget调用时的ckeditor_plone_config.js的上下文。[注意事项]
4.3.2 (2016-01-08)
修复image2_alignClasses的默认值(以及升级步骤)[注意事项]
向build-ckeditor脚本添加不压缩JS的选项。[注意事项]
修复build-ckeditor脚本以保留不使用image2插件的选择。[注意事项]
相应地更新ckeditor。[注意事项]
检查image2_alignClasses的有效性。[注意事项]
4.3.1.1 (2015-01-05)
重新发布包含生成静态资源的egg。[ebrehault]
4.3.1 (2015-12-14)
更新到CKeditor 4.5.6。[注意事项]
添加一些机器人测试。[spreverde, 注意事项]
将默认TableWidth选项添加到控制面板以设置表格对话框窗口中的默认表格宽度。
4.3.0b2 (2014-06-19)
通过GS修复javascript顺序。[montypie]
4.3.0b1 (2014-06-19)
添加image2插件及其依赖项。[注意事项]
将image2_alignClasses和image2_captionedClass设置添加到setup image2插件。[注意事项]
更新到CKeditor 4.4.1。[注意事项]
将removePlugins选项添加到控制面板以允许停用插件。[注意事项]
4.2.0 (2014-06-05)
在resolveuid旁边显示实际url链接对话框。[注意事项]
4.1.1 (2014-03-27)
修复升级步骤以避免覆盖自定义配置。[注意事项]
更新到CKeditor 4.3.4 [注意事项]
4.1 (2014-03-27)
扩展高级内容过滤器(ACF)的设置。[spereverde, 注意事项]
4.0.0 (2014-02-05)
更新到CKeditor 4.3.2 [注意事项]
将extraAllowedContent选项添加到设置过滤器规则。[注意事项]
向后兼容工具栏设置 [注意事项]
迁移到CKeditor 4.2.3 [gbastien]
3.6.12 (2013-09-05)
使SCAYT默认启用/禁用成为可能 [gbastien]
3.6.11 (2013-05-30)
保持与IE<9的兼容性,不要在JS中使用indexOf [gbastien]
3.6.10 (2013-05-30)
更新ckeditor到3.6.6.1 [vincentfretin]
travis设置/构建out基础设施 [kiorky]
3.6.9 (2013-05-29)
在Plone 4.3下工作 [thomasdesvenain]
3.6.8 (2012-12-13)
更新安装和卸载以更改default_editor站点属性而不是wysiwyg_editor成员数据属性。 [maurits]
在确定成员是否想使用CKeditor时,也检查default_editor站点属性。[maurits]
更改外部插件注册的方式。最好使用CKEDITOR.plugins.addExternal的三参数变体,因为这将在插件代码中将插件资源的基本URL作为this.path正确提供。否则this.path将包含插件脚本的完整URL,这会相应地破坏相关资源的加载(图像、翻译等)。 [dokai]
重构ck_ruid_to_url转换以使用plone.app.uuid将UID转换为URL。这避免了使用reference_catalog而是使用portal_catalog,并似乎解决了Dexterity类型通过reference_catalog不可用的问题。 [dokai]
通过re.search方法限制要搜索的字符串长度不超过3000个字符。 [taito]
3.6.7 (2012-08-20)
注意使用绝对URL注册的外部样式表。[注意事项]
修复插件(添加迁移)[kiorky]
刷新翻译 [kiorky]
翻译样式菜单 [kiorky]
3.6.6 (2012-07-05)
修复图像的默认值 [kai.hoppert@tomcom.de]
为ckeditor源添加一个重复的目录:它需要一个更雄心勃勃的补丁,但可以修复开发安装 [kiorky]
3.6.5 (2012-07-04)
修复3.6.4版本中缺失的目录 [encolpe]
3.6.4 (2012-07-03)
修复清单中缺失的rst文件包含 [encolpe]
对browser/ckeditor中提交的最新已知工作的ckeditor进行版本控制 [kiorky]
3.6.3 (2012-07-03)
当字段中的HTML不是允许的内容类型时,不要显示ckeditor。这解决了与Products.Poi的集成问题,其中PoiIssue的详情字段默认只允许text/x-web-intelligent。 [vincentfretin]
修复了查找器以尊重“允许创建文件夹”选项。[dokai]
添加了国际化支持 [giacomos]
添加了意大利语翻译 [giacomos]
根据plone_portal_state.language()修复语言配置 [toutpt]
添加法语翻译 [toutpt]
添加针对Plone的z3c.autoinclude [toutpt]
3.6.2 (2011-12-12)
在README中描述如何发布以确保ckeditor代码包含在egg中。[gotcha]
3.6.2b2 (2011-12-12)
尚未有任何更改。
3.6.2b1 (2011-12-12)
使用ckeditor 3.6.2 [spereverde]
添加ajaxsave插件以允许异步保存。[gotcha]
使用zest.releaser入口点来捆绑ckeditor代码。[gotcha]
3.6.1 (2011-07-14)
尚未有任何更改。
3.6.1rc (2011-07-14)
使用ckeditor 3.6.1 [spereverde]
一些pep8和pyflakes [spereverde]
为templates_replaceContent添加了控制面板设置 [spereverde]
添加自定义模板注册的控制面板设置 [gotcha]
Plone4.1支持 - 修复IVocabularyFactory导入 [msmith64]
3.4.1
使用ckeditor 3.4.1 [macadames]
修复了set_media_type中的错误 [macadames]
修复了mediaupload会话中的错误 [macadames]
3.4
使用ckeditor 3.4
3.3.1b
使用ckeditor 3.3.1 [macadames]
控制面板图标现在位于controlpanel.xml中 [macadames]
使用最后一个Plone4版本使控制面板(和测试)在没有错误的情况下运行……The listTypesForInterface方法已损坏。[macadames]
在collective.plonefinder中使用新媒体上传属性(强制在jquery.uploadify中选中内容类型)[macadames]
添加了对z3c.autoinclude的支持,因此不需要为该包使用zcml slugs。[sneridagh]
3.2.1b
添加了图像大小选择(使用collective.plonefinder提供的新选项)
对collective.plonefinder的最后一次使用进行了一些修复。
3.2.1a
使用ckeditor 3.2.1
plone 4兼容性
删除iw.resourcetraverser依赖关系
从皮肤中删除wysiwyg_support(不再有用)
控制面板改进
添加或改进了功能doctests
添加了FAQ
添加了buildout示例,以帮助使用svn产品的开发者
javascript上下文配置现在已打包
添加了本地字段小部件设置覆盖
更改了portal_transforms resolveuid
修复了所有basehref问题
通过控制面板完成菜单样式
通过控制面板完成工具栏
3.0.2
使用ckeditor 3.0.2
3.0
初始发布
CKEditor for Plone : FAQ
- 如何完全删除Plone中任何ckeditor的痕迹?
使用Plone控制面板 > 插件 > 在ZMI中移除产品 > portal_properties移除‘ckeditor_properties’,您将销毁所有注册的ckeditor参数。
- 如何为Plone安装新的CKeditor版本?
始终阅读此FAQ从一种版本到另一种版本,可能需要运行通用设置升级步骤以迁移ckeditor_properties表单。
- 如何使用collective.ckeditor的svn版本?
只需查看此包中的buildout/buildout.cfg和buildout/sources.cfg。检出标准plone4 buildout。将标准plone4 buidout进行diff以查看您需要更改的部分。您需要在sources.cfg中添加svn地址,在egg和zcml部分中添加‘ckeditor’,以及在‘ckeditor’部分……
- 如何完全覆盖ckeditor配置以使用您自己的javascript配置?
只需在您的ZMI > portal_skins > Custom或皮肤产品中创建一个名为‘ckeditor_plone_config.js’的javascript文件。