Hi David,
CMS-9502 is annoying indeed; saving an empty '
htmlcleaner.id' property in the document type editor seems to be broken. Fortunately you can still create such a property via the console. It's described at [1] (sort of). For example, to set an empty '
htmlcleaner.id' property in the 'answer' field of the 'faq' document type in our hippogogreen demo, you would create the node
/hippo:namespaces/hippogogreen/faq/editor:templates/_default_/answer/cluster.options (type 'frontend:pluginconfig')
and then create an empty String property called '
htmlcleaner.id' in that node. That would disable server-side HTML cleaning for that particular field. To disable it globally, empty the property
/hippo:namespaces/hippostd/html/editor:templates/_default_/
htmlcleaner.id
However, CKEditor also applies client-side HTML cleaning (as you experienced). That can be tweaked via the 'extraAllowedContent' property of CKEditor [2]. The syntax of that property is described at [3]. For your case, you could set the following ckeditor.config.overlayed.json [1] property:
{
extraAllowedContent: 'i[class]'
}
As described at [1], you can either configure this globally (e.g. at /hippo:namespaces/hippostd/html/editor:templates/_default_/ckeditor.config.overlayed.json) or per document type field in its cluster.options node.
There will be one more snag: the CMS will not render FontAwesome icons since the font is not included. So to make it really nice you would have to create a custom CKEditor plugin that enables users to select a FontAwesome icon, e.g. from a gallery of available icons (then they also don't have to go into scary Source mode to add an icon). That plugin can then also take care of including the FontAwesome icon in the CMS. For more information on how to create custom CKEditor plugin, see [4].