Что делает метод 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, а не о том, как делать перекрывающиеся аннотации или о том, является ли что-то подобное даже хорошей идеей.

0 ответов

Другие вопросы по тегам