Я создал довольно простой блок аккордеона, и он отлично подходит для основного текста. Проблема в том, что я использую элемент управления для содержимого аккордеона RichText, который допускает только базовое форматирование, например полужирный.
Что, если бы я хотел создать неупорядоченный список, а также основной текст? В настоящее время я использую multiline: "p"
, но как я могу добавить дополнительные элементы, чтобы я мог также иметь там элементы UL?
Единственные две идеи, которые я могу придумать, я не могу понять, как реализовать. Первый - расширить панель инструментов блока с помощью BlockControls
, чтобы включить дополнительные средства форматирования для UL, а второй - использовать другой элемент вместо RichText - например, Freeform (который, возможно, был переименован в Classic Editor?) - но я не могу найти никакой документации на этих.
Вот пример моего текущего кода:
АТРИБУТЫ
attributes: {
title: {
type: 'string',
selector: '.hd-accordion-title',
},
content: {
type: 'array',
source: 'children',
selector: '.hd-accordion-content',
}
},
РЕДАКТИРОВАТЬ
edit: function( props ) {
var title = props.attributes.title;
var content = props.attributes.content;
function onChangeTitle(newTitle) {
props.setAttributes({
title: newTitle
});
}
function onChangeContent(newContent) {
props.setAttributes({
content: newContent
});
}
return [
(
<div className={"hd-accordion"}>
<RichText
tagName="h3"
className= "hd-accordion-title"
value= { title }
onChange= { onChangeTitle }
placeholder = "Title"
keepPlaceholderOnFocus = { true }
multiline= { false }
/>
<RichText
tagName="div"
className="hd-accordion-content"
value={ content }
onChange= { onChangeContent }
placeholder = "content"
multiline="p"
/>
</div>
)
];
},