gildas-lormeau/single-file-cli
CLI tool for saving a faithful copy of a complete web page in a single HTML file (based on SingleFile)
📋 Changes
- Added `--removed-elements-selector` option to remove elements with CSS selectors (comma separated)
- Added `{url-filename}` variable for filename and infobar templates
- Fixed aspect ratio of video screenshots
Fixed minification of stylesheets when the page contains invalid nested tags (fix rendering issues on bilibili)
📋 Changes
- Improved support of invalid nested tags (fix rendering issues on bilibili)
- Fixed issues related to the `:defined` selector in stylesheets and custom elements (fix rendering issues on Reddit)
- Added cleanup of `link[rel=compression-dictionary]` elements (see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/compression-dictionary)
📋 Changes
- Improved displaying of the help info (when passing `--help` or no parameters) by categorizing switches
- Added `--browser-wait-end-delay` switch to add a delay after processing a page
- Refactored code of the CDP client for better readability and maintenance
📋 Changes
- Fixed default CSP disabling to improve security (see #179)
- Fixed support of frames in nested shadow roots
- Fixed displaying of frames in Chromium-based browsers
- Added removal of `attributionsrc` attributes (see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/attributionSrc)
📋 Changes
- Fixed support of CSS nesting, Cascade layers, Feature queries, Container queries, and Scope at-rules when minimizing stylesheets
- Improved removal of stylesheets for alternative devices to screens
- Improved serialization of XML (e.g. SVG) contents
- Improved compression of the "extra data" when saving pages in the "universal self-extracting pages" file format
- Fixed removal of NOSCRIPT tags in BODY (and descendant) tags, and added an hidden option `--remove-no-script-tags` (`true` by default)
- Upgraded Deno to version to version 2.5.6 (see executables)
📋 Changes
- Fixed `--http-header` option
- Added `%encode-base64<value>` and `%decode-base64<value>` template functions
- Added options to position the infobar:
- `--infobar-position-absolute`
- `--infobar-position-top`
- `--infobar-position-bottom`
- `--infobar-position-right`
- `--infobar-position-left`
- + 2 more
📋 Changes
- Added option `--filename-replaced-character`
Fixed "Permission Error" when saving pages to a Shared Network Drive on Windows and using `single-file.exe` (see #141)
📋 Changes
- Added `--browser-capture-max-time` option allowing you to define the maximum time for capturing the page (60s by default)
- Added support of `{url-original}` template variable storing the URL that was originally requested
- Upgraded Deno to version 2.0.6 (cf. built files)
📋 Changes
- Fixed issue where options passed from the CLI where ignored when using `--urls-file` and passing specific options in the file
- Use full-width symbols to replace invalid file name character instead of "_" when possible
- Added `--debug-messages-file` option which can be useful for debugging purposes
- Added option `--blocked-url-pattern`option which can be used to block resources with URLs matching a regular expression
- Fixed minor issues
- Upgraded Deno to `2.0.5` (cf. built files)
📋 Changes
- Added support of options written in lowercase (e.g. `--crawl-replace-urls` instead of `--crawl-replace-URLs`)
- Fixed issue with unexpected downloads in the browser (downloads are now denied)
- Added option `--browser-wait-until-timeout` (1000 ms by default)
- Added support of options for each URL when using `--urls-file` (see [#133](https://github.com/gildas-lormeau/single-file-cli/issues/133#issuecomment-2429347453))
📋 Changes
- Fixed stretched images issue (e.g. on Reddit)
- Fixed issue where textarea contents where not saved
- Fixed warnings related to the sandbox attribute on iframes
- Fixed site URL issue when crawling multiple URLs (see #128)
📋 Changes
- Added detection of unknown options
- Fixed error when rewriting URLs
- Added `--console-messages-file` option to store browser logs in a file
- Fixed minor issues
- Automated push to Docker Hub for amd64 and arm64 platforms
📋 Changes
- Added option `--embed-screenshot-options` to customize the screenshot (see https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-captureScreenshot), `format` cannot be overridden (set to `png`) and `captureBeyondViewport` is set to `true` by default
- Added icon on windows executable
📋 Changes
- Fixed issue when saving pages in a mounted directory with Docker
- Fixed various minor issues
📋 Changes
- Made `--embed-pdf` option compatible with regular ZIP files (and self-extracting files since v2.0.61)
- Added `--embedded-pdf` option to embed a custom PDF file
Added options `--embed-pdf` and `--embed-pdf-options` which can be used when creating self extracting files to embed the page printed in the PDF format. When this option is enabled, the resulting file is compatible with HTML, ZIP, and PDF. It can be combined with `--embed-screenshot` or `--embedded-image` to make the file also compatible with PNG.
📋 Changes
- Fixed option `--accept-language`
- Added option `--group-duplicate-stylesheets` to reduce the size of saved pages when duplicate stylesheets are found in the page (e.g. on Reddit) and when the output file format is "HTML"
- Added optimization to reduce the size of saved pages when duplicate stylesheets are found in the page (e.g. on Reddit) and when the output file format is based on the ZIP format
- Added missing stylesheet URLs in the "manifest.json" file when saving pages as ZIP files
- Updated Deno to version 1.46.3
📋 Changes
- Userscripts can now update the options before processing a page
- Fixed other minor issues
Fixed regression introduced in the version `2.0.57` leading to missing external stylesheets
📋 Changes
- Added `--resolve-links`, `--settings-file`, `--settings-file-profile` options
- Fixed sporadic "Invalid InterceptionId" errors (definitely?)
- Binaries for macOS are now signed
- Upgraded Deno to version `1.46.1`
- Minor fixes
📋 Changes
- improved perf when a page contains duplicate inline stylesheets
- added "{options-json}", "{options-text}" variables, and "%option-value" function in templates
- added support of frames when saving raw pages
- fixed minor issues
Added option `embedded-image` to make compressed files (self-extracting or not) viewable as a PNG image
📋 Changes
- fixed self-extracting file format (i.e. `-self-extracting-archive`)
- added support of frames when saving raw HTML pages (i.e. `--save-raw-page`)
- added `--insert-single-file-comment` option
Fixed `Invalid InterceptionId error` intermittent error
📋 What's Changed
- Added validation of data types in the cookie by @lucianopw in https://github.com/gildas-lormeau/single-file-cli/pull/108
✨ New Contributors
- @lucianopw made their first contribution in https://github.com/gildas-lormeau/single-file-cli/pull/108
📋 Changes
- Added `--infobar-template` and `--open-infobar` options
- Fixed replacement of special characters when using `%date-custom`, `%date-locale`, `%time-locale`, and `%datetime-locale` functions in the infobar template
- Upgraded Deno to version `1.45.5`
- Minor fixes
📋 Changes
- Added `--output-json` option to save the page as a JSON file. The JSON data contains request and response headers.
- Fixed `--dump-content` option
📋 Changes
- Fixed issues related to CSS: support of `@container`, CSS worklets and nested rules
- Added new template function `%datetime-custom` (see the help page of the extension for more info)
- Upgraded Deno to version 1.45.3
