import MarkdownIt from "markdown-it"; const parser = new MarkdownIt(); export function readDuration(markdown: string): number | undefined { if (!markdown) return; const words = markdown.split(" ")?.filter(Boolean)?.length; if (!words) return; return words && Math.round(words / 250); } export function markdownToHtml(markdown: string): string { if (!markdown) return ""; const md = new MarkdownIt({ html: false, // set to true only if you trust the source linkify: true, typographer: true, breaks: true, }); // Convert -> sanitize const unsafeHtml = md.render(markdown); return unsafeHtml; } export function markdownToText(markdown: string): string { if (!markdown) return ""; return parser .render(markdown) .split("\n") .map((str) => str.trim()) .map((str) => { return str.replace(/<\/?[^>]+(>|$)/g, "").split("\n"); }) .flat() .filter((str) => !str.startsWith("import") && !str.startsWith("export") && !str.startsWith("#") && !str.startsWith("const") && !str.startsWith("function") && !str.startsWith("export") && !str.startsWith("import") && !str.startsWith("<") && !str.startsWith("let") && str.length > 0 ) .join(" "); }