;; (C) Copyright Collin J. Doering 2021
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see .
;; File: haskell-web.scm
;; Author: Collin J. Doering
;; Date: Nov 24, 2021
(define-module (rekahsoft-gnu packages haskell-web)
#:use-module ((guix licenses)
#:prefix license:)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system haskell)
#:use-module (gnu packages linux)
#:use-module (gnu packages haskell-web)
#:use-module (gnu packages haskell-apps)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages haskell-crypto)
#:use-module (gnu packages haskell-check))
(define-public ghc-lrucache
(package
(name "ghc-lrucache")
(version "1.2.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://hackage.haskell.org/package/lrucache/lrucache-"
version ".tar.gz"))
(sha256
(base32
"11avhnjnb89rvn2s41jhh5r40zgp7r6kb5c0hcfiibpabqvv46pw"))))
(build-system haskell-build-system)
(inputs `(("ghc-contravariant" ,ghc-contravariant)))
(home-page "http://github.com/chowells79/lrucache")
(synopsis "a simple, pure LRU cache")
(description
"This package contains a simple, pure LRU cache, implemented in terms of \"Data.Map\". . It also contains a mutable IO wrapper providing atomic updates to an LRU cache.")
(license license:bsd-3)))
(define-public ghc-hakyll
(package
(name "ghc-hakyll")
(version "4.15.1.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hakyll" version))
(sha256
(base32
"0b3bw275q1xbx8qs9a6gzzs3c9z3qdj7skqhpp09jkchi5kdvhvi"))))
(build-system haskell-build-system)
(inputs (list ghc-aeson
ghc-blaze-html
ghc-blaze-markup
ghc-data-default
ghc-file-embed
ghc-hashable
ghc-lifted-async
ghc-lrucache
ghc-network-uri
ghc-optparse-applicative
ghc-random
ghc-regex-tdfa
ghc-resourcet
ghc-scientific
ghc-tagsoup
ghc-time-locale-compat
ghc-unordered-containers
ghc-vector
ghc-yaml
ghc-wai
ghc-warp
ghc-wai-app-static
ghc-http-types
ghc-fsnotify
ghc-http-conduit
ghc-pandoc))
(native-inputs (list ghc-quickcheck ghc-tasty ghc-tasty-golden
ghc-tasty-hunit ghc-tasty-quickcheck util-linux))
(arguments
`(#:cabal-revision ("9"
"11zdqxmmykw2nbd8isc638cj03vrz8nkicyv35sn7jdw2p690ybh")))
(home-page "http://jaspervdj.be/hakyll")
(synopsis "A static website compiler library")
(description
"Hakyll is a static website compiler library. It provides you with the tools to create a simple or advanced static website using a Haskell DSL and formats such as markdown or RST. You can find more information, including a tutorial, on the website: . * . If you seek assistance, there's: . * A google group: . * An IRC channel, @#hakyll@ on irc.libera.chat (we *do not* have a channel on Freenode anymore) . Additionally, there's the Haddock documentation in the different modules, meant as a reference.")
(license license:bsd-3)))
(define-public ghc-clay
;; Temporarily use tip-of-master as 0.14.0 requires older versions of ghc
(let ((commit "0504045fd7a3e6eb19fec2eac92fb3e81daf84aa")
(revision "1"))
(package
(name "ghc-clay")
(version (git-version "0.14.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sebastiaanvisser/clay")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0f9kl7iqh70nl0lwvpb1mh4r2i1y8x7waaxfqzl7lma84aivkfzd"))))
(build-system haskell-build-system)
(native-inputs (list ghc-hspec ghc-hspec-discover))
(home-page "http://fvisser.nl/clay")
(synopsis "CSS preprocessor as embedded Haskell.")
(description
"Clay is a CSS preprocessor like LESS and Sass, but implemented as an embedded
domain specific language (EDSL) in Haskell. This means that all CSS selectors
and style rules are first class Haskell functions, which makes reuse and
composability easy. . The project is described on . .
The API documentation can be found in the top level module \"Clay\".")
(license license:bsd-3))))