Skip to content

Работа с командами

Класс для работы с форматированием текста в редакторе.

WARNING

Этот класс предназначен для внутреннего использования в редакторе и для разработки сторонних компонентов. Однако его методы следует применять с осторожностью, поскольку они обходят систему менеджера событий и менеджера истории. Неправильное использование может привести к ошибкам и непредсказуемому поведению во всём приложении. Вместо этого рекомендуется использовать модели инструментов.

Commands

Класс предназначен в основном для внутреннего использования и по своей сути является узкоспециализированным инструментом для форматирования текста.

Методы Commands

ФункцияСигнатураОписание
formatTextRangeformatTextRange(tagName: string, startOffset: number, endOffset: number, container: HTMLElement): voidФорматирует указанный текстовый диапазон внутри контейнера с заданным HTML-тегом.
formatformat(tagName: string, focus?: boolean): voidПрименяет или удаляет форматирование на основе текущего контекста выделения.
createFormatcreateFormat(tagName: string): voidСоздаёт новый формат вокруг текущего выделения.
removeFormatremoveFormat(tagName: string, focus?: boolean, normalize?: boolean): voidУдаляет теги форматирования из текущего выделения.
clearAllFormattingclearAllFormatting(normalize?: boolean): voidУдаляет все теги форматирования из документа.
normalizenormalize(container?: HTMLElement): voidНормализует структуру DOM, удаляя пустые теги и объединяя соседние элементы.
flattenNestedTagsflattenNestedTags(parentElement: HTMLElement): voidУпрощает вложенные теги одного типа (например, <strong><strong>текст</strong></strong>).
mergeAdjacentTagsmergeAdjacentTags(root: HTMLElement | Element): voidОбъединяет соседние теги одного типа.
removeEmptyTagsremoveEmptyTags(element: HTMLElement, tagName: string): voidУдаляет пустые теги указанного типа из элемента.
splitElementsplitElement(element: HTMLElement, startIndex: number, endIndex: number): [HTMLElement, DocumentFragment, HTMLElement]Разбивает элемент на заданных текстовых позициях.
replaceEmptyEdgesreplaceEmptyEdges(el: HTMLElement, item?: HTMLElement | Node): voidЗаменяет пустые граничные элементы.
findTagsfindTags(tagName?: string | boolean, children?: boolean): HTMLElement[]Находит теги в текущем выделении или документе.
getSelectionDirectiongetSelectionDirection(tagName: string | HTMLElement): stringВозвращает направление выделения относительно указанного тега.
getEdgeCharsgetEdgeChars(str: string): { firstChar: string; lastChar: string; isEmptyFirstChar: boolean; isEmptyLastChar: boolean; }Получает первые и последние символы строки вместе с их статусом пустоты.

Пример использования Commands

Не рекомендуется использовать методы подобным образом (это всего лишь пример).

javascript
import { Texditor } from "texditor";

const editor = new Texditor({
  handle: "my-editor"
});

// Применение форматирования
editor.commands.format('strong');

// Удаление форматирования
editor.commands.removeFormat('strong');

// Создание форматирования без переключения
editor.commands.createFormat('em');

// Очистка всего форматирования
editor.commands.clearAllFormatting();

// Поиск тегов в выделении
const strongTags = editor.commands.findTags('strong');

dev@priveted.com | priveted.com