add monolith

This commit is contained in:
JMARyA 2024-04-17 19:21:11 +02:00
parent 73875d236f
commit 9094e2efe7
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263

View file

@ -0,0 +1,52 @@
---
obj: application
repo: https://github.com/y2z/monolith
rev: 2024-04-17
---
# monolith
A data hoarders dream come true: bundle any web page into a single [HTML](../../../internet/HTML.md) file. You can finally replace that gazillion of open tabs with a gazillion of .html files stored somewhere on your precious little drive.
Unlike the conventional “Save page as”, monolith not only saves the target document, it embeds [CSS](../../../internet/CSS.md), image, and JavaScript assets all at once, producing a single HTML5 document that is a joy to store and share.
If compared to saving websites with wget -mpk, this tool embeds all assets as [data URLs](../../../internet/Data%20URLs.md) and therefore lets browsers render the saved page exactly the way it was on the Internet, even when no network connection is available.
## Usage
Usage: `monolith url -o out.html`
### Options
| Option | Description |
| ------------------------------------ | -------------------------------------------------- |
| `-a, --no-audio` | Remove audio sources |
| `-b, --base-url <http://localhost/>` | Set custom base URL |
| `-B, --blacklist-domains` | Treat list of specified domains as blacklist |
| `-c, --no-css` | Remove [CSS](../../../internet/CSS.md) |
| `-C, --cookies <cookies.txt>` | Specify [cookie](../../../internet/Cookie.md) file |
| `-d, --domain <example.com>` | Specify domains to use for white/black-listing |
| `-e, --ignore-errors` | Ignore network errors |
| `-E, --encoding <UTF-8>` | Enforce custom charset |
| `-f, --no-frames` | Remove frames and iframes |
| `-F, --no-fonts` | Remove fonts |
| `-i, --no-images` | Remove images |
| `-I, --isolate` | Cut off document from the Internet |
| `-j, --no-js` | Remove JavaScript |
| `-k, --insecure` | Allow invalid X.509 (TLS) certificates |
| `-M, --no-metadata` | Exclude timestamp and source information |
| `-n, --unwrap-noscript` | Replace NOSCRIPT elements with their contents |
| `-o, --output <document.html>` | Write output to <file>, use `-` for STDOUT |
| `-s, --silent` | Suppress verbosity |
| `-t, --timeout <60>` | Adjust network request timeout |
| `-u, --user-agent <Firefox>` | Set custom User-Agent string |
| `-v, --no-video` | Remove video sources |
| `-V, --version` | Print version information |
### Dynamic content
Monolith doesn't feature a JavaScript engine, hence websites that retrieve and display data after initial load may require usage of additional tools.
For example, Chromium (Chrome) can be used to act as a pre-processor for such pages:
```shell
chromium --headless --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html
```
### Proxies
Please set `$https_proxy`, `$http_proxy`, and `$no_proxy` [environment variables](../../../linux/Environment%20Variables.md).