Monolith:把任何网页变成单个文件,资料保存从此不求人

收藏夹里存了几百个链接,过段时间再点,404。技术文档、教程、参考资料——网上这些东西说没就没,而你一点办法都没有。
做技术调研的时候,好不容易找到一篇干货,想着以后再看。一周后原作者删库跑路,你盯着空白页面发呆。
如果你也有这种 PTSD,今天这个工具就是为你准备的。
一、Monolith 是什么
GitHub 上有个叫 Monolith 的项目,15k Star。
一句话概括:它能把你打开的任何一个网页,打包成单个 HTML 文件。不是那种带一堆文件夹的散装结构,而是一个真正独立的文件。
Monolith 会把网页里的 CSS、图片、JS 全部内嵌进去,转成 data URL。保存下来的文件不需要网络,浏览器打开和原网页一模一样。一个文件就是全部,不会因为某个外链失效就缺图少样式。
比浏览器自带的「另存为」强太多了。
二、它能做什么?
浏览器保存网页的功能我基本不用。要么生成 HTML+文件夹的散乱结构,要么保存下来排版全乱、图片打不开。
Monolith 解决了这些烦心事。
2.1 真正的单文件存档
传统的「Save page as」会把网页拆成多个文件,时间一长就散架。
Monolith 的做法简单粗暴:所有资源都塞进一个 HTML 里。你可以丢进硬盘、发邮件、备份到云盘,什么时候打开都是完整的。
这和 wget -mpk 有本质区别——wget 只是下载并改写链接,Monolith 是把资源真正「缝」进文件里。
2.2 白名单与黑名单
有时候你只想保存干净的内容,不想带广告和追踪脚本。Monolith 给了精确控制:
-
•
-d:只允许指定域名的资源 -
•
-B:屏蔽指定域名
比如保存网页但去掉 Google Analytics:
monolith -I -B googleanalytics.com -B .google.com https://example.com -o clean.html2.3 输出格式灵活
默认输出独立的 HTML5 文档,也可以用 -m 参数生成 MHTML 格式(微软的网页存档标准),方便和其他工具兼容。
2.4 处理动态内容
Monolith 本身没有 JS 引擎,对那些异步加载的现代网站(React/Vue 应用),可以先用 Chromium 渲染,再交给 Monolith 保存:
chromium --headless --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html这个组合能搞定绝大多数现代网页。
三、安装与使用
安装简单得离谱。Rust 项目,被打包到了几乎所有主流包管理器。
macOS:
brew install monolithWindows(任选一个):
choco install monolith
scoop install main/monolith
winget install --id=Y2Z.Monolith -eLinux(以 Arch 为例):
pacman -S monolithDocker 也支持:
docker build -t y2z/monolith .使用起来更简单:
# 保存单个网页
monolith https://example.com -o saved.html
# 从管道读取
cat page.html | monolith - -o output.html支持 Windows、macOS、Linux、FreeBSD、NetBSD 等主流系统。
四、适合谁用?
-
• 技术文档收藏者:优质教程、API 文档,一键保存永久离线查看
-
• 学术研究者:保存参考文献,避免链接失效导致引用中断
-
• 内容创作者:收集灵感素材,建立本地资料库
-
• 数字归档爱好者:系统性备份有价值的网页内容
-
• 隐私敏感用户:本地存档,不依赖第三方服务
五、写在最后
网页内容的消逝速度比我们想象的要快。技术博客和论坛帖子的平均寿命只有几年,你今天看到的内容,明天可能就没了。
Monolith 的价值不在于它多复杂,而在于它解决了一个真实的问题:如何让有用的信息真正留下来。15k Star 的关注度说明,很多人都有同样的焦虑。
项目用 Rust 写成,代码扎实,维护活跃。协议是 Public Domain(CC0),你可以随意使用、修改、分发,没有任何限制。
与其赌链接明天还能打开,不如把重要的内容真正握在自己手里。
开源地址:https://github.com/Y2Z/monolith Crates.io:https://crates.io/crates/monolith
觉得有用的话,点个赞、收藏一下,也欢迎转发给需要的朋友。
有什么想聊的,评论区见。
关注「妙想栈」,每天带你发现 GitHub 上最值得关注的 AI 开源项目。