site

My Hakyll-based website generated from a zk notebook

git clone https://git.8pit.net/site.git

  1(use-modules (guix packages)
  2             (guix download)
  3             ((guix licenses) #:prefix license:)
  4             (guix gexp)
  5             (guix build-system haskell)
  6             (gnu packages bash)
  7             (gnu packages commencement)
  8             (gnu packages haskell)
  9             (gnu packages haskell-apps)
 10             (gnu packages haskell-check)
 11             (gnu packages haskell-web)
 12             (gnu packages haskell-xyz)
 13             (gnu packages linux))
 14
 15(define-public ghc-lrucache
 16  (package
 17    (name "ghc-lrucache")
 18    (version "1.2.0.1")
 19    (source
 20     (origin
 21       (method url-fetch)
 22       (uri (hackage-uri "lrucache" version))
 23       (sha256
 24        (base32 "11avhnjnb89rvn2s41jhh5r40zgp7r6kb5c0hcfiibpabqvv46pw"))))
 25    (build-system haskell-build-system)
 26    (properties '((upstream-name . "lrucache")))
 27    (inputs (list ghc-contravariant))
 28    (arguments
 29     `(#:cabal-revision ("1"
 30                         "0v2wc5k2knvv5knbarzspmbzf657r52jyjm9kf6r4ylsmi9cbq0k")))
 31    (home-page "https://github.com/chowells79/lrucache")
 32    (synopsis "Implementation of a simple LRU cache")
 33    (description
 34     "This package contains a simple and pure @acronym{LRU, Least Recently
 35Used} cache.  The implementation is based on @code{Data.Map} from the
 36@code{containers} library.  Further, the package also containes a multiple IO
 37wrapper that enables atomic updates of the cache.")
 38    (license license:bsd-3)))
 39
 40(define-public ghc-hakyll
 41  (package
 42    (name "ghc-hakyll")
 43    (version "4.16.7.1")
 44    (source
 45     (origin
 46       (method url-fetch)
 47       (uri (hackage-uri "hakyll" version))
 48       (sha256
 49        (base32 "18wg5ay6l3ngsmqq00g6y7djmg4f8285kwdi47g0rg70mq6sn0py"))))
 50    (build-system haskell-build-system)
 51    (arguments
 52     (list
 53      #:phases
 54      #~(modify-phases %standard-phases
 55          (add-after 'unpack 'fix-paths
 56            (lambda* (#:key inputs #:allow-other-keys)
 57              (substitute* "tests/Hakyll/Core/UnixFilter/Tests.hs"
 58                (("unixFilter \"([^\"]+)\"" all cmd)
 59                 (string-append
 60                   "unixFilter "
 61                   "\""
 62                   (search-input-file inputs (string-append "/bin/" cmd))
 63                   "\""))))))))
 64    (properties '((upstream-name . "hakyll")))
 65    (inputs (list ghc-aeson
 66                  ghc-blaze-html
 67                  ghc-data-default
 68                  ghc-file-embed
 69                  ghc-hashable
 70                  ghc-lrucache
 71                  ghc-network-uri
 72                  ghc-optparse-applicative
 73                  ghc-random
 74                  ghc-regex-tdfa
 75                  ghc-resourcet
 76                  ghc-scientific
 77                  ghc-tagsoup
 78                  ghc-time-locale-compat
 79                  ghc-vector
 80                  ghc-wai-app-static
 81                  ghc-yaml
 82                  ghc-xml-conduit
 83                  ghc-wai
 84                  ghc-warp
 85                  ghc-http-types
 86                  ghc-fsnotify
 87                  ghc-http-conduit
 88                  ghc-pandoc
 89                  ghc-pandoc-types))
 90    (native-inputs (list ghc-quickcheck ghc-tasty ghc-tasty-golden
 91                         ghc-tasty-hunit ghc-tasty-quickcheck util-linux))
 92    (home-page "https://jaspervdj.be/hakyll/")
 93    (synopsis
 94     "This package provides a Haskell-based static website compiler library")
 95    (description
 96     "Hakyll is a static website compiler library.  That is, it provides you
 97with the tools to create a simple or advanced static website using a Haskell
 98@acronym{EDSL, Embedded Domain Specific Language} and input formats such as
 99Markdown or @acronym{RST, reStructuredText}.")
100    (license license:bsd-3)))
101
102(packages->manifest
103  (list
104    bash-minimal
105    chimerautils
106    cabal-install
107    gcc-toolchain
108    ghc
109    ghc-hakyll))