Compare commits

...

2 Commits

3 changed files with 152 additions and 133 deletions

View File

@ -21,16 +21,43 @@
((guix licenses) #:prefix license:) ((guix licenses) #:prefix license:)
(guix packages) (guix packages)
(guix build-system haskell) (guix build-system haskell)
(gnu packages base)
(rekahsoft-gnu packages haskell-web)) (rekahsoft-gnu packages haskell-web))
(define release-version "0.0.0.0")
(define-public blog-rekahsoft-ca (define-public blog-rekahsoft-ca
(package (package
(name "blog-rekahsoft-ca") (name "blog-rekahsoft-ca")
(version "0.0.0-0") (version release-version)
(source #f) (source (string-append "./dist/blog-rekahsoft-ca-" release-version ".tar.gz"))
(build-system haskell-build-system) (build-system haskell-build-system)
(native-inputs `(("glibc-utf8-locales" ,glibc-utf8-locales)))
(inputs `(("ghc-hakyll" ,ghc-hakyll) (inputs `(("ghc-hakyll" ,ghc-hakyll)
("ghc-clay" ,ghc-clay))) ("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") (home-page "http://git.rekahsoft.ca/rekahsoft/blog-rekahsoft-ca")
(synopsis "Code, templates and content for my Hakyll powered blog at blog.rekahsoft.ca") (synopsis "Code, templates and content for my Hakyll powered blog at blog.rekahsoft.ca")
(description (description

View File

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

View File

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