Ich habe einen ziemlich einfachen Akkordeonblock erstellt, der sich hervorragend für einfachen Text eignet. Das Problem ist, dass das Steuerelement, das ich für den Akkordeoninhalt verwende, der RichText ist, der nur grundlegende Formatierungen wie Fett zulässt.
Was wäre, wenn ich neben einfachem Text auch eine unsortierte Liste erstellen möchte? Ich verwende derzeit multiline: "p"
aber wie kann ich zusätzliche Elemente hinzufügen, damit ich auch UL-Elemente darin haben kann?
Die einzigen zwei Ideen, die mir einfallen, weiß ich nicht, wie ich sie umsetzen soll. Die erste besteht darin, die Blocksymbolleiste mit zu erweitern BlockControls
um zusätzliche Formatierer für UL einzuschließen, und das zweite besteht darin, ein anderes Element anstelle von RichText zu verwenden – wie Freeform (das möglicherweise in Classic Editor umbenannt wurde?) -, aber ich kann keine Dokumentation dazu finden.
Hier ist ein Beispiel für meinen aktuellen Code:
ATTRIBUTE
attributes: {
title: {
type: 'string',
selector: '.hd-accordion-title',
},
content: {
type: 'array',
source: 'children',
selector: '.hd-accordion-content',
}
},
BEARBEITEN
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>
)
];
},