Что делает метод Quill.js format ()?
Я пытаюсь реализовать собственный стиль для Quill.js, который бы позволял вложенным и (надеюсь) перекрывающимся областям в тексте. Я еще не уверен, как сделать перекрытие, но вложение кажется возможным.
Я сделал обычное расширение блоттинга (в машинописи):
let Inline = Quill.import('blots/inline');
class Comment extends Inline {
static create(value: any) : Node {
let node = super.create();
node.setAttribute('style', 'background-color: PeachPuff;');
node.setAttribute('data-comment-id', value);
node.setAttribute('class', "comment comment" + value);
return node;
}
static formats(domNode: Node) {
return (<Element>domNode).getAttribute('data-comment-id');
}
}
Comment.blotName = 'comment';
Comment.className = 'comment';
Comment.tagName = 'span';
Quill.register({
'formats/comment': Comment
});
Теперь поведение вложения отличается в зависимости от того, что я делаю с методом format (). То, как написано выше, разделит комментарии, когда я попытаюсь их вложить. Если я просто верну true, вложение будет полностью отключено. Если я оставлю это нереализованным, вложенные работы будут работать так, как задумано (один внутри другого), но только пока я оставляю node.setAttribute('style', 'background-color: PeachPuff;');
там. Когда я удаляю эту строку вместе с formats()
-метод форматирования не работает вообще.
Конечно, я не мог просто реализовать formats()
и оставить все как есть. Однако в настоящее время я просто пробую вещи случайным образом, что мне сильно не нравится. Это означает, что я, вероятно, не использую API в полной мере, и у меня могут быть непреднамеренные побочные эффекты и позже будет трудно найти ошибки.
Я читал примеры, искал документы и просматривал исходный код Quill.js и пергамента, но я не мудрый. Хотя мне очень нравится Quill, документации, к сожалению, не хватает.
Кто-нибудь с более глубоким пониманием, пожалуйста, объясните мне, что делает этот метод, или, может быть, как Quill/Parchment выполняет преобразование / нормализацию формата в дельту в HTML?
Примечание: этот вопрос о том, как работает Quill, а не о том, как делать перекрывающиеся аннотации или о том, является ли что-то подобное даже хорошей идеей.