diff --git a/.gitignore b/.gitignore index 95b948cc..3441877d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ logs debug design docs +research/ samples/**/output # Local env files diff --git a/README.md b/README.md index 44c01f6b..00c91412 100644 --- a/README.md +++ b/README.md @@ -2,107 +2,77 @@ Logo

-# wechat-article-exporter +# wechat-article-exporter fork -![GitHub stars] -![GitHub forks] -![GitHub License] -![Package Version] +这是 `cloudy-liu` 维护的 fork,来源仓库是 +[`wechat-article/wechat-article-exporter`](https://github.com/wechat-article/wechat-article-exporter)。 +原仓库完整说明请看: +[`wechat-article/wechat-article-exporter#readme`](https://github.com/wechat-article/wechat-article-exporter/blob/master/README.md)。 -一款在线的 **微信公众号文章批量下载** 工具,支持导出阅读量与评论数据,无需搭建任何环境,可通过 [在线网站] 使用,同时也支持 docker 私有化部署和 Cloudflare 部署。 +这个 fork 不重复搬运原仓库的大段介绍,重点记录我们在本地部署、批量归档、Markdown 导出和自动化采集场景中做过的优化。当前工作区的开发策略是:同步参考 `upstream`,但分支、提交、推送和 PR 都只走我们自己的 fork,也就是 `origin`。 -支持下载各种文件格式,其中 HTML 格式可100%还原文章排版与样式。 +## 我们优化了什么 -交流群(QQ): -- `991482155` 1群已满,不再加人 -- `775909845` 2群 +### 本地部署默认走 Nitro 下载代理 -## :bell: 重要告知:项目域名调整 -项目域名调整如下: +问题背景是,本地部署后浏览器端下载文章内容和资源时,部分场景仍会沿用项目内置的公开代理列表。一旦公开代理节点失效,用户虽然已经把应用跑在本地,文章内容和资源下载仍可能失败。更麻烦的是,旧版本可能已经把这些公开代理地址持久化进浏览器本地存储,例如 `preferences.privateProxyList` 或 legacy `wechat-proxy`,导致升级后仍然误判为“用户配置了私有代理”,从而继续绕过本地代理。 -| | 下载站 | 文档站 | -|-----|--------------------------------|----------------------------| -| 调整后 | https://down.mptext.top | https://docs.mptext.top | -| 调整前 | https://exporter.wxdown.online | https://docs.wxdown.online | +我们在 fork 中把默认策略改为:没有真实私有代理时,浏览器下载默认使用同源 Nitro 代理。实现上会识别历史内置公开代理地址,并把它们当作旧默认值处理;如果代理列表中混有内置公开代理和用户自定义代理,则过滤掉内置项,只保留用户真正配置的私有代理。 -具体细节可以查看 [这里](https://docs.mptext.top/misc/domain.html)。 +这样本地 `yarn dev`、Docker 私有化部署和 Web 部署都不再默认依赖公共代理池,同时不破坏已有的自建代理配置。 +### Markdown 导出结果更适合归档 -## :books: 如何使用? +原始微信公众号 HTML 里混有大量运行时内容:样式块、内联 CSS、底部操作栏、SVG/data URL 图标、头像、脚本和只服务网页渲染的节点。如果直接丢给 Markdown 转换器,生成的 `.md` 很容易在开头带一大段 CSS,正文夹杂无关 UI 文本,表格和正文结构也不稳定。 -该工具的使用教程已移至 [文档站点](https://docs.mptext.top)。 +当前 fork 的处理思路是尽量避开完整运行时页面,优先解析 `window.cgiDataNew`,再用统一 renderer 还原文章正文结构,最后交给 Turndown 转 Markdown。已有的单篇 Markdown 修复还会在转换前清理 `