我想默认所有文本使用Arial字体样式和12px字体大小。
如果我将这些设置为工具栏的默认设置,则工具栏的UI不会更改为表示您所使用的颜色的颜色(例如,如果我将光标放在样式为15px的某些文本中,日内瓦,字体和大小选择器的用户界面将为蓝色,但是如果我将用户界面默认设置为15和日内瓦,那么每当我将光标放置在以这种方式设置的文本中时,它都将切换为该界面,但用户界面不会具有突出显示的颜色。
要解决此问题,我只是选择不设置默认值。除了我从数据库中读取一些旧值时,这都很好用。 这些旧值看起来像这样,
<p> This is legacy text </p>
并且应默认为Arial字体样式,大小为12px。
因此,理想情况下,我希望Quill将其转换为:
<p>
<span class="ql-font-arial" style="font-size: 12px;">This is legacy text.</span>
</p>
但是创建污点时,我无法让Quill接受子节点。如果我附加一个孩子,则会对其进行优化,因为该孩子将没有任何内容。如果我添加一个子节点并返回一个子节点,则Quill不会确认父节点,并且父节点不会出现在样式中(并且将所有内容放在同一行上,因为现在它只是一个经过优化的巨型span
标记。)< / p>
是否有办法使印迹使用格式本身生一个孩子并将数据粘贴到孩子中? 这就是我现在用来捕获
标签并保持其可能具有的所有对齐格式的方式。
但是我不知道如何将其默认设置为将数据包装在子<span>
标记中。
const BlockBlot = Quill.import('blots/block');
export class PBlot extends BlockBlot {
static create(data: { alignment: string }) {
let node: Element = document.createElement('P');
if (data && data.alignment) {
node.setAttribute('class', `ql-align-${data.alignment.toLowerCase()}`);
}
let sNode = document.createElement('SPAN');
node.appendChild(sNode);
//return sNode;
return node;
}
static formats(node: Element) {
return { alignment: node.getAttribute('align') || undefined };
}
}
PBlot.tagName = 'P';
PBlot.blotName = 'block';