New resource module hierarchy

This commit is contained in:
Jasper Van der Jeugt 2011-04-05 22:14:49 +02:00
parent 433f36e6f3
commit 015663657c
16 changed files with 43 additions and 36 deletions

View file

@ -81,14 +81,15 @@ library
Hakyll.Web.RelativizeUrls
Hakyll.Web.Page.Read
Hakyll.Web.Page.Metadata
Hakyll.Core.ResourceProvider.FileResourceProvider
Hakyll.Core.Configuration
Hakyll.Core.Identifier.Pattern
Hakyll.Core.UnixFilter
Hakyll.Core.Util.Arrow
Hakyll.Core.Util.File
Hakyll.Core.Util.String
Hakyll.Core.ResourceProvider
Hakyll.Core.Resource
Hakyll.Core.Resource.Provider
Hakyll.Core.Resource.Provider.File
Hakyll.Core.CompiledItem
Hakyll.Core.Compiler
Hakyll.Core.Run

View file

@ -13,7 +13,7 @@ import Data.List (isPrefixOf)
import System.INotify
import Hakyll.Core.Configuration
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Identifier
-- | Calls the given callback when the directory tree changes

View file

@ -15,7 +15,7 @@ import System.Directory (getModificationTime)
import Hakyll.Core.Configuration
import Hakyll.Core.Identifier
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
-- | A preview thread that periodically recompiles the site.
--

View file

@ -5,7 +5,8 @@ module Hakyll
, module Hakyll.Core.Configuration
, module Hakyll.Core.Identifier
, module Hakyll.Core.Identifier.Pattern
, module Hakyll.Core.ResourceProvider
, module Hakyll.Core.Resource
, module Hakyll.Core.Resource.Provider
, module Hakyll.Core.Routes
, module Hakyll.Core.Rules
, module Hakyll.Core.UnixFilter
@ -34,7 +35,8 @@ import Hakyll.Core.Compiler
import Hakyll.Core.Configuration
import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Routes
import Hakyll.Core.Rules
import Hakyll.Core.UnixFilter

View file

@ -89,7 +89,6 @@ module Hakyll.Core.Compiler
( Compiler
, runCompiler
, getIdentifier
, getIdentifiers
, getRoute
, getRouteFor
, getResourceString
@ -125,7 +124,8 @@ import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
import Hakyll.Core.CompiledItem
import Hakyll.Core.Writable
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Compiler.Internal
import Hakyll.Core.Store
import Hakyll.Core.Rules.Internal
@ -166,13 +166,6 @@ runCompiler compiler identifier provider routes store modified logger = do
getIdentifier :: Compiler a Identifier
getIdentifier = fromJob $ const $ CompilerM $ compilerIdentifier <$> ask
-- | Get all identifiers matching the given pattern
--
getIdentifiers :: Pattern -> Compiler a [Identifier]
getIdentifiers pattern = fromJob $ const $ CompilerM $
matches pattern . map unResource . resourceList
. compilerResourceProvider <$> ask
-- | Get the route we are using for this item
--
getRoute :: Compiler a (Maybe FilePath)

View file

@ -26,7 +26,7 @@ import Control.Category (Category, (.), id)
import Control.Arrow (Arrow, ArrowChoice, arr, first, left)
import Hakyll.Core.Identifier
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Store
import Hakyll.Core.Routes
import Hakyll.Core.Logger

View file

@ -0,0 +1,14 @@
-- | Module exporting the simple 'Resource' type
--
module Hakyll.Core.Resource
( Resource (..)
) where
import Hakyll.Core.Identifier
-- | A resource
--
-- Invariant: the resource specified by the given identifier must exist
--
newtype Resource = Resource {unResource :: Identifier}
deriving (Eq, Show, Ord)

View file

@ -10,9 +10,8 @@
-- Therefore, it is not recommended to read files directly -- you should use the
-- provided 'Resource' methods.
--
module Hakyll.Core.ResourceProvider
( Resource (..)
, ResourceProvider (..)
module Hakyll.Core.Resource.Provider
( ResourceProvider (..)
, resourceExists
, resourceDigest
, resourceModified
@ -27,13 +26,7 @@ import OpenSSL.Digest (MessageDigest (MD5))
import Hakyll.Core.Identifier
import Hakyll.Core.Store
-- | A resource
--
-- Invariant: the resource specified by the given identifier must exist
--
newtype Resource = Resource {unResource :: Identifier}
deriving (Eq, Show, Ord)
import Hakyll.Core.Resource
-- | A value responsible for retrieving and listing resources
--

View file

@ -1,6 +1,6 @@
-- | A concrete 'ResourceProvider' that gets it's resources from the filesystem
--
module Hakyll.Core.ResourceProvider.FileResourceProvider
module Hakyll.Core.Resource.Provider.File
( fileResourceProvider
) where
@ -8,7 +8,8 @@ import Control.Applicative ((<$>))
import qualified Data.ByteString.Lazy as LB
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Identifier
import Hakyll.Core.Util.File
import Hakyll.Core.Configuration

View file

@ -37,7 +37,8 @@ import qualified Data.Set as S
import Data.Typeable (Typeable)
import Data.Binary (Binary)
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
import Hakyll.Core.Compiler.Internal

View file

@ -18,7 +18,8 @@ import Control.Monad.State (State, evalState)
import Data.Monoid (Monoid, mempty, mappend)
import Data.Set (Set)
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
import Hakyll.Core.Compiler.Internal

View file

@ -23,8 +23,9 @@ import Hakyll.Core.Identifier
import Hakyll.Core.Util.File
import Hakyll.Core.Compiler
import Hakyll.Core.Compiler.Internal
import Hakyll.Core.ResourceProvider
import Hakyll.Core.ResourceProvider.FileResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Resource.Provider
import Hakyll.Core.Resource.Provider.File
import Hakyll.Core.Rules.Internal
import Hakyll.Core.DirectedGraph
import Hakyll.Core.DirectedGraph.DependencySolver

View file

@ -12,7 +12,7 @@ import System.Directory (copyFile)
import Data.Typeable (Typeable)
import Data.Binary (Binary)
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Writable
import Hakyll.Core.Compiler
import Hakyll.Core.Identifier

View file

@ -11,7 +11,7 @@ import Data.List (isPrefixOf)
import Control.Arrow ((>>^))
import Hakyll.Core.Compiler
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Core.Util.String
-- | Compiler form of 'compressCss'

View file

@ -67,7 +67,7 @@ import Data.Ord (comparing)
import Hakyll.Core.Identifier
import Hakyll.Core.Compiler
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Web.Page.Internal
import Hakyll.Web.Page.Read
import Hakyll.Web.Page.Metadata

View file

@ -59,7 +59,7 @@ import Text.Hamlet (HamletSettings, defaultHamletSettings)
import Hakyll.Core.Compiler
import Hakyll.Core.Identifier
import Hakyll.Core.ResourceProvider
import Hakyll.Core.Resource
import Hakyll.Web.Template.Internal
import Hakyll.Web.Template.Read
import Hakyll.Web.Page.Internal