From e40cb189c88cd15eed2831ecc4817ae13d613511 Mon Sep 17 00:00:00 2001 From: Zui Young Date: Fri, 12 Jun 2026 10:28:52 +0800 Subject: [PATCH] feat: download pages scanned as sitemap.txt from about modal Clicking the crawl summary link (e.g. "Intelligent crawl (1000 pages)") in the about modal now triggers a browser download of sitemap.txt containing one scanned URL per line. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../header/aboutScanModal/AboutScanModal.ejs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/static/ejs/partials/scripts/header/aboutScanModal/AboutScanModal.ejs b/src/static/ejs/partials/scripts/header/aboutScanModal/AboutScanModal.ejs index 51512559..ecc1536c 100644 --- a/src/static/ejs/partials/scripts/header/aboutScanModal/AboutScanModal.ejs +++ b/src/static/ejs/partials/scripts/header/aboutScanModal/AboutScanModal.ejs @@ -48,4 +48,23 @@ document.getElementById('pagesScannedModalLabel').innerHTML = title; document.getElementById('pagesScannedModalToggleTxt').innerHTML = title; + + const crawlToggleBtn = document.querySelector('[aria-controls="view-crawl"]'); + if (crawlToggleBtn) { + crawlToggleBtn.addEventListener('click', function () { + const pages = scanData.pagesScanned; + if (!pages || pages.length === 0) return; + + const content = pages.map(page => page.url).join('\n'); + const blob = new Blob([content], { type: 'text/plain;charset=utf-8;' }); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = 'sitemap.txt'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + }); + }