Skip to content

fix: 在目录选择器不可用时降级为浏览器下载 - #198

Open
iamkuangzhang wants to merge 2 commits into
wechat-article:masterfrom
iamkuangzhang:fix/export-fallback-http
Open

fix: 在目录选择器不可用时降级为浏览器下载#198
iamkuangzhang wants to merge 2 commits into
wechat-article:masterfrom
iamkuangzhang:fix/export-fallback-http

Conversation

@iamkuangzhang

Copy link
Copy Markdown

修改说明

这个 PR 修复自托管 HTTP/IP 访问场景下,部分导出按钮可能无响应的问题。

在普通 HTTP 或服务器 IP 访问页面时,浏览器通常不是 secure context,window.showDirectoryPicker() 不可用。原导出流程会优先申请目录写入权限,因此 HTML / TXT / Markdown / Word / PDF 等导出方式在这类环境下可能无法继续执行。

简单来说就是我把本项目部署到云上如果没有配置HTTPS就没法通过HTML / TXT / Markdown / Word / PDF 等方式导出。

本次修改增加了导出降级逻辑:

  • 支持 showDirectoryPicker() 的 HTTPS / localhost 环境:保留原有目录导出行为
  • 不支持 showDirectoryPicker() 或当前页面不是 secure context:自动降级为普通浏览器下载
  • HTML 导出:使用 jszip 打包为 wechat-articles-html.zip
  • TXT / Markdown / Word / PDF:使用 file-saver 直接下载文件

验证情况

已在自托管 HTTP 环境中验证:

  • 单篇文章抓取成功
  • HTML 可导出为 zip
  • Markdown / Word / PDF 可触发浏览器下载
  • JSON / Excel 原有导出不受影响

本地检查:

npx biome check utils/download/Exporter.ts
PUPPETEER_SKIP_DOWNLOAD=true yarn build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant