nuxt-og-image
Version:
Enlightened OG Image generation for Nuxt.
29 lines (28 loc) • 961 B
JavaScript
import { defineSatoriTransformer } from "../utils.js";
function isEmojiFilter(node) {
return node.type === "svg" && typeof node.props?.["data-emoji"] !== "undefined";
}
export default defineSatoriTransformer([
// need to make sure parent div has flex for the emoji to render inline
{
filter: (node) => ["div", "p"].includes(node.type) && Array.isArray(node.props?.children) && node.props.children.some(isEmojiFilter),
transform: (node) => {
node.props.style = node.props.style || {};
node.props.style.display = "flex";
node.props.style.alignItems = "center";
node.props.children = node.props.children.map((child) => {
if (typeof child === "string") {
return {
type: "div",
props: {
children: child
}
};
}
if (child.props.class?.includes("emoji"))
delete child.props.class;
return child;
});
}
}
]);