_____ ______________ __________ ___________________ ___
| / | | | | | |
| _/ __ _| __ | | ___ ___ |__| |
| | | | | | | | | | | |
| | /| |__| _ |__| |____| | | | | __ |
| | ___/ | | | | | | | | |
|___| |__________| _____________________| |___| |___| |___|
Le rêve d'un collectionneur de données devenu réalité : regrouper n'importe quelle page Web dans un seul fichier HTML. Vous pouvez enfin remplacer cette multitude d'onglets ouverts par une multitude de fichiers .html stockés quelque part sur votre précieux petit disque.
Contrairement au classique « Enregistrer la page sous », monolith
enregistre non seulement le document cible, mais il intègre simultanément les ressources CSS, image et JavaScript, produisant ainsi un seul document HTML5 agréable à stocker et à partager.
Comparé à l'enregistrement de sites Web avec wget -mpk
, cet outil intègre tous les actifs sous forme d'URL de données et permet donc aux navigateurs d'afficher la page enregistrée exactement telle qu'elle était sur Internet, même lorsqu'aucune connexion réseau n'est disponible.
cargo install monolith
brew install monolith
choco install monolith
scoop install main/monolith
winget install --id=Y2Z.Monolith -e
sudo port install monolith
snap install monolith
guix install monolith
nix-env -iA nixpkgs.monolith
flox install monolith
pacman -S monolith
apk add monolith
xbps-install -S monolith
pkg install monolith
cd /usr/ports/www/monolith/
make install clean
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
Dépendances : libssl
, cargo
cargo -v
Si cargo n'est pas déjà installé, installez-le et ajoutez-le à votre $PATH
existant (paraphrasant les instructions d'installation officielles) :
curl https://sh.rustup.rs -sSf | sh
. "$HOME/.cargo/env"
Procédez à l'installation à partir des sources :
git clone https://github.com/Y2Z/monolith.git
cd monolith
make install
Chaque version contient des binaires prédéfinis pour Windows, GNU/Linux, ainsi que des plates-formes avec une architecture CPU non standard.
monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o portishead-roads-lyrics.html
cat some-site-page.html | monolith -aIiFfcMv -b https://some.site/ - > some-site-page-with-assets.html
-a
: Exclure les sources audio-b
: utiliser custom base URL
-B
: Interdire la récupération des actifs du ou des domaines spécifiés-c
: exclure CSS-C
: Lire les cookies du file
-d
: Autoriser la récupération des actifs uniquement à partir domain(s)
spécifiés-e
: Ignorer les erreurs réseau-E
: Enregistrer le document en utilisant custom encoding
-f
: Omettre les images-F
: exclure les polices Web-h
: Imprimer les informations d'aide-i
: Supprimer les images-I
: Isoler le document-j
: exclure JavaScript-k
: Accepte les certificats X.509 (TLS) non valides-M
: Ne pas ajouter d'informations d'horodatage et d'URL-n
: Extraire le contenu des éléments NOSCRIPT-o
: Écrire la sortie dans file
(utilisez "-" pour STDOUT)-s
: Tais-toi-t
: Ajuster network request timeout
-u
: Fournir custom User-Agent
-v
: Exclure les vidéos Les options -d
et -B
permettent de contrôler les domaines à partir desquels les actifs peuvent être récupérés, par exemple :
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 ne dispose pas de moteur JavaScript, par conséquent les sites Web qui récupèrent et affichent des données après le chargement initial peuvent nécessiter l'utilisation d'outils supplémentaires.
Par exemple, Chromium (Chrome) peut être utilisé comme préprocesseur pour de telles pages :
chromium --headless --window-size=1920,1080 --run-all-compositor-stages-before-draw --virtual-time-budget=9000 --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html
Veuillez définir les variables d'environnement https_proxy
, http_proxy
et no_proxy
.
Veuillez ouvrir un problème si quelque chose ne va pas, cela contribue à améliorer ce projet.
Dans la mesure où la loi le permet, le ou les auteurs ont consacré tous les droits d'auteur et droits voisins de ce logiciel au domaine public mondial. Ce logiciel est distribué sans aucune garantie.