From 17df626facb85b87335a0f40b9eab618b5853c87 Mon Sep 17 00:00:00 2001 From: ranwen Date: Tue, 26 May 2026 17:08:35 +0000 Subject: [PATCH] fix(markdown): expose source URL metadata --- worker/handlers/handleRead.ts | 2 +- worker/pages/markdown.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/worker/handlers/handleRead.ts b/worker/handlers/handleRead.ts index 54fd1e5..23d2025 100644 --- a/worker/handlers/handleRead.ts +++ b/worker/handlers/handleRead.ts @@ -253,7 +253,7 @@ export async function handleGet(request: Request, env: Env, ctx: ExecutionContex // handle article (render as markdown) if (role === "a") { - return new Response(shouldGetPasteContent ? makeMarkdown(await decodeMaybeStream(item.paste)) : null, { + return new Response(shouldGetPasteContent ? makeMarkdown(await decodeMaybeStream(item.paste), url.href) : null, { headers: { "Content-Type": `text/html;charset=UTF-8`, ...pasteCacheHeader(env), diff --git a/worker/pages/markdown.ts b/worker/pages/markdown.ts index ccc6cb7..314d797 100644 --- a/worker/pages/markdown.ts +++ b/worker/pages/markdown.ts @@ -302,7 +302,7 @@ const mathInlineExt = { }, } -export function makeMarkdown(content: string): string { +export function makeMarkdown(content: string, sourceUrl?: string): string { const metadata: DocMetadata = { title: defaultTitle, description: "", toc: [] } const slugger = new GithubSlugger() @@ -352,6 +352,7 @@ export function makeMarkdown(content: string): string { const tocHtml = renderToc(metadata.toc) const hasToc = tocHtml.length > 0 const { jsFile, cssPaths } = getAssetPaths(manifest, "pages/render/markdown.ts") + const escapedSourceUrl = sourceUrl ? escapeHtml(sourceUrl) : "" return ` @@ -360,6 +361,8 @@ export function makeMarkdown(content: string): string { ${metadata.title} ${metadata.description.length > 0 ? `` : ""} + ${escapedSourceUrl ? `` : ""} + ${escapedSourceUrl ? `` : ""} ${renderCssLinks(cssPaths)}