我正在与Quill合作,我正在尝试创建一个自定义污点,在该污点中可能会嵌套多个污点。这样做的目的是,我希望仅当某些条件匹配时才显示部分文本,例如if语句。嵌套部分是因为除了使处理部分变得更容易之外,还可以添加AND和OR运算符,因为我只需要找到父代并迭代子代即可。
到目前为止,我具有以下Blot结构:
class ConditionBlot extends Inline {
static create(value) {
let node = super.create();
node.setAttribute('idCondition', value.idCondition);
node.setAttribute('clause', value.clause);
node.setAttribute('color', value.color);
node.setAttribute('idConditionBox', value.idConditionBox);
return node;
}
static formats(node) {
return {
idCondition: node.getAttribute('idCondition'),
clause: node.getAttribute('clause'),
color: node.getAttribute('color'),
idConditionBox: node.getAttribute('idConditionBox')
};
}
}
ConditionBlot.blotName = 'condition';
ConditionBlot.tagName = 'condition';
问题在于,即使从用户选择中已经有条件印迹,当我从“羽毛笔”编辑器调用formatText()
函数时,它也不会嵌套印迹。但是,如果有不同的污点,它会嵌套它。
在与同事交谈时,他建议我使用羊皮纸提供的create()
函数动态创建印迹,并更改每个印迹的标签名称,从而嵌套印迹。我想知道这是否是唯一可行的解决方案,或者是否有另一种方法可以实现这一目标。
还有其他方法可以使用常规的Quill方法插入具有相同blotName的嵌套印迹吗?