UNPKG

@jverneaut/html-to-gutenberg

Version:

Create custom Gutenberg blocks from the HTML templates you already have.

30 lines (22 loc) 840 B
import JSXElementTransformer from "./CustomElementJSXTransformer.js"; import PrinterRenderPHP from "#printers/PrinterRenderPHP.js"; import { deleteTagName } from "#utils-html/index.js"; export default class CustomElementServerBlock extends JSXElementTransformer { static JSXTagName = "ServerSideRender"; static HTMLTagName = "server-block"; static attributesMapping = [ { html: "name", jsx: "block" }, { html: true, jsx: false }, ]; onMatch(node) { this.blockData._hasServerSideRender = true; this.blockData._hasAttributesProps = true; node.properties.attributes = `$\${ attributes }$$`; } processAstByFilename(filename) { super.processAstByFilename(filename); if (filename === PrinterRenderPHP.filename) { deleteTagName(this.asts[filename], this.constructor.HTMLTagName); } } }