Repolode
Y2Z

Y2Z/monolith

一款用 Rust 编写的 GUI/CLI 工具,可将网页及其 CSS、图片、JavaScript 打包成单个 HTML 文件。

可替代:Pocket

Star
15,523
Fork
480
未关闭 Issue
51
最近提交
6天前

这是什么?

Monolith 可将网页保存为单个 HTML 文件。与浏览器自带的“另存为”不同,它会把样式表、图片、脚本等资源以 data URL 的形式直接嵌入文档,保存后的页面离线也能按原样显示。

它同时提供命令行工具和图形界面,也可作为 Rust 库使用,支持从标准输入读取 HTML、输出到标准输出,并可指定自定义基础 URL 和 Cookie。通过参数可以排除图片、视频、音频、字体或 JavaScript 等资源,也可以限定只从指定域名下载资源,并设置自定义 User-Agent 与超时时间。

项目本身不包含 JavaScript 引擎,因此对于首屏之后才加载内容的页面,需要先借助无头浏览器导出 DOM 再交给 Monolith 处理。安装方式覆盖 Windows、macOS、Linux、BSD,也支持通过 Docker 运行。

核心功能

  • 01将 CSS、图片和 JavaScript 嵌入为单个 HTML5 文件。
  • 02提供命令行工具、图形界面和 Rust 库三种使用方式。
  • 03支持通过标准输入输出接入管道。
  • 04可选择排除音频、视频、字体、图片或脚本。
  • 05可按域名允许或禁止资源下载。
  • 06支持 Cookie、基础认证和自定义编码。

适用场景

  • 在网页消失前归档文章或页面。
  • 分享一个无需网络即可完整显示的单文件网页。
  • 用本地保存的页面库替代大量打开的浏览器标签页。
  • 在 Shell 脚本或数据管道中自动化抓取网页。

快速上手

  1. 1

    通过 Cargo 安装(跨平台)

    cargo install monolith
  2. 2

    将网页保存为单个 HTML 文件

    monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o %title%.%timestamp%.html

使用前须知

  • README 中提到该工具没有 JavaScript 引擎,因此动态加载内容的页面可能需要借助无头 Chromium 等额外工具。

标签

常见问题

monolith 是什么?
一款用 Rust 编写的 GUI/CLI 工具,可将网页及其 CSS、图片、JavaScript 打包成单个 HTML 文件。 Monolith 可将网页保存为单个 HTML 文件。与浏览器自带的“另存为”不同,它会把样式表、图片、脚本等资源以 data URL 的形式直接嵌入文档,保存后的页面离线也能按原样显示。
monolith 可以免费使用吗?用的什么许可证?
monolith 以 CC0-1.0 许可证开源。用于商业产品前,请先确认许可证条款。
monolith 还在维护吗?
活跃维护中。monolith 最近一次提交是在 2026年10月16日。
monolith 适合用来做什么?
在网页消失前归档文章或页面。 分享一个无需网络即可完整显示的单文件网页。 用本地保存的页面库替代大量打开的浏览器标签页。 在 Shell 脚本或数据管道中自动化抓取网页。
monolith 怎么安装和运行?
通过 Cargo 安装(跨平台): cargo install monolith 将网页保存为单个 HTML 文件: monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o %title%.%timestamp%.html
在哪里获取 monolith?
源代码和安装说明在 GitHub 上:https://github.com/Y2Z/monolith

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目