summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core/Resource.hs
blob: 566bb2602c8182f43d013f7041a3fafd782e1048 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- | Module exporting the simple 'Resource' type
--
module Hakyll.Core.Resource
    ( Resource
    , unResource
    , resource
    , fromIdentifier
    , toIdentifier
    ) where

import Hakyll.Core.Identifier

-- | A resource
--
newtype Resource = Resource {unResource :: FilePath}
    deriving (Eq, Show, Ord)

-- | Smart constructor to ensure we have @/@ as path separator
--
resource :: FilePath -> Resource
resource = fromIdentifier . parseIdentifier

-- | Create a resource from an identifier
--
fromIdentifier :: Identifier a -> Resource
fromIdentifier = Resource . toFilePath

-- | Map the resource to an identifier. Note that the group will not be set!
--
toIdentifier :: Resource -> Identifier a
toIdentifier = parseIdentifier . unResource