有什么方法可以删除Quill中的特定格式吗



给定Quill 1.3.6和其中的自定义格式化程序,是否有任何方法可以通过编程从整个编辑器中删除所有自定义格式?换句话说,是否有任何方法可以从文档中出现的每个位置删除bold格式?

quill.removeFormat()似乎不是选项,因为它没有按格式为您提供筛选器。

知道吗?

如果将false作为值参数传递给format函数,则可以删除特定类型的格式。

例如,format('bold', false)从当前选择的文本中删除粗体(但没有其他格式(。或formatText(0, 100, 'bold', false)删除前100个字符的粗体格式。

这是在API文档中指定的(尽管它只出现在formatLineformatText中,但它也适用于格式(:https://quilljs.com/docs/api/#formatting

我正在对npm软件包消毒html做类似的事情。

您的用例示例:

import sanitizeHtml from 'sanitize-html';
const dirtyText = '<p>My <strong>dirty</strong> text</p>';
const cleanText = sanitizeHtml(dirtyText, {
exclusiveFilter: (frame) => frame.tag !== 'strong'
});

否则,你可以(我认为更好(用";allowedTags";属性:

import sanitizeHtml from 'sanitize-html';
const dirtyText = '<p>My <strong>dirty</strong> text</p>';
const cleanText = sanitizeHtml(dirtyText, {
allowedTags: ['span', 'p', 'h2', 'a', 'u', 'em', 's']
});

我能够想出这样的解决方案(它似乎没有很好的性能,但正在做我需要的事情(。

const deltas = quill.getContents().map(delta => {
const attributes = delta.attributes;
if (attributes) {
delete attributes['<YOUR ATTRIBUTE TO DELETE>'];
}
return delta;
});
quill.setContents(deltas);

最新更新