astro-tips
Version:
🎨 Beautiful, customizable tip and notice blocks for Astro - 16 built-in styles with auto dark mode support and built-in compression
31 lines • 1.08 kB
JavaScript
import { visit } from "unist-util-visit";
import { defaultConfig } from "./config.js";
import { isTipVariant, isDirective, createTipBox } from "./utils.js";
export function remarkTips(options = {}) {
const tipsConfig = { ...defaultConfig, ...options };
return function transformer(tree) {
visit(tree, (node, index, parent) => {
if (!parent || index === undefined || !isDirective(node)) {
return;
}
if (node.type !== "containerDirective") {
return;
}
const variant = node.name;
if (!isTipVariant(variant)) {
return;
}
const config = tipsConfig[variant];
if (!config) {
return;
}
const htmlContent = createTipBox(variant, config, node.children);
const htmlNode = {
type: "html",
value: htmlContent,
};
parent.children[index] = htmlNode;
});
};
}
//# sourceMappingURL=remark-plugin.js.map