Proper string trimming.
This commit is contained in:
parent
9b3babe142
commit
d3ce014d26
2 changed files with 11 additions and 4 deletions
|
@ -18,6 +18,7 @@ import Data.Maybe
|
|||
import System.FilePath
|
||||
import System.IO
|
||||
|
||||
import Text.Hakyll.Util
|
||||
import Text.Pandoc
|
||||
|
||||
-- | A Page is basically key-value mapping. Certain keys have special
|
||||
|
@ -27,7 +28,6 @@ type Page = M.Map String PageValue
|
|||
-- | We use a ByteString for obvious reasons.
|
||||
type PageValue = B.ByteString
|
||||
|
||||
|
||||
-- | Add a key-value mapping to the Page.
|
||||
addContext :: String -> String -> Page -> Page
|
||||
addContext key value = M.insert key (B.pack value)
|
||||
|
@ -61,8 +61,8 @@ readMetaData handle = do
|
|||
line <- hGetLine handle
|
||||
if isDelimiter line then return []
|
||||
else do others <- readMetaData handle
|
||||
return $ (trim . break (== ':')) line : others
|
||||
where trim (key, value) = (key, dropWhile (`elem` ": ") value)
|
||||
return $ (trimPair . break (== ':')) line : others
|
||||
where trimPair (key, value) = (trim key, trim $ tail value)
|
||||
|
||||
isDelimiter :: String -> Bool
|
||||
isDelimiter = L.isPrefixOf "---"
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
module Text.Hakyll.Util
|
||||
( makeDirectories,
|
||||
getRecursiveContents
|
||||
getRecursiveContents,
|
||||
trim
|
||||
) where
|
||||
|
||||
import System.Directory
|
||||
import System.FilePath
|
||||
import Control.Monad
|
||||
import Data.Char
|
||||
|
||||
-- | Given a path to a file, try to make the path writable by making
|
||||
-- all directories on the path.
|
||||
|
@ -27,3 +29,8 @@ getRecursiveContents topdir = do
|
|||
else return [path]
|
||||
return (concat paths)
|
||||
where isProper = not . (== '.') . head
|
||||
|
||||
-- | Trim a string (drop spaces and tabs at both sides).
|
||||
trim :: String -> String
|
||||
trim = reverse . trim' . reverse . trim'
|
||||
where trim' = dropWhile isSpace
|
||||
|
|
Loading…
Reference in a new issue