summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2020-12-02 23:45:02 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2020-12-02 23:45:02 +0100
commit352602822375e3eccaf6b42a016a046f820f43a1 (patch)
treec8e4155945c52b0690060f2fabeb39486c430d60
parent266d5705cd0fac2157705f4186583ffc7c49e693 (diff)
downloadguix-352602822375e3eccaf6b42a016a046f820f43a1.tar.gz
gnu: Add monolith.
* gnu/packages/web.scm (monolith): New variable.
-rw-r--r--gnu/packages/web.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index ff9be409e4..1a639f5343 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -74,6 +74,7 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system ant)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
@@ -92,6 +93,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
@@ -228,6 +230,54 @@ Interface} specification.")
     (license license:asl2.0)
     (home-page "https://modwsgi.readthedocs.io/")))
 
+(define-public monolith
+  (package
+    (name "monolith")
+    (version "2.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Y2Z/monolith.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16k5mp64a5l063rdj65hbpx414xv0bqdvhvz49k8018f2a2jj5xl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-cssparser" ,rust-cssparser-0.27)
+        ("rust-html5ever" ,rust-html5ever-0.24)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://github.com/Y2Z/monolith")
+    (synopsis "Command line tool for saving web pages as a single HTML file")
+    (description
+     "Monolith bundles any web page into a single HTML file.  You can finally
+replace that gazillion of open tabs with a gazillion of @file{.html} files
+stored somewhere on your precious little drive.
+
+Unlike conventional ``Save page as…'', Monolith not only saves the
+target document, it embeds CSS, 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 @samp{wget -mpk}, Monolith embeds
+all assets as data URLs and therefore displays the saved page exactly
+the same, being completely separated from the Internet.")
+    (license license:unlicense)))
+
 (define-public nginx
   (package
     (name "nginx")