9 个稳定版本
2.8.1 | 2024年1月14日 |
---|---|
2.7.0 | 2022年11月10日 |
2.6.1 | 2021年7月4日 |
2.4.1 | 2021年3月9日 |
0.1.0 |
|
#2 在 #single-page 中
341 每月下载量
120KB
2.5K SLoC
_____ ______________ __________ ___________________ ___
| \ / \ | | | | | |
| \_/ __ \_| __ | | ___ ___ |__| |
| | | | | | | | | | | |
| |\ /| |__| _ |__| |____| | | | | __ |
| | \___/ | | \ | | | | | | |
|___| |__________| \_____________________| |___| |___| |___|
数据收藏家的梦想成真:将任何网页打包成一个单独的 HTML 文件。您现在可以用成千上万的 .html 文件替换那无数的打开标签页,这些文件存储在您宝贵的硬盘上。
与传统的“另存为网页”不同,monolith
不仅保存目标文档,还一次性嵌入 CSS、图像和 JavaScript 资产,生成一个令人愉悦的、易于存储和共享的单一 HTML5 文档。
与使用 wget -mpk
保存网站相比,此工具将所有资产嵌入为数据 URL,因此即使没有网络连接,浏览器也能准确地渲染保存的页面。
安装
使用 Cargo(跨平台)
cargo install monolith
通过 Homebrew(macOS 和 GNU/Linux)
brew install monolith
通过 Chocolatey(Windows)
choco install monolith
通过 MacPorts(macOS)
sudo port install monolith
使用 Snapcraft(GNU/Linux)
snap install monolith
使用 Guix(GNU/Linux)
guix install monolith
使用 AUR(Arch Linux)
yay monolith
使用 aports(Alpine Linux)
apk add monolith
使用 FreeBSD 软件包(FreeBSD)
pkg install monolith
使用 FreeBSD 端口(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
从 源代码 中获取
依赖项:libssl
git clone https://github.com/Y2Z/monolith.git
cd monolith
make install
使用 预构建的二进制文件(Windows、基于ARM的设备等)
每个版本都包含 Windows、GNU/Linux 以及非标准 CPU 架构平台上的预构建二进制文件。
使用方法
monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o portishead-roads-lyrics.html
cat index.html | monolith -aIiFfcMv -b https://original.site/ - > result.html
选项
-a
:排除音频源-b
:使用自定义base URL
-B
:禁止从指定的域名(域)检索资产-c
:排除 CSS-C
:从file
读取 cookie-d
:仅允许从指定的domain(s)
检索资产-e
:忽略网络错误-E
:使用自定义encoding
保存文档-f
:省略框架-F
:排除网页字体-h
:打印帮助信息-i
:删除图像-I
:隔离文档-j
:排除 JavaScript-k
:接受无效的 X.509(TLS)证书-M
:不要添加时间戳和 URL 信息-n
:提取 NOSCRIPT 元素的内部内容-o
:将输出写入file
(使用“-”表示标准输出)-s
:静默模式-t
:调整网络请求超时
-u
:提供自定义User-Agent
-v
:排除视频
域名白名单和黑名单
选项 -d
和 -B
提供了控制可以用于检索资产域名的方法,例如:
monolith -I -d example.com -d www.example.com https://example.com -o example-only.html
monolith -I -B -d .googleusercontent.com -d googleanalytics.com -d .google.com https://example.com -o example-no-ads.html
动态内容
Monolith 没有内置 JavaScript 引擎,因此某些在初始加载后检索并显示数据的网站可能需要使用额外的工具。
例如,可以使用 Chromium(Chrome)作为此类页面的预处理器
chromium --headless --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html
代理
请设置环境变量 https_proxy
、http_proxy
和 no_proxy
。
贡献
如果发现问题,请提交 issue,这有助于改进本项目。
相关项目
- Monolith Chrome 扩展:https://github.com/rhysd/monolith-of-web
- Pagesaver:https://github.com/distributed-mind/pagesaver
- 个人 WayBack Machine:https://github.com/popey/pwbm
- Hako:https://github.com/dmpop/hako
- Monk:https://github.com/monk-dev/monk
许可
在法律允许的范围内,作者已将本软件的所有版权相关和邻近权利贡献给全球公共领域。本软件分发时不附带任何保证。
请注意,monolith
并不了解您的浏览器会话。
依赖项
~13–29MB
~555K SLoC