From 6ad6588633ec9f8138a1b39a9187d0945dad79c2 Mon Sep 17 00:00:00 2001 From: Jaidyn Ann <10477760+JadedCtrl@users.noreply.github.com> Date: Fri, 31 May 2024 22:35:08 -0500 Subject: [PATCH] Update README.md, mention new --source argument --- README.md | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1be0e28..6261919 100644 --- a/README.md +++ b/README.md @@ -6,27 +6,44 @@ file, mirroring its remote images, stylesheets, and other resources. ## Usage ``` -usage: mirror-img [-h] [-d DIR] [-b BASE] HTML_FILE - mirror-img [-h] [-d DIR] [-b BASE] +usage: mirror-img [-h] [-d DIR] [-b BASE] [-s URL] HTML_FILE + mirror-img [-h] [-d DIR] [-b BASE] [-s URL] Available options: -h, --help print this help text. - -b, --base path to mirror directory used in URLs + -b, --base ARG path to mirror directory used in URLs + -s, --source ARG URL used to resolve & mirror relative URLs -d, --downloads ARG directory for all mirrored files ``` ### Examples +### Remote In order to mirror a webpage, you can simply download it and pipe it into mirror-img: ``` $ curl https://www.gnu.org/philosophy/philosophy.html | mirror-img > philosophy.html ``` -And now `philosophy.html` will be a fully-local HTML file, with no external resources! -All mirrored content will be found in the `mirror/` directory, and all links -have been adjusted accordingly. +And now `philosophy.html` is a fully-local HTML file with no external resources! +… at least, it *would* be. Notice how some resources, like the CSS, don’t load. +This is because they are defined as *relative* links (e.g., “../style.css” +rather than “https://invalid.tld/style.css”). In order for these to be +mirrored as well, mirror-img needs to somehow know the source URL. + +You can use the `--source` argument to provide the source URL, so +relatively-linked resources can be mirrored, too: + +``` +$ SOURCE_URL="https://www.gnu.org/philosophy/philosophy.html" +$ curl "$SOURCE_URL" | mirror-img --source "$SOURCE_URL" > philosophy.html +``` + +*Now* we’re done! All mirrored content will be found in the `mirror/` +directory, and all links have been adjusted accordingly. + +#### Local If you’d like to change the download directory, you can use the `--downloads` -argument. To change the directory used in the output HTML’s URLs, you can +argument. To change the directory used in the output-HTML’s URLs, you can use `--base`. For example, if you’d like to mirror files into `/tmp/mirrors/` but have URLs