Compare commits

...

2 Commits

3 changed files with 152 additions and 133 deletions

View File

@ -21,16 +21,43 @@
((guix licenses) #:prefix license:)
(guix packages)
(guix build-system haskell)
(gnu packages base)
(rekahsoft-gnu packages haskell-web))
(define release-version "0.0.0.0")
(define-public blog-rekahsoft-ca
(package
(name "blog-rekahsoft-ca")
(version "0.0.0-0")
(source #f)
(version release-version)
(source (string-append "./dist/blog-rekahsoft-ca-" release-version ".tar.gz"))
(build-system haskell-build-system)
(native-inputs `(("glibc-utf8-locales" ,glibc-utf8-locales)))
(inputs `(("ghc-hakyll" ,ghc-hakyll)
("ghc-clay" ,ghc-clay)))
(outputs `("out" "site" "static"))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-site-script
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
(install-file "site" (string-append out "/bin/"))
#t)))
(add-after 'install-site-script 'build-site
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(site (assoc-ref outputs "site")))
(setenv "LANG" "en_US.UTF-8")
;; For some reason, all files are read-only and need to be adjusted to allow the
;; site to be generated
(for-each make-file-writable (find-files "."))
(invoke "site" "build")
(copy-recursively "_site" site)
#t))))))
(home-page "http://git.rekahsoft.ca/rekahsoft/blog-rekahsoft-ca")
(synopsis "Code, templates and content for my Hakyll powered blog at blog.rekahsoft.ca")
(description

View File

@ -25,6 +25,8 @@
(load "guix.scm")
(setenv "PS1" "\\W [env]\\$ ")
(define dev-transform
(options->transformation
`((with-source . ,(string-append "blog-rekahsoft-ca=" (getcwd))))))
@ -34,5 +36,4 @@
(packages->manifest
`(,(dev-transform blog-rekahsoft-ca)))
(specifications->manifest
`("coreutils"
"glibc-utf8-locales"))))
`("coreutils"))))

View File

@ -24,15 +24,10 @@
import Hakyll
import Control.Monad
import Data.Monoid (mconcat,(<>))
import Data.List (sortBy)
import Data.Map (toList)
import Data.Ord (comparing)
import System.Random
import System.FilePath (takeBaseName)
import System.Process
import System.Exit
import System.IO (hGetContents)
import Text.Parsec
import Text.Pandoc.Options
@ -96,11 +91,7 @@ myConfig = defaultConfiguration
}
main :: IO ()
main = do
-- Get a random number generator before going into Rules monad
stdGen <- getStdGen
hakyllWith myConfig $ do
main = hakyllWith myConfig $ do
match ("action/**" .||. "files/**" .||. "images/**" .||. "fonts/**" .||. "robots.txt") $ do
route idRoute
compile copyFileCompiler