diff --git a/BillNote_extension/src/components/MarkdownView.vue b/BillNote_extension/src/components/MarkdownView.vue index a492703f..ece27120 100644 --- a/BillNote_extension/src/components/MarkdownView.vue +++ b/BillNote_extension/src/components/MarkdownView.vue @@ -10,11 +10,11 @@ const md = new MarkdownIt({ html: false, linkify: true, breaks: true }) const html = computed(() => md.render(absolutizeMarkdownImages(stripSourceLink(props.markdown || '')))) async function copy() { - await navigator.clipboard.writeText(props.markdown) + await navigator.clipboard.writeText(absolutizeMarkdownImages(props.markdown)) } function download() { - const blob = new Blob([props.markdown], { type: 'text/markdown;charset=utf-8' }) + const blob = new Blob([absolutizeMarkdownImages(props.markdown)], { type: 'text/markdown;charset=utf-8' }) const url = URL.createObjectURL(blob) const a = document.createElement('a') a.href = url diff --git a/BillNote_extension/src/logic/api.ts b/BillNote_extension/src/logic/api.ts index 9f935ea2..6121380d 100644 --- a/BillNote_extension/src/logic/api.ts +++ b/BillNote_extension/src/logic/api.ts @@ -208,10 +208,10 @@ export async function ping(): Promise { } } -// markdown 里的 /static/screenshots/xxx 是相对路径,extension 渲染时需要拼绝对地址 +// markdown 里的根相对路径图片(如 /static/screenshots/xxx)需要拼绝对地址 export function absolutizeMarkdownImages(md: string): string { const base = backendUrl() - return md.replace(/!\[([^\]]*)\]\((\/static\/[^)]+)\)/g, (_, alt, path) => `![${alt}](${base}${path})`) + return md.replace(/!\[([^\]]*)\]\((?!https?:\/\/|data:|\/\/)(\/[^)]+)\)/g, (_, alt, path) => `![${alt}](${base}${path})`) } // backend 用 note_helper 在笔记开头插一行 '> 来源链接:URL'。侧边栏顶部已经有原片链接卡片, diff --git a/BillNote_extension/src/sidepanel/Sidepanel.vue b/BillNote_extension/src/sidepanel/Sidepanel.vue index 155625b7..f916e5c1 100644 --- a/BillNote_extension/src/sidepanel/Sidepanel.vue +++ b/BillNote_extension/src/sidepanel/Sidepanel.vue @@ -1,6 +1,6 @@