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 {