将Fontawesome添加到ckeditor

时间:2013-07-11 09:26:00

标签: ckeditor font-awesome

我在我的网站上使用Fontawesome并拥有自己的CMS来编辑网站页面。我想开发的是一个用户对话框,他可以选择一个fontawesome图标,但现在可以将它们添加到ckeditor的代码视图中。

添加到内容中的图标未显示在ckeditor designview中。我更改了ckeditor配置文件,以便编辑器接受i标签(*)。我将fontawesome CSS文件作为@import规则添加到contents.css中,但在编辑器区域中仍然没有可见的fontawesome图标。

(*)config.js

config.allowedContent = true;
config.ProtectedTags = 'i' ;
config.protectedSource.push( /<i[\s\S]*?\>/g ); //allows beginning <i> tag
config.protectedSource.push( /<\/i[\s\S]*?\>/g ); //allows ending </i> tag

我可以做些什么来完成这项工作?

5 个答案:

答案 0 :(得分:4)

config.protectedSource.push( /<i class[\s\S]*?\>/g );
config.protectedSource.push( /<\/i>/g );

你所拥有的东西会干扰img标签。 AND OR,在所有配置之后:

CKEDITOR.dtd.$removeEmpty['i'] = false;

两者都运作良好。确保在进行更改时已完全清除缓存。

*编辑 一个人在搞乱其他事情的同时工作。一个没有解决方案。

我停止使用这个庞大的编辑器。创造了我自己的。 但是,要解决此问题,请使用EM或SPAN代替I标记。

答案 1 :(得分:1)

当您向protectedSource设置添加内容时,您将其隐藏在编辑器中,该内容将转换为HTML注释以保护它并避免用户可以修改它,但作为注释它显然是隐藏的

答案 2 :(得分:0)

我使用的是4.11.4,此解决方案无法正常工作

此解决方案可在4.11.4上正常工作

config.protectedSource.push( /<i class[\s\S]*?\><\/i>/g ); // Font Awesome fix

祝你好运

答案 3 :(得分:0)

代替:

config.protectedSource.push(/<i class[\s\S]*?\><\/i>/g );

使用更强大和最佳的方式:

config.protectedSource.push(/<i class="fa[s|r|l|b] [A-Za-z0-9\-]+"><\/i>/g);

因为当用户从另一个来源粘贴内容时,CKEDITOR.dtd应该删除空的或将转换为语义,但是只能删除class =“ fas / far / fal / fab *”的字体图标。应该保留。

(字体命名为https://fontawesome.com/how-to-use/on-the-web/setup/getting-started

答案 4 :(得分:-2)

看看这个:ckeditor fontawesome addon

基本上,您应该以zip格式下载fontawesome插件,然后使用名称&#34; fontawesome&#34;提取到&#34; ckeditor / plugins /&#34;。 然后,打开&#34; ckeditor / config.js&#34;并发出新插件的使用信号:

config.extraPlugins = 'fontawesome';
config.contentsCss = 'path/to/your/font-awesome.css';
config.allowedContent = true;

接下来就是编辑HTML的部分:

<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>

最后一步是使用toolbargroupname:&#34; FontAwesome&#34;在工具栏中:

config.toolbar = [
    { name: 'insert', items: [ 'FontAwesome', 'Source' ] }
];

这是demo

这也适用于glyphicons,与使用fontawesome的方式相同。

干杯