如何在Ckeditor 4中将MS Word智能引号和em-dashes转换为简单的引号和短划线

时间:2016-01-19 00:30:14

标签: html-entities ckeditor4.x

您好我非常喜欢新的Ckeditor 4高级内容过滤以及pastefromword插件 - 并且已经阅读了有关允许和不允许的HTML标签的文档,我理解为什么它将我的客户端的MS Word垃圾转换为ヶ辆即可。 但是,我想做一些干预并将智能引号转换为直接引号 - 并且所有em都会破解为简单破折号而不允许 - 在文本发送到CMS数据库之前。但我找不到任何关于此或示例的文档。

我可以看到在旧论坛Ckeditor论坛http://ckeditor.com/forums/CKEditor-3.x/Replacing-smart-quotes-regular-quoteshttp://ckeditor.com/forums/CKEditor-3.x/Problem-copyingpasting-MS-Word上有很多关于此的问题,但他们没有得到答案。

我也希望ckeditor团队能够阅读这些论坛,因为这是他们建议我们现在发布问题的地方。

1 个答案:

答案 0 :(得分:5)

CKEditor dev here。

如果您希望Paste From Word插件执行此操作,您可以在插件中添加一个替换文本节点内容的规则。

要实现此目的,请在此处的某处添加名为“text”的属性(与“comment”属性位于同一级别): https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/pastefromword/filter/default.js#L1106

它应该是一个接受一个参数的函数 - 文本节点内容,例如:

text: function( content ) {
    return content.replace(/[\u201E\u201C]/g,'"'); // Unicode for „ and “
}

这样,只要PFW插件过滤器遇到文本节点,它就会用上面提到的函数返回的内容替换它的内容。

警告:有很多 Unicode符号代表引号和短划线。

顺便说一下:你可能不想过于依赖当前的Paste From Word插件 - 我们正在为v4.6计划一个主要的重构。

我希望这很有帮助。