import { render } from "gfm"; import "https://esm.sh/prismjs@1.29.0/components/prism-typescript?no-check"; import "https://esm.sh/prismjs@1.29.0/components/prism-bash?no-check"; import "https://esm.sh/prismjs@1.29.0/components/prism-rust?no-check"; export type Document = { name: string; lastModified: number; contentType: string; content: string | null; size: number; perm: string; }; function removeFrontmatter(doc: string) { if (doc.trim().startsWith("---")) { return doc.trim().split("---").filter((s) => s.length).slice(1).join("---"); } return doc; } export function removeImage(doc: string, imageUrl?: string) { if (!imageUrl) { return doc; } // Remove image from content const first = doc.slice(0, 500); const second = doc.slice(500); // Regex pattern to match the image Markdown syntax with the specific URL const pattern = new RegExp( `!\\[.*?\\]\\(${imageUrl.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\)`, "g", ); // Remove the matched image const updatedMarkdown = first.replace(pattern, ""); return updatedMarkdown + second; } export function renderMarkdown(doc: string) { return render(removeFrontmatter(doc), { baseUrl: "https://max-richter.dev", allowMath: true, }); } export function createDocument( path: string, entry: string, mimetype = "image/jpeg", ) { console.log("creating", { path, entry, mimetype }); }