diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Hakyll.hs | 2 | ||||
-rw-r--r-- | src/Hakyll/Core/CopyFile.hs | 29 | ||||
-rw-r--r-- | src/Hakyll/Core/Writable.hs | 15 | ||||
-rw-r--r-- | src/Hakyll/Web.hs | 6 |
4 files changed, 33 insertions, 19 deletions
diff --git a/src/Hakyll.hs b/src/Hakyll.hs index 64d5330..aaf36d4 100644 --- a/src/Hakyll.hs +++ b/src/Hakyll.hs @@ -2,6 +2,7 @@ -- module Hakyll ( module Hakyll.Core.Compiler + , module Hakyll.Core.CopyFile , module Hakyll.Core.Configuration , module Hakyll.Core.Identifier , module Hakyll.Core.Identifier.Pattern @@ -26,6 +27,7 @@ module Hakyll ) where import Hakyll.Core.Compiler +import Hakyll.Core.CopyFile import Hakyll.Core.Configuration import Hakyll.Core.Identifier import Hakyll.Core.Identifier.Pattern diff --git a/src/Hakyll/Core/CopyFile.hs b/src/Hakyll/Core/CopyFile.hs new file mode 100644 index 0000000..dbbaaa1 --- /dev/null +++ b/src/Hakyll/Core/CopyFile.hs @@ -0,0 +1,29 @@ +-- | Exports simple compilers to just copy files +-- +{-# LANGUAGE GeneralizedNewtypeDeriving, DeriveDataTypeable #-} +module Hakyll.Core.CopyFile + ( CopyFile (..) + , copyFileCompiler + ) where + +import Control.Arrow ((>>^)) +import System.Directory (copyFile) + +import Data.Typeable (Typeable) +import Data.Binary (Binary) + +import Hakyll.Core.ResourceProvider +import Hakyll.Core.Writable +import Hakyll.Core.Compiler +import Hakyll.Core.Identifier + +-- | Newtype construct around 'FilePath' which will copy the file directly +-- +newtype CopyFile = CopyFile {unCopyFile :: FilePath} + deriving (Show, Eq, Ord, Binary, Typeable) + +instance Writable CopyFile where + write dst (CopyFile src) = copyFile src dst + +copyFileCompiler :: Compiler Resource CopyFile +copyFileCompiler = getIdentifier >>^ CopyFile . toFilePath diff --git a/src/Hakyll/Core/Writable.hs b/src/Hakyll/Core/Writable.hs index db53d9a..a3fd421 100644 --- a/src/Hakyll/Core/Writable.hs +++ b/src/Hakyll/Core/Writable.hs @@ -1,18 +1,13 @@ -- | Describes writable items; items that can be saved to the disk -- -{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving, - DeriveDataTypeable #-} +{-# LANGUAGE FlexibleInstances #-} module Hakyll.Core.Writable ( Writable (..) - , CopyFile (..) ) where -import System.Directory (copyFile) import Data.Word (Word8) import qualified Data.ByteString as SB -import Data.Binary (Binary) -import Data.Typeable (Typeable) -- | Describes an item that can be saved to the disk -- @@ -25,11 +20,3 @@ instance Writable [Char] where instance Writable [Word8] where write p = SB.writeFile p . SB.pack - --- | Newtype construct around 'FilePath' which will copy the file directly --- -newtype CopyFile = CopyFile {unCopyFile :: FilePath} - deriving (Show, Eq, Ord, Binary, Typeable) - -instance Writable CopyFile where - write dst (CopyFile src) = copyFile src dst diff --git a/src/Hakyll/Web.hs b/src/Hakyll/Web.hs index ec05afb..482cf6d 100644 --- a/src/Hakyll/Web.hs +++ b/src/Hakyll/Web.hs @@ -1,8 +1,7 @@ -- | Module exporting commonly used web-related functions -- module Hakyll.Web - ( defaultCopyFile - , defaultApplyTemplate + ( defaultApplyTemplate ) where import Control.Arrow ((>>^)) @@ -14,9 +13,6 @@ import Hakyll.Core.ResourceProvider import Hakyll.Web.Page import Hakyll.Web.Template -defaultCopyFile :: Compiler Resource CopyFile -defaultCopyFile = getIdentifier >>^ CopyFile . toFilePath - defaultApplyTemplate :: Identifier -- ^ Template -> Compiler (Page String) (Page String) -- ^ Compiler defaultApplyTemplate identifier = require identifier (flip applyTemplate) |