Конфигурация
Вы можете настроить внешний вид и поведение RichText с помощью следующих свойств:
menubar— показать или скрыть верхнюю строку менюtoolbar— настроить видимость панели инструментов и её кнопкиfullscreenMode— открыть редактор в полноэкранном режимеlayoutMode— переключиться между макетами"classic"и"document"value— задать начальное HTML-содержимоеlocale— применить объект локализации при инициализацииdefaultStyles— задать стили по умолчанию для конкретных типов блоковimageUploadUrl— задать конечную точку для загрузки изображенийtriggers— включить @упоминания, #теги и пользовательские триггеры выпадающих списков (см. руководство Упоминания и теги)
Режимы макета
RichText поддерживает два режима макета для области редактирования:
"classic"— область редактирования занимает всю страницу

"document"— область редактирования имитирует страницу документа

Задайте свойство layoutMode при инициализации, чтобы выбрать режим:
const editor = new richtext.Richtext("#root", {
layoutMode: "document"
});
Связанный пример: RichText. Режимы документа и классический
Панель инструментов
Панель инструментов RichText группирует элементы управления в несколько блоков, которые можно настраивать.
Стандартные элементы управления панели инструментов
В панель инструментов RichText можно включить следующие кнопки и элементы управления:
| Кнопка | Описание |
|---|---|
undo | Отменяет последнее действие пользователя |
redo | Повторяет ранее отменённое действие |
style | Выбирает стиль текста (например, заголовок, абзац, цитата) |
font-family | Изменяет шрифт выделенного текста |
font-size | Изменяет размер выделенного текста |
bold | Применяет полужирное форматирование к выделенному тексту |
italic | Применяет курсивное форматирование к выделенному тексту |
underline | Подчёркивает выделенный текст |
strike | Применяет зачёркивание |
subscript | Форматирует текст как подстрочный |
superscript | Форматирует текст как надстрочный |
text-color | Изменяет цвет текста |
background-color | Изменяет цвет фона (выделения) текста |
align | Задаёт выравнивание текста (по левому краю, по центру, по правому краю, по ширине) |
indent | Увеличивает отступ абзаца |
outdent | Уменьшает отступ абзаца |
line-height | Изменяет межстрочный интервал |
quote | Форматирует текст как цитату |
bulleted-list | Создаёт маркированный список |
numbered-list | Создаёт нумерованный список |
link | Вставляет или редактирует гиперссылку |
image | Вставляет изображение |
line | Вставляет горизонтальную линию |
clear | Удаляет всё форматирование выделенного текста |
print | Открывает диалог печати |
fullscreen | Переключает полноэкранный режим |
mode | Переключает между двумя режимами макета: classic и document |
shortcuts | Отображает список доступных сочетаний клавиш |
separator | Добавляет визуальный разделитель между элементами управления |
Используйте свойство toolbar, чтобы задать панель инструментов в виде массива строк с именами элементов управления:
new richtext.Richtext("#root", {
toolbar: [
"undo",
"redo",
"separator",
"style",
"separator",
"font-family",
"font-size",
"separator",
"bold",
"italic",
"underline",
"strike",
"separator",
"text-color",
"background-color",
"separator",
"align",
"line-height",
"outdent",
"indent",
"separator",
"bulleted-list",
"numbered-list",
"quote",
"separator",
"link",
"image",
"separator",
"clear",
"separator",
"fullscreen",
"mode"
// другие кнопки
],
// другие свойства конфигурации
});
Связанный пример: RichText. Полная панель инструментов
Добавление пользовательских элементов управления панели инструментов
Передайте объект в массив toolbar с одним из следующих полей:
type: string— обязательное. Тип элемента управления:"button","richselect"или"colorpicker"id: string— необязательное. Идентификатор пользовательского элемента управления; не должен совпадать с существующими идентификаторамиicon: string— необязательное. Имя CSS-класса иконки; используется совместно с меткойlabel: string— необязательное. Метка кнопки; используется совместно с иконкойtooltip: string— необязательное. Всплывающая подсказка при наведении; по умолчанию равнаlabel, если не заданаcss: string— необязательное. CSS-класс для элемента управления. Встроенные классы:wx-primary,wx-secondaryhandler: () => void— необязательное. Калбэк, выполняемый при нажатии
В приведённом ниже примере сочетаются встроенные кнопки, предустановленный элемент управления типа richselect и две пользовательские кнопки:
new richtext.Richtext("#root", {
toolbar: [
// строковые записи соответствуют встроенным кнопкам
"bold",
"italic",
// предустановленные кнопки принимают только { type: "button", id: string }
{
type: "button",
id: "fullscreen",
},
// для предустановленных элементов richselect/colorpicker задайте соответствующий тип
// записи с несовпадающим типом игнорируются
{
type: "richselect", // type: "button" здесь будет проигнорирован
id: "mode",
},
// пользовательские кнопки (richselect/colorpicker не поддерживаются для пользовательских элементов)
{
type: "button",
id: "some",
label: "Some",
handler: () => {/* пользовател ьская логика */}
},
{
type: "button",
id: "other",
icon: "wxo-help",
label: "Other",
tooltip: "Some tooltip",
handler: () => {/* пользовательская логика */}
}
],
// другие свойства конфигурации
});
Связанный пример: RichText. Пользовательский элемент управления и упрощённая панель инструментов
Скрытие панели инструментов
Задайте свойству toolbar значение false, чтобы скрыть пан ель инструментов:
new richtext.Richtext("#root", {
toolbar: false,
// другие свойства конфигурации
});
Отображение строки меню
Включите свойство menubar, чтобы отобразить верхнюю строку меню над панелью инструментов. Значение по умолчанию — false.
new richtext.Richtext("#root", {
menubar: true
// другие свойства конфигурации
});
Связанный пример: RichText. Инициализация со строкой меню
Задание начального содержимого
Используйте свойство value, чтобы передать начальное HTML-содержимое в редактор при инициализации:
new richtext.Richtext("#root", {
value: "<h1>some value</h1>"
// другие свойства конфигурации
});
Чтобы заменить содержимое после инициализации или загрузить его в формате, отличном от HTML, с использованием пользовательского энкодера, вызовите метод setValue().
Связанный пример: RichText. Работа с различными форматами (Markdown, HTML, текст)
Задание начальной локали
Используйте свойство locale, чтобы применить объект локализации при инициализации:
new richtext.Richtext("#root", {
locale: richtext.locales.cn
// другие свойства конфигурации
});
Подробности и динамическое переключение локали с помощью setLocale() см. в руководстве Локализация.
Запуск в полноэкранном режиме
Задайте св ойству fullscreenMode значение true, чтобы редактор открывался в полноэкранном режиме при инициализации. Значение по умолчанию — false.
new richtext.Richtext("#root", {
fullscreenMode: true
// другие свойства конфигу рации
});
Настройка вставки изображений
RichText поддерживает два режима вставки изображений через панель инструментов, строку меню, вставку из буфера или перетаскивание. Режим выбирается автоматически на основе свойства imageUploadUrl.
Загрузка изображений на сервер
Передайте URL в свойство imageUploadUrl, чтобы загружать каждое вставляемое изображение на ваш сервер. RichText отправляет файл в формате multipart/form-data (имя поля upload) и вставляет URL, возвращённый сервером:
new richtext.Richtext("#root", {
imageUploadUrl: "https://example.com/upload"
// другие свойства конфигурации
});
Вставка изображений в строку как base64
Не задавайте imageUploadUrl (или задайте ему пустую строку), чтобы встраивать изображения непосредственно в содержимое документа в виде data URL в формате base64. Сервер при этом не требуется:
new richtext.Richtext("#root", {
// imageUploadUrl не задан, изображения вставляются в строку
// другие свойства конфигурации
});
Встроенные изображения размером больше 1024×800 отображаются в уменьшенном виде (атрибуты width/height ограничены, чтобы вписаться в эти пределы), однако встроенные байты представляют собой исходный файл в полном разрешении — клиент не уменьшает и не перекодирует его.
Встроенные (base64) изображения не сохраняются при встроенном экспорте в форматы DOCX / PDF. Если вы используете экспорт, укажите imageUploadUrl, чтобы изображения ссылались на внешний ресурс.
Полный контракт запроса/ответа, который должна реализовывать конечная точка загрузки, а также подробности резервного варианта со встроенными изображениями см. в разделе Работа с сервером.
Настройка стилей по умолчанию
Используйте свойство defaultStyles, чтобы задать стили по умолчанию для каждого типа блока.
Свойство defaultStyles имеет следующую сигнатуру типа:
defaultStyles?: boolean | {
"*"?: { // применяется ко всем блокам; задаёт общие свойства для каждого блока
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
p?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
blockquote?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h1?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h2?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h3?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h4?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h5?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
},
h6?: {
"font-family"?: string; // "Roboto"| "Arial" | "Georgia" | "Tahoma" | "Times New Roman" | "Verdana"
"font-size"?: string; // "12px" | "14px" | "16px" | "18px" | "20px" | "24px" | "28px" | "32px" | "36px"
color?: string;
background?: string;
}
};
Свойство defaultStyles не применяет CSS к затронутым блокам. Применяйте соответствующие CSS-стили отдельно:
<div id="root"></div>
const editor = new richtext.Richtext("#root", {
defaultStyles: {
h2: {
"font-family": "Roboto",
"font-size": "28px",
color: "purple",
background: "#FFC0CB"
}
}
});
#root h2 {
font-family: Roboto;
font-size: 28px;
color: purple;
background: #FFC0CB;
}
В этом примере все блоки h2 используют семейство шрифтов "Roboto" размером 28px с фиолетовым текстом на розовом фоне. Соответствующее CSS-правило применяет те же значения к отображаемым элементам h2.
Связанный пример: RichText. Изменение значения по умолчанию для типографики (шрифт, размер шрифта и т.д.)