将网页另存为单个HTML文件,以供Monolith离线使用(控制台)

整体式 是一种命令行工具,可将网页另存为单个HTML文件,其中包含无需本地连接即可在本地呈现网页所需的所有内容。使用它来存储包含文档,Wiki文章和其他感兴趣的事物的网页,以供本地/脱机使用。网页以纯HTML格式存储,因此请使用文件搜索工具快速找到所需的网页。
通常的“另存为”(或 Ctrl + s)网络浏览器提供的用于将网页保存到您的计算机的选项。将网页资产保存在已保存网页旁边的文件夹中。此命令行工具获取网页资产,并将其转换为base64数据URL。使用文档代替常规URL。结果,页面资产(例如Javascript,CSS或图像)被嵌入到页面HTML中,因此您所需要的只是一个Web浏览器来访问本地存储的网页。该工具还有两个有用的选项。 -i 从保存的网页中删除图像 -j 为了排除JavaScript,Monolith最初使用Node.js,但最近(发布本文之前约11小时)在Rust中进行了重写。当前,它适用于基本页面,但是仍然需要做一些事情。例如,当前不支持CSS导入和Web字体嵌入,但是开发人员将很快实现。 Monolith 2.1.0支持CSS导入和Web字体,因此这些元素嵌入在保存的HTML文件中。

当前,无法保存需要身份验证的网页。此外,保存嵌入的视频也不起作用,但是将视频嵌入为数据URL会生成非常大的HTML文件,如果要编辑HTML文件,将如下所示。痛
另外,由于Monolith在加载时会保存网页的内容,因此对于实现无限滚动的网站来说效果不佳。尤其是因为这通常是由不同的网站以不同的方式实现的(在测试中,第一种情况是保存文章的)。它似乎无法处理使用延迟加载的网页。
将网页保存为包含所有资产的单个文件的想法并不新鲜,并且有很多选择。例如,Safari Web浏览器可以通过将页面的所有元素保存到Web存档(文件扩展名.webarchive)来保存单个网页以供脱机查看。也有MHTML。这是一种网络存档格式,也将网页存储在单个文件中。
但是,它们有一些局限性,例如要求使用特定的浏览器或第三方客户端来保存视图。例如,您只能使用Safari Web浏览器和某些第三方解决方案来保存和查看.webarchive文件。 MHTML不再支持Firefox。 GoogleChrome最近删除了自定义 #save-page-as-mhtml 以前允许将网页另存为MHTML的标志(可能有扩展名恢复了此功能,但我没有对其进行检查)。
Monolith将网页另存为常规HTML文件,因此您可以使用任何Web浏览器查看它们。这意味着它不依赖于第三方解决方案,不需要Web浏览器来继续支持某些Web存档格式,并且保证将来可以在本地存储网页。对于Linux

安装和使用Monolith Linux

要安装Monolith,请使用Rust的构建系统Cargo和软件包管理器Cargo。您还需要安装OpenSSL(开发),以便可以构建Monolith。使用以下命令在Linux上安装它们:

sudo apt install cargo libssl-dev
  • 软呢帽:
sudo dnf install rust-cargo openssl-devel
  • Arch Linux,Manjaro:
sudo pacman -S rust openssl
  • openSUSE:
sudo zypper install cargo libopenssl-devel
  • Solus OS:
sudo eopkg install cargo openssl-devel

现在你可以得到 整体酱 从Git安装。

git clone https://github.com/Y2Z/monolith
cd monolith
cargo install

Monolith二进制文件安装在以下位置 ~/.cargo/bin这是你的 $PATH 默认情况下。可以添加到PATH(无需完整路径即可使用“整体”) export PATH="$PATH:$HOME/.cargo/bin 给你 ~/.bashrc~/.zsh 文件(取决于您使用的是什么)。你可以用这个做源 ~/.bashrc / ~/.zsh 使用:

  • 对于Bash:
echo "export PATH="$PATH:$HOME/.cargo/bin"" >> ~/.bashrc
. ~/.bashrc
  • 对于Zsh:
echo "export PATH="$PATH:$HOME/.cargo/bin"" >> ~/.zshrc
. ~/.zshrc

仅执行一次“ echo”命令。 export PATH="$PATH:$HOME/.cargo/bin~/.bashrc / ~/.zsh 每次运行。
现在,您可以开始使用Monolith,并使用嵌入在单个HTML文件中的资源来保存网页。例如,保存Monolith GitHub网页(https://github.com/Y2Z/monolith)本地文件中 monolith.html

monolith https://github.com/Y2Z/monolith > monolith.html

是否要从页面中删除JavaScript?后记 -j,例如:

monolith -j https://github.com/Y2Z/monolith > monolith.html

同样,使用 -i 从保存的网页中删除图像。

Sidebar