Project Files
src / helpers / frontmatter.ts
/**
* frontmatter.ts — Playbook-compatible YAML frontmatter helpers.
*
* Extracted verbatim from playbook/src/tools/memorize.ts (slugify + buildFrontmatter).
* Shared by export_doc and memorize_doc.
*/
export function slugify(title: string): string {
return title
.toLowerCase()
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "") // strip diacritics
.replace(/[^\w\s-]/g, "")
.trim()
.replace(/[\s_]+/g, "-")
.replace(/-+/g, "-")
.slice(0, 80);
}
export function buildFrontmatter(title: string, tags: string[], now: string, existingCreated?: string): string {
const created = existingCreated ?? now;
const tagList = tags.map((t) => `"${t}"`).join(", ");
return `---\ntitle: "${title}"\ntags: [${tagList}]\ncreated: "${created}"\nupdated: "${now}"\n---\n\n`;
}