| .github/workflows | ||
| lib | ||
| resources | ||
| .gitignore | ||
| build.sh | ||
| compile.sh | ||
| deno.json | ||
| deno.lock | ||
| dev-build.sh | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| LICENSE | ||
| options.js | ||
| package-lock.json | ||
| package.json | ||
| README.MD | ||
| single-file | ||
| single-file-cli-api.js | ||
| single-file-launcher.js | ||
| single-file-node.bat | ||
| single-file-node.js | ||
| single-file.bat | ||
SingleFile CLI (Command Line Interface)
Introduction
SingleFile can be launched from the command line by running it into a (headless) browser.
It runs through Deno as a standalone script injected into the web page via the Chrome DevTools Protocol instead of being embedded into a WebExtension.
Installation
SingleFile can be run without installing it, just download the executable file and save it in the directory of your choice here: https://github.com/gildas-lormeau/single-file-cli/releases
Make sure Chrome or a Chromium-based browser is installed in the default folder. Otherwise you might need to set the --browser-executable-path option to help SingleFile locating the path of the executable file.
Installation with Docker
-
Installation from Docker Hub
docker pull capsulecode/singlefiledocker tag capsulecode/singlefile singlefile -
Manual installation
git clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.gitcd single-file-clidocker build --no-cache -t singlefile . -
Run
docker run singlefile "https://www.wikipedia.org" -
Run and redirect the result into a file
docker run singlefile "https://www.wikipedia.org" > wikipedia.html -
Run and mount a volume to get the saved file in the current directory
-
Save one page
docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html(Windows)docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html(Linux/UNIX) -
Save one or multiple pages by using the filename template (see
--filename-templateoption)docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false(Windows)docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false(Linux/UNIX)
-
-
An alternative docker file can be found here https://github.com/screenbreak/SingleFile-dockerized. It allows you to save pages from the command line interface or through an HTTP server.
Manual installation
-
Install Deno
-
There are 3 ways to download the code of SingleFile, choose the one you prefer:
-
Install with
npmand runsingle-filevianpx(npmandnpxare installed with Node.js)npm install "single-file-cli" npx single-file ...You can also install SingleFile globally with
-gwhen runningnpm install. -
Download and unzip manually the master archive provided by Github
unzip master.zip . cd single-file-cli-master -
Download with
gitgit clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.git cd single-file-cli
-
-
Make
single-fileexecutable (Linux/Unix/BSD etc.).chmod +x single-file
Run
-
Syntax
single-file <url> [output] [options ...] -
Display help
single-file --help -
Examples
- Dump the HTML content of https://www.wikipedia.org into the console
single-file https://www.wikipedia.org --dump-content- Save https://www.wikipedia.org into
wikipedia.htmlin the current folder
single-file https://www.wikipedia.org wikipedia.html- Save a list of URLs stored into
list-urls.txtin the current folder
single-file --urls-file=list-urls.txt- Save https://www.wikipedia.org and crawl its internal links with the query parameters removed from the URL
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rule="^(.*)\\?.*$ $1"- Save https://www.wikipedia.org and external links only
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=false --crawl-external-links-max-depth=1 --crawl-rewrite-rule="^.*wikipedia.*$"
Compile executables
- Compile executables into
/dist
./compile.sh
License
SingleFile and SingleFile CLI are licensed under AGPL. Code derived from third-party projects is licensed under MIT. Please contact me at gildas.lormeau <at> gmail.com if you are interested in licensing the SingleFile code for a commercial service or product.