第250114期 - monolith
12.3k star,一条命令行打包一个网页为html 文件
Monolith 项目简介
Monolith 是一个命令行工具,旨在将完整的网页保存为单个 HTML 文件。这个工具不仅保存目标文档,还嵌入了 CSS、图像和 JavaScript 资源,生成一个单一的 HTML5 文档。与传统的“另存为”功能不同,Monolith 能够将所有资源嵌入为数据 URL,从而使浏览器在没有网络连接的情况下也能准确渲染保存的页面。
项目特点
- 全面保存:Monolith 不仅保存网页的 HTML 内容,还嵌入了所有相关的 CSS、图像和 JavaScript 资源,确保页面在离线状态下也能完美呈现。
- 多平台支持:该工具支持多种操作系统,包括 macOS、Windows 和各种 Linux 发行版。用户可以通过多种包管理器(如 Homebrew、Chocolatey、Scoop 等)安装 Monolith。
- 灵活配置:Monolith 提供了丰富的命令行选项,用户可以根据需要排除特定资源(如音频、视频、CSS、JavaScript 等),自定义基础 URL,设置网络请求超时等。
- 动态内容处理:虽然 Monolith 本身不具备 JavaScript 引擎,但可以结合其他工具(如 Chromium)预处理动态内容,从而保存动态网页。
- 开源和社区支持:Monolith 是一个开源项目,用户可以自由使用、修改和分发。项目在 GitHub 上有活跃的社区,用户可以提交问题、贡献代码。
快速开始
要快速开始使用 Monolith,可以按照以下步骤进行:
-
安装 Monolith:
- 使用 Cargo 安装(跨平台):
cargo install monolith
- 使用 Homebrew 安装(macOS 和 GNU/Linux):
brew install monolith
- 使用 Chocolatey 安装(Windows):
choco install monolith
- 使用 Scoop 安装(Windows):
scoop install main/monolith
- 使用 Winget 安装(Windows):
winget install --id=Y2Z.Monolith -e
- 使用 MacPorts 安装(macOS):
sudo port install monolith
- 使用 Snapcraft 安装(GNU/Linux):
snap install monolith
- 使用 Guix 安装(GNU/Linux):
guix install monolith
- 使用 NixPkgs 安装:
nix-env -iA nixpkgs.monolith
- 使用 Flox 安装:
flox install monolith
- 使用 Pacman 安装(Arch Linux):
pacman -S monolith
- 使用 aports 安装(Alpine Linux):
apk add monolith
- 使用 XBPS Package Manager 安装(Void Linux):
xbps-install -S monolith
- 使用 FreeBSD packages 安装(FreeBSD):
pkg install monolith
- 使用 FreeBSD ports 安装(FreeBSD):
cd /usr/ports/www/monolith/ make install clean
- 使用 pkgsrc 安装(NetBSD、OpenBSD、Haiku 等):
cd /usr/pkgsrc/www/monolith make install clean
- 使用容器安装:
docker build -t y2z/monolith . sudo install -b dist/run-in-container.sh /usr/local/bin/monolith
- 使用 Cargo 安装(跨平台):
-
使用 Monolith 保存网页:
- 保存指定网页为 HTML 文件:
monolith https://example.com -o example.html
- 从标准输入读取 HTML 并保存:
cat some-site-page.html | monolith -aIiFfcMv -b https://some.site/ - > some-site-page-with-assets.html
- 保存指定网页为 HTML 文件:
通过以上步骤,你可以快速开始使用 Monolith,将任意网页保存为单个 HTML 文件,方便离线浏览和分享。
地址:github.com/Y2Z/monolith