{-# LANGUAGE QuasiQuotes #-} module WWW.Base ( baseConfig , baseHakyll , domain , url , wwwRoot , myHakyllReaderOptions , myHakyllWriterOptions ) where import Prolog import Hakyll import System.Process import Text.Pandoc.Options import Network.URI import Network.URI.Static -- | mathematicaster.org domain :: IsString s => s domain = "mathematicaster.org" url :: URI url = [uri|https://mathematicaster.org/|] -- | /var/www wwwRoot :: IsString s => s wwwRoot = "/var/www" baseConfig :: FilePath -> Configuration baseConfig p = defaultConfiguration { destinationDirectory = "output" , storeDirectory = ".cache" , tmpDirectory = ".cache/tmp" , deploySite = \cfg -> rawSystem "rsync" [ "-aP" , "--delete-after" , "--chown=nginx:nginx" , destinationDirectory cfg <> "/" , "root@" <> domain <> ":" <> wwwRoot <> "/" <> p ] } baseHakyll :: MonadIO m => FilePath -> Rules a -> m () baseHakyll p = liftIO . hakyllWith (baseConfig p) myHakyllReaderOptions :: ReaderOptions myHakyllReaderOptions = defaultHakyllReaderOptions myHakyllWriterOptions :: WriterOptions myHakyllWriterOptions = defaultHakyllWriterOptions { writerHTMLMathMethod = MathJax mempty }