diff options
| author | MaheshtheDev <[email protected]> | 2025-11-03 00:41:58 +0000 |
|---|---|---|
| committer | MaheshtheDev <[email protected]> | 2025-11-03 00:41:59 +0000 |
| commit | 8d8d6d91aa8cdec49e7e6ef87cbc5622d0bc16ed (patch) | |
| tree | 27862f7558d837615d2af6cea8c30ea03d414096 /apps/browser-extension/entrypoints/background.ts | |
| parent | chore: update readme with recent updates and latest demo (#547) (diff) | |
| download | supermemory-8d8d6d91aa8cdec49e7e6ef87cbc5622d0bc16ed.tar.xz supermemory-8d8d6d91aa8cdec49e7e6ef87cbc5622d0bc16ed.zip | |
feat(browser-extension): webpages capture with markdown conversion (#548)10-31-feat_browser-extension_webpages_capture_with_markdown_conversion
Improved browser extension memory saving with better content handling and added markdown conversion.
### What changed?
- Enhanced memory content handling in the background script to prioritize different content types (explicit content, highlighted text, markdown, HTML, or URL)
- Added HTML to markdown conversion using TurndownService when saving entire pages
- Improved HTML handling by removing script tags before processing
- Updated the web app to display the saved URL from metadata when available
- Added turndown library and its type definitions as dependencies
Diffstat (limited to 'apps/browser-extension/entrypoints/background.ts')
| -rw-r--r-- | apps/browser-extension/entrypoints/background.ts | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/apps/browser-extension/entrypoints/background.ts b/apps/browser-extension/entrypoints/background.ts index 7461af37..131207c2 100644 --- a/apps/browser-extension/entrypoints/background.ts +++ b/apps/browser-extension/entrypoints/background.ts @@ -117,12 +117,36 @@ export default defineBackground(() => { console.warn("Failed to get default project, using fallback:", error) } + let content: string + if (data.content) { + content = data.content + } else if (data.highlightedText) { + content = `${data.highlightedText}\n\n${data?.url || ""}` + } else if (data.markdown) { + content = `${data.markdown}\n\n${data?.url || ""}` + } else if (data.html) { + content = `${data.html}\n\n${data?.url || ""}` + } else { + content = data?.url || "" + } + + const metadata: MemoryPayload["metadata"] = { + sm_source: "consumer", + website_url: data.url, + } + + if (data.ogImage) { + metadata.website_og_image = data.ogImage + } + + if (data.title) { + metadata.website_title = data.title + } + const payload: MemoryPayload = { containerTags: [containerTag], - content: - data.content || - `${data.highlightedText}\n\n${data.html}\n\n${data?.url}`, - metadata: { sm_source: "consumer" }, + content, + metadata, } const responseData = await saveMemory(payload) |