Я создал рабочий блок Гутенберга с помощью Create Guten Block (https://github.com/ahmadawais/create-guten-block). В настоящее время он работает только со встроенными стилями, но по требованию я должен их избегать.
Поэтому я хочу создать таблицу стилей поста/страницы при сохранении поста, включая настройки стиля для моих блоков (например, цвет фона, цвет, размер шрифта...)
Текущая функция сохранения моего блока (block.js)
save: function( props ) {
const { attributes: { typetext, infotext, linktext, background_color, background_button_color, text_color, text_color_button }} = props;
return (
<div id="cgb-infoblock" className="cgb-infoblock">
<div className="cgb-infoblock-body" style={{
backgroundColor: background_color,
color: text_color,
}}>
<div className="cgb-infoblock-type">
<p>
<span className="cgb-infoblock-icon"><i>i</i></span>
{ typetext && !! typetext.length && (
<RichText.Content
tagName="span"
className={ classnames(
'cgb-infoblock-type-text'
) }
style={ {
color: text_color
} }
value={ typetext }
/>
)}
</p>
</div>
<div className="cgb-infoblock-text">
{ infotext && !! infotext.length && (
<RichText.Content
tagName="p"
style={ {
color: text_color
} }
value={ infotext }
/>
)}
</div>
</div>
<div className="cgb-infoblock-button" style={{
backgroundColor: background_button_color,
color: text_color_button,
}}>
{ linktext && !! linktext.length && (
<RichText.Content
tagName="p"
style={ {
color: text_color_button
} }
value={ linktext }
/>
)}
</div>
</div>
);
},
Лучшим решением будет генерация таблицы стилей для целой страницы/поста со всеми настройками из всех блоков.
Лучше всего было бы, если бы генерация таблицы стилей происходила при сохранении страницы, но также было бы нормально, если бы это происходило при загрузке страницы. Поскольку эти посты не будут большими, производительность не должна быть большой проблемой.