summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core/Identifier.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll/Core/Identifier.hs')
-rw-r--r--src/Hakyll/Core/Identifier.hs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/Hakyll/Core/Identifier.hs b/src/Hakyll/Core/Identifier.hs
index 90f0eea..d7bb8c6 100644
--- a/src/Hakyll/Core/Identifier.hs
+++ b/src/Hakyll/Core/Identifier.hs
@@ -34,6 +34,7 @@ module Hakyll.Core.Identifier
( Identifier (..)
, castIdentifier
, parseIdentifier
+ , fromFilePath
, toFilePath
, setGroup
) where
@@ -77,16 +78,24 @@ castIdentifier :: Identifier a -> Identifier b
castIdentifier (Identifier g p) = Identifier g p
{-# INLINE castIdentifier #-}
+
+--------------------------------------------------------------------------------
-- | Parse an identifier from a string
---
parseIdentifier :: String -> Identifier a
-parseIdentifier = Identifier Nothing
- . intercalate "/" . filter (not . null) . split'
+parseIdentifier = Identifier Nothing .
+ intercalate "/" . filter (not . null) . split'
where
split' = map dropTrailingPathSeparator . splitPath
+
+--------------------------------------------------------------------------------
+-- | Create an identifier from a filepath
+fromFilePath :: FilePath -> Identifier a
+fromFilePath = parseIdentifier
+
+
+--------------------------------------------------------------------------------
-- | Convert an identifier to a relative 'FilePath'
---
toFilePath :: Identifier a -> FilePath
toFilePath = identifierPath