Skip to main content

ChromeArchivalPlugin Overview

ChromeArchivalPlugin (packaged in the popup as APTlantis Archival) is a Chrome MV3 extension that turns "I want to keep this page" into a deterministic set of local archival artifacts: page metadata, cleaned article markdown, full-page markdown, screenshots, paginated PDFs, and harvested link lists — all written under a predictable APTlantis/ folder in your downloads.

Who it's for

An operator doing manual web archival/ingestion — saving pages for later processing by other Aptlantis tools rather than relying on a browser's bookmark list or an external "save page" service.

The core concept

Everything runs from a single popup UI, with each action producing a specific file type into a deterministic subfolder:

ActionOutputHow
Add PageTitle + URL + timestamp → browser local storagechrome.storage
Capture Links on PageHarvests HTTP/HTTPS links into the saved listDOM scan
Export ListOne URL per line, plain textchrome.downloads
Metadata captureOpen Graph + JSON-LD → JSONDOM parsing
Article captureClean article markdownReadability.js + Turndown (vendored)
Full-page markdownFull document body → markdown, absolute links/imagesTurndown
ScreenshotsViewport or full-page PNGchrome.tabs / DevTools
PDF exportPaginated PDFchrome.debugger → DevTools Page.printToPDF

Chrome system pages (chrome://, edge://, about:, chrome-error://, view-source:) are intentionally rejected by the screenshot/PDF capture paths — there's nothing meaningful to capture there, and the extension explicitly refuses rather than producing a broken artifact.

Why this shape

Using chrome.debugger's Page.printToPDF (rather than the browser's native print dialog) is the notable technical choice here — it's what makes unattended, paginated PDF export from a popup click possible at all. Vendoring Readability.js and Turndown rather than depending on a build step keeps the extension a plain unpacked directory that loads with zero build tooling — appropriate for a single-operator utility that's reloaded via chrome://extensions rather than distributed through the Chrome Web Store.