目前,我们只是为几个编辑器功能定义了内容转换,但是在将来发布的版本中数量会增加。
允许内容规则(Allowed Content Rules)
注意:高级内容过滤器是在CKEditor 4.1中引入的。
简介
允许内容规则定义了允许哪些HTML元素、属性、样式和类。当配置CKEditor时,你将对设置CKEDITOR.config.allowedContent选项最感兴趣。插件开发人员也需要设置CKEDITOR.config.allowedContent属性,告诉编辑器在自动模式中一项功能所允许哪些内容。
允许内容规则通常包括四个主要部分:
-
允许的元素,
-
这些元素可以有的属性,
-
这些元素可以有的样式,
-
这些元素可以有的类。
注意:替代书写“属性(attributes)、样式(styles)和类(classes)”,使用“属性”(properties)作为简便的描述方法。
对于一个元素可以存在多项规则,一个元素可以被包含在多个元素列表中。例如,每一个规则可以允许另一元素属性集。
规则是一个一个地应用的。初始时,被过滤的元素是无效的,其所有属性都被拒绝。应用于该元素的第一条规则校验它(它不会被删除),并且该规则可能接受某些元素的属性。另一条规则可能使编辑器接受更多的元素属性。因此:
-
如果一个元素不存在规则,则删除它。
-
可能接受一个元素,但拒绝其所有的属性,然后就被删除。
-
一旦被验证,一个元素和它的属性不能被另一规则使之失效。
字符串格式(String Format)
字符串格式是允许内容规则的紧凑表示法,但它没有提供对象格式中可用的所有功能。但是,在大多数情况下,应该够用了。
规则格式:
elements [attributes]{styles}(classes)
正则表达式模板:
<elements><styles, attributes, and classes><separator> /^([a-z0-9*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,
其中:
-
elements – 一列由空格分隔的元素名或一个星号(*)字符,
-
attributes –一列由逗号分隔的属性名或一个星号(*)字符,
-
styles –一列由逗号分隔的样式名或一个星号(*)字符,
-
classes –一列由逗号分隔的类或一个星号(*)字符,
特殊字符: