Quill formats для редактора. Как их переопределить и какие виды существуют
24.10.2024
19.12.2024
3 минуты
137
0
0
0
0
Quill formats, что это такое и их виды
Форматеры в quill, это набор правил, которые говорят, то как форматировать тот или иной blot, какие тултипы и стили применять. Quilljs, предоставляет широкий спектр в выборе типов форматирования текста (дальше я буду их называть форматеры). Виды форматеров в quill:
- formats/align
- formats/background
- formats/blockquote
- formats/bold
- formats/italic
- formats/strike
- formats/underline
- formats/code
- formats/code-block
- formats/code-block-container
- formats/code-token
- formats/color
- formats/direction
- formats/font
- formats/formula
- formats/header
- formats/image
- formats/indent
- formats/link
- formats/list
- formats/list-container
- formats/script
- formats/size
- formats/table
- formats/table-body
- formats/table-container
- formats/table-row
- formats/video
Некоторые из них являются лишь составной частью и не могут использоваться в отрыве от других. Такими форматерами являются:
- formats/list-container
- formats/table-body
- formats/table-container
- formats/table-row
- formats/code-block
- formats/code-block-container
- formats/code-token
Для некоторых разработан специльный модуль tooltip, при помощи которого некоторые форматеры вообще имеют смысл. Этот тултип работает и настроен для:
- formats/link
- formats/video
- formats/image
- formats/formula
Можно сразу забежать в перёд и сказать что для любого кастомного редактора этот тултип будет бесполезен из-за того, что он намертво прикреплён к тем 4 форматерам. И нам придётся создавать его с нуля. Чем мы в этой статье и займёмся.
Несколько слов о форматерах
Про шрифт и его размер. Или то как переопределять форматеры с несколькими вариантами выбора
Чтобы переписать и настроить свои шрифты потребуется поработать не только с html, но и с css стилями. Так, для начала нужно записать в белый список, все необходимые нам шрифты и размеры. Ну и конечно зарегистрировать изменения:
После чего добавить/изменить форматеры на html страничке:
Теперь, необходимо добавить следующие стили:
После чего у вас будет работающий селектор шрифтов и размеров.
Про таблицы, formats/table
По умолчанию, quill не предоставляет никакого интерфейса или тултипа для создания таблиц. Вернее, можно только создать 1х1 табличку, что не очень то полезно. Тебе придётся самому добавлять возможность удаления и вставки рядов и столбцов.
Чтобы получить возможность использовать таблицы, для начала нужно подключить соответствующий модуль.
Дальше нужно будет создать либо тултип, либо любой другой интерфейс для взаимодействия с модулем. Тут можно будет посмотреть на то, как я сделал тултип для таблиц.
Про видео, formats/video
По умолчанию, данный форматер поддерживает вставку видео через ссылку на соответствующий ресурс. Что на самом деле имеет некоторое преимущество перед вставкой непосредственного видеофайла.
Про изображения, formats/image
А вот изображения quill встраивает в саму страницу. С одной стороны это круто, можно сразу посмотреть как данное изображение будет выглядеть на сайте, а с другой это сильно увеличивает вес страницы, что сказывается на скорости, что в свою очередь сказывается на SEO показателях. Мне такой вариант, не подходит. Вот тут можно посмотреть как я переписал форматер для изображений под себя.
Как сделать и(или) переопределить существующий форматер, на примере ссылки
Это на самом деле очень просто. Нужно лишь следовать определённым правилам. Первое и основное правило, имя статической переменной blotName, того класса от которого вы наследуетесь, будет использоваться в качестве селектора при его нажатии. Сейчас объясню на примере такого форматера как ссылка.
В данном кусочке кода, я определил новый форматер для внутренних ссылок. У него просто появится дополнительный класс, для стилизации например. Дальше я изменил blotName и обратите внимание на то, как я зарегистрировал форматер. По факту, это новый форматер не зависящий от старого.
Что дальше? А дальше переходим на html-страницу и добавляем в твой toolbar соответствующий код:
Чтобы quill понял какой форматер использовать, нужно обозвать его соответствующим классом. Так же, потребуется иконка для кнопки, её можно добавить вот так:
Я написал соответствующую функцию для чтения содержимого любых файлов. Чуть ниже я оставлю пример реализации.
Комментарии
(0)
Отправить
Сейчас тут пусто. Буть первым (o゚v゚)ノ