import { parse as parseYaml } from 'yaml'; /** * Minimal frontmatter parser. Only supports YAML (the `---` delimiter). * Does NOT support `---js` / `---javascript` to avoid eval()-based RCE * that exists in gray-matter's built-in JS engine. */ export function parseFrontmatter(raw: string): { data: Record; content: string; } { const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/); if (!match) return { data: {}, content: raw }; const data = (parseYaml(match[1]!) as Record) ?? {}; return { data, content: match[2] ?? '' }; }