markdownEditor
markdownEditor - это поле для написания и предварительного просмотра содержимого Markdown. Оно работает как стандартное поле ввода, поэтому поддерживает надпись, вспомогательный текст, индикатор обязательности, сообщение валидации, всплывающую подсказку и привязку данных.
XML-элемент |
|
|---|---|
Java-класс |
|
Атрибуты |
id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - colspan - css - dataContainer - enabled - errorMessage - focusShortcut - height - helperText - justifySelf - label - maxHeight - maxWidth - minHeight - minWidth - mode - placeholder - property - readOnly - required - requiredMessage - tabIndex - themeNames - valueChangeMode - valueChangeTimeout - visible - width |
Обработчики |
AttachEvent - BlurEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent - ModeChangeEvent - statusChangeHandler - validator |
Элементы |
Основы
Используйте markdownEditor, когда пользователям нужно вводить Markdown с быстрыми средствами форматирования и мгновенным предварительным просмотром.
<markdownEditor id="markdownEditor"
themeNames="toolbar-align-end"
label="Markdown Editor"
helperText="Markdown is supported. Use the toolbar or keyboard shortcuts to format text."
placeholder="Write your content here..."/>
Значение компонента - это String, содержащая исходную Markdown-разметку.
Привязка данных
Как и другие компоненты полей, markdownEditor можно привязать к атрибуту сущности с помощью атрибутов dataContainer и property.
<markdownEditor id="descriptionField"
dataContainer="orderDc"
property="description"
label="Description"/>
Привяжите компонент к атрибуту сущности типа String, который хранит Markdown-текст.
Режимы
Редактор имеет два режима, которые можно выбрать в заголовке:
-
Editпозволяет пользователям вводить и форматировать Markdown-текст. -
Previewотображает текущее значение как отформатированный HTML.
Режим по умолчанию - Edit.
Начальный режим можно декларативно задать с помощью XML-атрибута mode.
<markdownEditor id="markdownEditorField"
mode="PREVIEW"/>
Если readOnly = true, компонент показывает только отрендеренный предварительный просмотр. Панель инструментов и вкладки режимов скрыты, а значение нельзя изменить.
Текущий режим также можно читать и изменять программно с помощью server-side API. При изменении режима компонент генерирует ModeChangeEvent, содержащий новый режим и флаг, который показывает, было ли изменение инициировано пользователем или приложением.
Действия панели инструментов
В режиме Edit вкладки режимов и панель инструментов форматирования находятся в одной строке заголовка. Если горизонтального пространства недостаточно, дополнительные действия панели инструментов переносятся в меню переполнения в конце строки.
Кнопки панели инструментов отражают форматирование, активное в текущей позиции курсора. Нажатие на уже активную кнопку форматирования удаляет соответствующее форматирование.
Форматы-обертки
Эти действия работают с текущим выделением или с позицией курсора, если ничего не выделено.
| Действие | Сочетание клавиш | Применение | Удаление |
|---|---|---|---|
Bold |
|
Оборачивает выделенный текст в |
Удаляет окружающие |
Italic |
|
Оборачивает выделенный текст в |
Удаляет окружающие |
Code |
|
Оборачивает выделенный текст в один обратный апостроф. Если ничего не выделено, вставляет два обратных апострофа и помещает курсор между ними. |
Удаляет окружающие обратные апострофы. |
Link |
|
Оборачивает выделение в виде |
Удаляет окружающую Markdown-разметку ссылки. |
Построчные форматы
Эти действия работают с текущей строкой или с каждой выделенной строкой, если выбрано несколько строк.
| Действие | Применение | Удаление |
|---|---|---|
Heading |
Добавляет префикс |
Удаляет префикс |
Quote |
Добавляет префикс |
Удаляет префикс |
Unordered list |
Добавляет префикс |
Удаляет префикс |
Ordered list |
Добавляет префикс |
Удаляет префикс нумерованного списка. |
Task list |
Добавляет префикс |
Удаляет префикс |
Если выбрано несколько строк и все они уже имеют целевой формат, нажатие кнопки панели инструментов удаляет его из всех выбранных строк. В противном случае формат применяется ко всем выбранным строкам, у которых его еще нет.
Навигация с клавиатуры
Компонент поддерживает навигацию с клавиатуры между тремя логическими областями фокуса:
-
Вкладки режимов
-
Панель инструментов
-
Текстовая область
Tab перемещает фокус между этими областями. Клавиши со стрелками используются для навигации внутри активной области. Нажмите Escape на панели инструментов, чтобы вернуть фокус в текстовую область.
Если некоторые действия панели инструментов перенесены в меню переполнения ···, при открытии меню фокус получает первый пункт. В меню клавиши ArrowUp и ArrowDown перемещают между пунктами, а Escape и Tab закрывают меню и возвращают фокус на кнопку переполнения.
Изменения форматирования интегрируются со стеком отмены браузера, поэтому стандартные сочетания клавиш работают ожидаемым образом:
-
Cmd/Ctrl+Zотменяет изменения форматирования и ввода. -
Cmd/Ctrl+Shift+ZилиCtrl+Yповторяет изменения форматирования и ввода.
Варианты темы
Используйте атрибут themeNames для настройки темы компонента.
| Вариант | Описание | Поддерживается в |
|---|---|---|
|
Отображает вспомогательный текст над полем, под надписью. |
Aura, Lumo |
|
Выравнивает кнопки панели инструментов по начальной стороне заголовка с учетом текущего направления текста. |
Aura, Lumo |
|
Выравнивает кнопки панели инструментов по центру заголовка и скрывает разделитель. |
Aura, Lumo |
|
Выравнивает кнопки панели инструментов по конечной стороне заголовка с учетом текущего направления текста и скрывает разделитель. |
Aura, Lumo |
CSS-свойства
Вы можете настроить компонент с помощью пользовательских CSS-свойств в теме приложения или задав их через атрибут css.
<markdownEditor id="markdownEditCss"
css="--jmix-markdown-editor-default-width: 32rem;
--jmix-markdown-editor-header-background: var(--lumo-contrast-5pct);"/>
| Свойство | Описание | Поддерживается в |
|---|---|---|
|
Задает ширину компонента по умолчанию. |
Aura, Lumo |
|
Задает фон общей строки заголовка, содержащей вкладки и панель инструментов. |
Aura, Lumo |
|
Управляет внутренними отступами кнопок панели инструментов. |
Aura, Lumo |
|
Управляет шириной границы кнопок панели инструментов. |
Aura, Lumo |
|
Управляет цветом границы кнопок панели инструментов. |
Aura, Lumo |
|
Управляет радиусом скругления кнопок панели инструментов. |
Aura, Lumo |
|
Управляет цветом текста кнопок панели инструментов. |
Aura, Lumo |
|
Управляет фоном кнопок панели инструментов. |
Aura, Lumo |
|
Управляет внутренними отступами вкладок. |
Aura, Lumo |
|
Управляет цветом текста вкладок. |
Aura, Lumo |
|
Управляет фоном вкладок. |
Aura, Lumo |
Интернационализация
Все видимые пользователю строки по умолчанию заданы на английском языке и могут быть переопределены независимо друг от друга.
Компонент предоставляет подписи по умолчанию для:
-
Вкладок:
Edit,Preview -
Действий панели инструментов:
Heading,Bold,Italic,Quote,Code,Link,Unordered list,Ordered list,Task list -
Кнопки меню переполнения
-
Доступного имени панели инструментов
Если приложение переопределяет только часть этих строк, все остальные подписи продолжают использовать значения по умолчанию.
Валидация
Чтобы проверять значения, введенные в компонент markdownEditor, можно использовать validator во вложенном элементе validators.
Поскольку значение компонента хранится как исходная Markdown-строка, валидаторы notBlank и size полезны для проверки того, что содержимое присутствует и имеет ожидаемую длину.
Для markdownEditor доступны следующие предопределенные валидаторы:
XML-элемент |
|
|---|---|
Предопределенные валидаторы |
Атрибуты
Общие атрибуты служат одной и той же цели для всех компонентов.
Следующие атрибуты являются специфичными для markdownEditor:
Имя |
Описание |
По умолчанию |
|---|---|---|
Задает mode редактора. |
|
Обработчики
Общие обработчики настраиваются одинаково для всех компонентов.
Следующие обработчики являются специфичными для markdownEditor.
|
Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню Code → Generate (Alt+Insert / Cmd+N). |
Имя |
Описание |
|---|---|
|
Смотрите также
Смотрите также markdown для отображения содержимого Markdown без возможностей редактирования.