Добавить пользовательский div в выбранный / нажал на текст с Quill?

В этой демонстрации есть выпадающий список с опциями "Заголовок 1", "Заголовок 2" и "Обычный". Я ищу способ настроить его с помощью своих собственных параметров (или добавить новую кнопку вместо выпадающих списков) с использованием классов div. Например, я хочу добавить новую опцию под названием "myThing", и получается:

<p>Lorem ipsum dolor sit amet</p>

в это:

<div class="myThing">Lorem ipsum dolor sit amet</div>

Как я могу это сделать?

1 ответ

Решение

Вы можете сделать это, расширив блот блот. Как показано в этом разделе руководств по Quilljs. Просто расширьте блот блот и установите свой тег и имя класса. Пример:

var Block = Quill.import('blots/block');

class MyThing extends Block {}
MyThing.blotName = 'my-thing';
MyThing.className = 'my-thing';
MyThing.tagName = 'div';

Quill.register(MyThing);

var quill = new Quill('#editor', {
  theme: 'snow',
  modules: {
    toolbar: [
      ['my-thing']
    ]
  }
});
.ql-toolbar .ql-my-thing {
  width: 60px !important;
}
.ql-toolbar .ql-my-thing:before {
  content: 'My Thing';
}
.my-thing {
  background: #f00;
  color: #fff;
}
<link href="https://cdn.quilljs.com/1.3.4/quill.snow.css" rel="stylesheet">
<script src="https://cdn.quilljs.com/1.3.4/quill.js"></script>

<div id="editor">
  <p>Hello World!</p>
  <p>Some initial <strong>bold</strong> text</p>
  <p><br></p>
</div>

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