@wordpress/blocks
Version:
Block API for WordPress.
28 lines (27 loc) • 978 B
JavaScript
// packages/blocks/src/api/raw-handling/heading-transformer.ts
function headingTransformer(node) {
if (node.nodeType !== node.ELEMENT_NODE) {
return;
}
const element = node;
if (element.tagName === "P" && element.getAttribute("role") === "heading" && element.hasAttribute("aria-level")) {
const level = parseInt(element.getAttribute("aria-level"), 10);
if (level >= 1 && level <= 6) {
const headingTag = `H${level}`;
const newHeading = element.ownerDocument.createElement(headingTag);
Array.from(element.attributes).forEach((attr) => {
if (attr.name !== "role" && attr.name !== "aria-level") {
newHeading.setAttribute(attr.name, attr.value);
}
});
while (element.firstChild) {
newHeading.appendChild(element.firstChild);
}
element.parentNode.replaceChild(newHeading, element);
}
}
}
export {
headingTransformer as default
};
//# sourceMappingURL=heading-transformer.mjs.map