astro-ghostcms/.pnpm-store/v3/files/bf/4ebde5477bc715b00654d89549a...

26 lines
946 B
Plaintext

import { visit } from "unist-util-visit";
import { escape } from "./utils.js";
const rehypeSlots = ({ s }) => {
return (tree, file) => {
visit(tree, (node) => {
if (node.type === "element" && node.tagName === "slot") {
if (typeof node.properties?.["is:inline"] !== "undefined")
return;
const name = node.properties?.["name"] ?? "default";
const start = node.position?.start.offset ?? 0;
const end = node.position?.end.offset ?? 0;
const first = node.children.at(0) ?? node;
const last = node.children.at(-1) ?? node;
const text = file.value.slice(first.position?.start.offset ?? 0, last.position?.end.offset ?? 0).toString();
s.overwrite(start, end, `\${${SLOT_PREFIX}["${name}"] ?? \`${escape(text).trim()}\`}`);
}
});
};
};
var slots_default = rehypeSlots;
const SLOT_PREFIX = `___SLOTS___`;
export {
SLOT_PREFIX,
slots_default as default
};