Monolith é uma ferramenta de linha de comando para salvar qualquer página da web como um único arquivo HTML que contém tudo o que é necessário para renderizar a página da web localmente, sem a necessidade de uma conexão ativa com a Internet.
Use isso para salvar páginas da web contendo documentação, artigos wiki e qualquer outra coisa que lhe interesse, para uso local/offline. Como as páginas da web são salvas em HTML simples, use uma ferramenta que pode pesquisar em arquivos para encontrar rapidamente a página da web que você está procurando.
Ao contrário da opção regular "Salvar página como" (ou Ctrl + s
) fornecida pelos navegadores da web para salvar páginas da web em seu computador, que salva ativos da página da web em uma pasta ao lado da página da web salva, esta ferramenta de linha de comando recupera os ativos da página da web e converte-os em URLs de dados base64, usando isso no documento em vez de URLs regulares. Como resultado, ativos de página como Javascript, CSS ou imagens são incorporados ao HTML da página, então tudo que você precisa é um navegador da web para acessar a página da web salva localmente.
A ferramenta também oferece 2 opções úteis: -i
para remover imagens de páginas da web salvas e -j
para excluir JavaScript.
Monolith inicialmente usava Node.js, mas foi muito recentemente (cerca de 11 horas antes da publicação deste artigo) reescrito em Rust. Atualmente, funciona bem para páginas básicas, mas ainda há algumas coisas que precisam ser corrigidas. Por exemplo, a incorporação de importações CSS e fontes da web não é suportada atualmente, embora pareça que o desenvolvedor planeja implementar isso em breve. Com o Monolith 2.1.0, as importações CSS e as fontes da web são suportadas, portanto, esses elementos são incorporados ao arquivo HTML salvo.
Salvar páginas da web que requerem autenticação não funciona no momento. Além disso, salvar vídeos incorporados não funciona, mas isso não seria exatamente viável de qualquer maneira, já que incorporar um vídeo como um URL de dados resultaria em um arquivo HTML muito grande, e se você quiser editar o arquivo HTML, seria bem ruim.
Também é importante notar que o Monolith salva o que está em uma página da web quando é carregada, por isso não funcionará bem com sites que implementam rolagem infinita, especialmente porque isso geralmente é implementado de forma diferente dependendo do site (em meu teste, apenas o artigo inicial foi salvo em tais casos). Ele também não parece lidar muito bem com páginas da web que usam o carregamento lento.
A ideia de salvar qualquer página da web como um único arquivo com todos os ativos incorporados não é nova e existem algumas alternativas por aí. Por exemplo, o navegador Safari permite que você salve páginas individuais da web para visualização offline, armazenando todos os elementos da página em um arquivo da web (extensão de arquivo .webarchive). Também existe o MHTML, um formato de arquivo da web que salva páginas da web em um único arquivo.
Mas eles têm algumas limitações, como exigir o uso de um navegador específico ou cliente de terceiros para salvá-los de visualização. Por exemplo, você só pode salvar e visualizar arquivos .webarchive usando o navegador Safari e algumas soluções de terceiros. Quanto ao MHTML, não é mais compatível com o Firefox, e o Google Chrome recentemente removeu o sinalizador #save-page-as-mhtml
personalizado que anteriormente permitia salvar páginas da web como MHTML (pode haver algumas extensões que trazem de volta essa funcionalidade, eu não verifiquei).
Como o Monolith salva páginas da web como arquivos HTML regulares, você pode usar qualquer navegador da web para visualizá-los. Isso significa que você não depende de soluções de terceiros e não precisa de navegadores da web para continuar a oferecer suporte a um formato de arquivo da web específico, tornando suas páginas da web salvas no futuro.
Você também pode gostar de: Navegue na Wikipedia off-line com WebArchives para Linux
Para instalar o Monolith, usaremos o Cargo, o sistema de construção e gerenciador de pacotes do Rust. Você também precisará instalar o OpenSSL (devel) para poder compilar o Monolith. Instale-os no Linux usando:
sudo apt install cargo libssl-dev
sudo dnf install rust-cargo openssl-devel
sudo pacman -S rust openssl
sudo zypper install cargo libopenssl-devel
sudo eopkg install cargo openssl-devel
Agora você pode obter o fonte do Monolith do Git e instalá-lo:
git clone https://github.com/Y2Z/monolith
cd monolith
cargo install
O binário Monolith é instalado em ~/.cargo/bin
, que não está em seu $PATH
por padrão. Você pode adicioná-lo ao seu PATH (assim você pode digitar "monolith
" sem seu caminho completo para usá-lo) adicionando export PATH="$PATH:$HOME/.cargo/bin
ao seu arquivo ~/.bashrc
ou ~/.zsh
(dependendo do que você está usando). Você pode fazer isso e obter ~/.bashrc
/~/.zsh
usando:
echo "export PATH="$PATH:$HOME/.cargo/bin"" >> ~/.bashrc
. ~/.bashrc
echo "export PATH="$PATH:$HOME/.cargo/bin"" >> ~/.zshrc
. ~/.zshrc
Certifique-se de executar o comando "echo" apenas uma vez, porque adiciona export PATH="$PATH:$HOME/.cargo/bin
a ~/.bashrc
/~/.zsh
cada vez que você o executa.
Agora você pode começar a usar o Monolith para salvar páginas da web com seus recursos incorporados em um único arquivo HTML. Por exemplo, vamos salvar a página da web do Monolith GitHub (https://github.com/Y2Z/monolith
) localmente, em um arquivo chamado monolith.html
:
monolith https://github.com/Y2Z/monolith > monolith.html
Quer remover o JavaScript da página? Adicione -j
, assim:
monolith -j https://github.com/Y2Z/monolith > monolith.html
Da mesma forma, use -i
para remover imagens da página da web salva.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Save Web Pages As Single HTML Files For Offline Use With Monolith (Console)