在 TinyMCE 中添加自定义 html 和 css

Adding custom html and css in TinyMCE

我正在使用 TinyMCE,我想在输出中添加自定义 html/css。在 Tiny 编辑器中创建的所有项目符号列表都应该有这些 css 类 和一个 <i> 标签,如下所示:

<ul class="iconlist">
    <li><i class="icon-double-angle-right"></i> Item 1</li>
    <li><i class="icon-double-angle-right"></i> Item 2</li>
</ul>

有什么方法可以让 Tiny 输出所有项目符号列表的精确 html 吗?

已编辑:我已修改此答案以回应 OP

的评论

您可以使用 content_csscontent_style 配置选项将自定义 CSS 应用于编辑器内容:

https://www.tiny.cloud/docs/configure/content-appearance/#content_css

https://www.tiny.cloud/docs/configure/content-appearance/#content_style

许多 Tiny 实施者使用它来将相同的 CSS 应用于编辑器内的内容,就像稍后在编辑器外的其他地方呈现时将应用于该内容。

但是,要使图标在编辑器中按预期显示,您还需要配置编辑器以允许空 <i> 元素。默认情况下,空的 <i> 元素会从编辑器中移除。您可以使用 extended_valid_elements: 配置选项更改此行为:

https://www.tiny.cloud/docs/configure/content-filtering/#extended_valid_elements

extended_valid_elements: 'i[*]',

所有这些都将允许使用 <i> 元素的外部图标库在 TinyMCE 中运行(缺少每个库可能需要的特定设置)。

编辑添加:

how do I even configure Tiny so that it always adds the <i> element after an <li> element?

一种方法是在 TinyMCE 的序列化器上使用节点过滤器来添加 <i> 元素作为 <li> 元素的第一个子元素。这是一个 Tiny Fiddle 示例(使用 Font Awesome 图标):

https://fiddle.tiny.cloud/R4haab

文档:

https://www.tiny.cloud/docs/api/tinymce.dom/tinymce.dom.serializer/#addnodefilter

在编辑器中获取内容(即 DOM 节点)然后将其转换回基于字符串的 HTML 表示时使用序列化程序。所以在 getContent() 等调用中是 运行。这意味着 <i> 元素不是实时添加的,因为列表元素是插入的,但是只要序列化程序将被添加到 any/all <li> 元素(还没有它) 运行,包括触发保存时,或发布包含 TinyMCE 的表单时。