47 changed files with 315 additions and 184 deletions
@ -0,0 +1,2 @@ |
|||
main :: IO () |
|||
main = putStrLn "work in progress" |
@ -1,4 +1,4 @@ |
|||
import Site |
|||
import GreenSite |
|||
|
|||
main :: IO () |
|||
main = site |
@ -1,8 +1,13 @@ |
|||
cradle: |
|||
stack: |
|||
- path: ./src |
|||
component: logans-site:lib |
|||
- path: ./app |
|||
component: logans-site:exe:logans-site-exe |
|||
- path: ./test |
|||
component: logans-site:test:logans-site-test |
|||
- path: "src" |
|||
component: "green-site:lib" |
|||
|
|||
- path: "app/green" |
|||
component: "green-site:exe:green" |
|||
|
|||
- path: "app/site" |
|||
component: "green-site:exe:site" |
|||
|
|||
- path: "test" |
|||
component: "green-site:test:green-site-test" |
|||
|
@ -1,7 +1,7 @@ |
|||
--- |
|||
layout: post |
|||
title: "Sterling Benchmarks" |
|||
created: 2013-06-16T21:12:00-07:00 |
|||
date: 2013-06-16T21:12:00-07:00 |
|||
comments: false |
|||
tags: Functional Programming, Sterling, Language Design |
|||
--- |
@ -1,9 +1,9 @@ |
|||
module Site where |
|||
module GreenSite where |
|||
|
|||
import qualified Data.Text.IO as TIO |
|||
import Data.Time |
|||
import Site.Common |
|||
import Site.Rule (rules) |
|||
import GreenSite.Common |
|||
import GreenSite.Rule (rules) |
|||
import System.Environment (getEnvironment) |
|||
|
|||
site :: IO () |
@ -1,4 +1,4 @@ |
|||
module Site.Compiler where |
|||
module GreenSite.Compiler where |
|||
|
|||
import Control.Monad.Except (catchError) |
|||
import Hakyll |
@ -1,13 +1,13 @@ |
|||
module Site.Compiler.Layout where |
|||
module GreenSite.Compiler.Layout where |
|||
|
|||
import Control.Monad ((<=<)) |
|||
import Data.Binary as B |
|||
import Data.ByteString.Lazy as LBS |
|||
import GHC.Generics hiding (to) |
|||
import GreenSite.Config |
|||
import Hakyll |
|||
import Lens.Micro |
|||
import Lens.Micro.TH |
|||
import Site.Config |
|||
|
|||
data Layout = Layout |
|||
{ _layoutStack :: [Item Template], |
@ -1,19 +1,19 @@ |
|||
module Site.Context |
|||
( module Site.Context.Field, |
|||
module Site.Context.GitCommits, |
|||
module Site.Context.Post, |
|||
module Site.Context.Tag, |
|||
module GreenSite.Context |
|||
( module GreenSite.Context.Field, |
|||
module GreenSite.Context.GitCommits, |
|||
module GreenSite.Context.Post, |
|||
module GreenSite.Context.Tag, |
|||
baseContext, |
|||
) |
|||
where |
|||
|
|||
import GreenSite.Config |
|||
import GreenSite.Context.Field |
|||
import GreenSite.Context.GitCommits |
|||
import GreenSite.Context.Post |
|||
import GreenSite.Context.Tag |
|||
import Hakyll (Context, constField) |
|||
import Lens.Micro |
|||
import Site.Config |
|||
import Site.Context.Field |
|||
import Site.Context.GitCommits |
|||
import Site.Context.Post |
|||
import Site.Context.Tag |
|||
|
|||
baseContext :: SiteConfig -> Context String -> Context String |
|||
baseContext config defaultContext = |
@ -1,4 +1,4 @@ |
|||
module Site.Context.GitCommits (gitCommits) where |
|||
module GreenSite.Context.GitCommits (gitCommits) where |
|||
|
|||
import Data.Bool (bool) |
|||
import Data.Maybe (fromJust, isJust) |
@ -1,4 +1,4 @@ |
|||
module Site.Context.Post where |
|||
module GreenSite.Context.Post where |
|||
|
|||
import Hakyll |
|||
|
@ -1,4 +1,4 @@ |
|||
module Site.Context.Tag where |
|||
module GreenSite.Context.Tag where |
|||
|
|||
import Hakyll |
|||
|
@ -1,4 +1,4 @@ |
|||
module Site.Lens where |
|||
module GreenSite.Lens where |
|||
|
|||
import Language.Haskell.TH |
|||
import Lens.Micro |
@ -1,7 +1,7 @@ |
|||
module Site.Lens.Hakyll where |
|||
module GreenSite.Lens.Hakyll where |
|||
|
|||
import GreenSite.Lens |
|||
import Hakyll |
|||
import Site.Lens |
|||
|
|||
makeLensesWithL ''Configuration |
|||
makeLensesWithL ''FeedConfiguration |
@ -1,4 +1,4 @@ |
|||
module Site.Route where |
|||
module GreenSite.Route where |
|||
|
|||
import Data.List (isSuffixOf) |
|||
import Data.String.Utils (join, split) |
@ -1,15 +1,15 @@ |
|||
module Site.Rule where |
|||
module GreenSite.Rule where |
|||
|
|||
import GreenSite.Compiler.Layout |
|||
import GreenSite.Config |
|||
import GreenSite.Rule.Blog |
|||
import GreenSite.Rule.Feed |
|||
import GreenSite.Rule.Js |
|||
import GreenSite.Rule.Page |
|||
import GreenSite.Rule.Robot |
|||
import GreenSite.Rule.Sass |
|||
import GreenSite.Rule.Sitemap |
|||
import Hakyll |
|||
import Site.Compiler.Layout |
|||
import Site.Config |
|||
import Site.Rule.Blog |
|||
import Site.Rule.Feed |
|||
import Site.Rule.Js |
|||
import Site.Rule.Page |
|||
import Site.Rule.Robot |
|||
import Site.Rule.Sass |
|||
import Site.Rule.Sitemap |
|||
|
|||
rules :: SiteConfig -> Rules () |
|||
rules config = do |
@ -1,6 +1,6 @@ |
|||
module Site.Rule.Blog where |
|||
module GreenSite.Rule.Blog where |
|||
|
|||
import Site.Common |
|||
import GreenSite.Common |
|||
|
|||
{-----------------------------------------------------------------------------} |
|||
{- Rules -} |
@ -1,7 +1,7 @@ |
|||
module Site.Rule.Feed (feedRules) where |
|||
module GreenSite.Rule.Feed (feedRules) where |
|||
|
|||
import Site.Common |
|||
import Site.Rule.Blog (loadPublishedPosts) |
|||
import GreenSite.Common |
|||
import GreenSite.Rule.Blog (loadPublishedPosts) |
|||
|
|||
feedRules :: SiteConfig -> Rules () |
|||
feedRules config = do |
@ -1,4 +1,4 @@ |
|||
module Site.Rule.Js (jsRules) where |
|||
module GreenSite.Rule.Js (jsRules) where |
|||
|
|||
import qualified Data.ByteString.Lazy.Char8 as C |
|||
import Hakyll |
@ -1,6 +1,6 @@ |
|||
module Site.Rule.Page (pageRules) where |
|||
module GreenSite.Rule.Page (pageRules) where |
|||
|
|||
import Site.Common |
|||
import GreenSite.Common |
|||
|
|||
pageRules :: SiteConfig -> Rules () |
|||
pageRules config = do |
@ -1,6 +1,6 @@ |
|||
module Site.Rule.Robot where |
|||
module GreenSite.Rule.Robot where |
|||
|
|||
import Site.Common |
|||
import GreenSite.Common |
|||
|
|||
robotsTxtRules :: SiteConfig -> Rules () |
|||
robotsTxtRules config = do |
@ -1,6 +1,6 @@ |
|||
module Site.Rule.Sass (sassRules) where |
|||
module GreenSite.Rule.Sass (sassRules) where |
|||
|
|||
import Site.Common |
|||
import GreenSite.Common |
|||
|
|||
sassRules :: SiteConfig -> Rules () |
|||
sassRules config = do |
@ -1,7 +1,7 @@ |
|||
module Site.Rule.Sitemap (sitemapRules) where |
|||
module GreenSite.Rule.Sitemap (sitemapRules) where |
|||
|
|||
import Site.Common |
|||
import Site.Rule.Blog (loadPublishedPosts) |
|||
import GreenSite.Common |
|||
import GreenSite.Rule.Blog (loadPublishedPosts) |
|||
|
|||
sitemapRules :: SiteConfig -> Rules () |
|||
sitemapRules config = |
@ -1,4 +1,4 @@ |
|||
module Site.Util where |
|||
module GreenSite.Util where |
|||
|
|||
import Data.Char (digitToInt, intToDigit, isDigit) |
|||
import Data.Foldable (sequenceA_) |
@ -1,7 +1,7 @@ |
|||
module Site.Compiler.LayoutSpec where |
|||
module GreenSite.Compiler.LayoutSpec where |
|||
|
|||
import Site.Compiler.Layout |
|||
import Site.TestSupport |
|||
import GreenSite.Compiler.Layout |
|||
import GreenSite.TestSupport |
|||
|
|||
spec :: Spec |
|||
spec = do |
@ -1,7 +1,7 @@ |
|||
module Site.RouteSpec where |
|||
module GreenSite.RouteSpec where |
|||
|
|||
import Data.Bifunctor |
|||
import Site.TestSupport |
|||
import GreenSite.TestSupport |
|||
|
|||
spec :: Spec |
|||
spec = do |
@ -1,7 +1,7 @@ |
|||
module Site.Rule.BlogSpec where |
|||
module GreenSite.Rule.BlogSpec where |
|||
|
|||
import Site.Rule.Blog |
|||
import Site.TestSupport |
|||
import GreenSite.Rule.Blog |
|||
import GreenSite.TestSupport |
|||
|
|||
spec :: Spec |
|||
spec = do |
@ -0,0 +1,22 @@ |
|||
module GreenSite.TestSupport |
|||
( module GreenSite.Common, |
|||
module GreenSite.TestSupport, |
|||
module GreenSite.TestSupport.Compiler, |
|||
module GreenSite.TestSupport.Config, |
|||
module GreenSite.TestSupport.Resource, |
|||
module GreenSite.TestSupport.Routes, |
|||
module GreenSite.TestSupport.TestEnv, |
|||
module Test.Hspec, |
|||
) |
|||
where |
|||
|
|||
import GreenSite.Common |
|||
import GreenSite.TestSupport.Compiler |
|||
import GreenSite.TestSupport.Config |
|||
import GreenSite.TestSupport.Resource |
|||
import GreenSite.TestSupport.Routes |
|||
import GreenSite.TestSupport.TestEnv |
|||
import Test.Hspec |
|||
|
|||
runAll :: [SpecWith a] -> SpecWith a |
|||
runAll = sequenceA_ |
@ -1,10 +1,10 @@ |
|||
module Site.TestSupport.Compiler where |
|||
module GreenSite.TestSupport.Compiler where |
|||
|
|||
import Data.Set as S |
|||
import Hakyll as H |
|||
import Hakyll.Core.Compiler.Internal |
|||
import qualified Hakyll.Core.Logger as Logger |
|||
import Site.TestSupport.TestEnv |
|||
import GreenSite.TestSupport.TestEnv |
|||
import Test.Hspec |
|||
|
|||
type RunCompiler a = Compiler a -> Identifier -> IO (CompilerResult a) |
@ -1,8 +1,8 @@ |
|||
module Site.TestSupport.Config where |
|||
module GreenSite.TestSupport.Config where |
|||
|
|||
import Data.Time |
|||
import Hakyll as H |
|||
import Site.Common |
|||
import GreenSite.Common |
|||
|
|||
defaultTestTimeString :: String |
|||
defaultTestTimeString = "2013-06-16T21:12:00-07:00" |
@ -1,4 +1,4 @@ |
|||
module Site.TestSupport.Resource where |
|||
module GreenSite.TestSupport.Resource where |
|||
|
|||
-- | Creates a spec resource dependent on a bracketed resource and runs the spec with it |
|||
-- |
@ -1,9 +1,9 @@ |
|||
module Site.TestSupport.Routes where |
|||
module GreenSite.TestSupport.Routes where |
|||
|
|||
import Data.Foldable (traverse_) |
|||
import Hakyll as H |
|||
import Site.Common |
|||
import Site.TestSupport.TestEnv |
|||
import GreenSite.Common |
|||
import GreenSite.TestSupport.TestEnv |
|||
import Test.Hspec |
|||
|
|||
type RunRoutes = Routes -> Identifier -> IO (Maybe FilePath, UsedMetadata) |
@ -1,11 +1,11 @@ |
|||
module Site.TestSupport.TestEnv where |
|||
module GreenSite.TestSupport.TestEnv where |
|||
|
|||
import Data.Time |
|||
import Hakyll as H |
|||
import qualified Hakyll.Core.Provider as HP |
|||
import qualified Hakyll.Core.Store as HS |
|||
import Site.Common |
|||
import Site.TestSupport.Config |
|||
import GreenSite.Common |
|||
import GreenSite.TestSupport.Config |
|||
|
|||
data TestEnv = TestEnv |
|||
{ testTime :: ZonedTime, |
@ -1,22 +0,0 @@ |
|||
module Site.TestSupport |
|||
( module Site.Common, |
|||
module Site.TestSupport, |
|||
module Site.TestSupport.Compiler, |
|||
module Site.TestSupport.Config, |
|||
module Site.TestSupport.Resource, |
|||
module Site.TestSupport.Routes, |
|||
module Site.TestSupport.TestEnv, |
|||
module Test.Hspec, |
|||
) |
|||
where |
|||
|
|||
import Site.Common |
|||
import Site.TestSupport.Compiler |
|||
import Site.TestSupport.Config |
|||
import Site.TestSupport.Resource |
|||
import Site.TestSupport.Routes |
|||
import Site.TestSupport.TestEnv |
|||
import Test.Hspec |
|||
|
|||
runAll :: [SpecWith a] -> SpecWith a |
|||
runAll = sequenceA_ |
Loading…
Reference in new issue