How to Create a Laraberg Custom block?
Laraberg is a Laravel package to use wordpress gutenberg editor with Laravel Framework. Today we are going to learn how we can create a laraberg custom block.
So, let’s dive into the code to initialize the laraberg.
Initialize the Laraberg
document.addEventListener('DOMContentLoaded', function () { (function () { if (typeof Laraberg == 'undefined') { console.warning('Laraberg not found!'); return; } registerPostTitleBlock(); Laraberg.init('post-editor', { mediaUpload: mediaUploaded }); })
As you can see, I have used mediaUpload while init the laraberg for this check my media upload related article.
Register a custom block to the Laraberg
After init the laraberg, we need to create the function for the custom block like given below.
function registerPostTitleBlock() { (function (blocks, blockEditor, element, components) { var el = element.createElement; var RichText = blockEditor.RichText; var useBlockProps = blockEditor.useBlockProps; var InspectorControls = blockEditor.InspectorControls; const icon = el("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, el("path", { d: "M6.2 5.2v13.4l5.8-4.8 5.8 4.8V5.2z" })); const block = blocks.registerBlockType('sbt-block/post-title', { apiVersion: 2, title: 'Post title', icon: icon, category: 'text', attributes: { content: { type: 'string', selector: 'h1.post-title', source: 'text', } }, supports: { customClassName: false, }, edit: function (props) { var blockProps = useBlockProps(); return [ el( InspectorControls, { key: 'l8' } ), el(RichText, { tagName: 'h1', key: 'lx4', value: props.attributes.content, preserveWhiteSpace: true, __unstablePastePlainText: true, onChange: content => props.setAttributes({ content: content }), placeholder: "Enter title..", }) ] }, save: function (props) { var blockProps = useBlockProps.save(); return el(RichText.Content, Object.assign(blockProps, { tagName: 'h1', className: 'post-title', value: props.attributes.content }), ); }, }) })(Laraberg.wordpress.blocks, Laraberg.wordpress.blockEditor, Laraberg.wordpress.element, Laraberg.wordpress.components); }
That’s it. It’s simple to create a custom block in laraberg.
Hope you find this article useful.