diff options
Diffstat (limited to 'src/Hakyll/Web')
-rw-r--r-- | src/Hakyll/Web/CompressCss.hs | 1 | ||||
-rw-r--r-- | src/Hakyll/Web/Feed.hs | 1 | ||||
-rw-r--r-- | src/Hakyll/Web/Paginate.hs | 1 | ||||
-rw-r--r-- | src/Hakyll/Web/Pandoc.hs | 2 | ||||
-rw-r--r-- | src/Hakyll/Web/Pandoc/Biblio.hs | 17 | ||||
-rw-r--r-- | src/Hakyll/Web/Tags.hs | 12 | ||||
-rw-r--r-- | src/Hakyll/Web/Template.hs | 15 | ||||
-rw-r--r-- | src/Hakyll/Web/Template/Context.hs | 10 | ||||
-rw-r--r-- | src/Hakyll/Web/Template/Internal.hs | 2 |
9 files changed, 25 insertions, 36 deletions
diff --git a/src/Hakyll/Web/CompressCss.hs b/src/Hakyll/Web/CompressCss.hs index f3290f3..0534b9f 100644 --- a/src/Hakyll/Web/CompressCss.hs +++ b/src/Hakyll/Web/CompressCss.hs @@ -8,7 +8,6 @@ module Hakyll.Web.CompressCss -------------------------------------------------------------------------------- -import Control.Applicative ((<$>)) import Data.Char (isSpace) import Data.List (isPrefixOf) diff --git a/src/Hakyll/Web/Feed.hs b/src/Hakyll/Web/Feed.hs index 1d18430..8598f8a 100644 --- a/src/Hakyll/Web/Feed.hs +++ b/src/Hakyll/Web/Feed.hs @@ -25,7 +25,6 @@ module Hakyll.Web.Feed -------------------------------------------------------------------------------- import Control.Monad ((<=<)) -import Data.Monoid (mconcat) -------------------------------------------------------------------------------- diff --git a/src/Hakyll/Web/Paginate.hs b/src/Hakyll/Web/Paginate.hs index cd35a2d..65b4525 100644 --- a/src/Hakyll/Web/Paginate.hs +++ b/src/Hakyll/Web/Paginate.hs @@ -13,7 +13,6 @@ module Hakyll.Web.Paginate -------------------------------------------------------------------------------- import Control.Monad (forM_) import qualified Data.Map as M -import Data.Monoid (mconcat) import qualified Data.Set as S diff --git a/src/Hakyll/Web/Pandoc.hs b/src/Hakyll/Web/Pandoc.hs index f6e9ff1..eec0a8a 100644 --- a/src/Hakyll/Web/Pandoc.hs +++ b/src/Hakyll/Web/Pandoc.hs @@ -22,9 +22,7 @@ module Hakyll.Web.Pandoc -------------------------------------------------------------------------------- -import Control.Applicative ((<$>)) import qualified Data.Set as S -import Data.Traversable (traverse) import Text.Pandoc import Text.Pandoc.Error (PandocError (..)) diff --git a/src/Hakyll/Web/Pandoc/Biblio.hs b/src/Hakyll/Web/Pandoc/Biblio.hs index 53e3419..dfe6d93 100644 --- a/src/Hakyll/Web/Pandoc/Biblio.hs +++ b/src/Hakyll/Web/Pandoc/Biblio.hs @@ -23,22 +23,19 @@ module Hakyll.Web.Pandoc.Biblio -------------------------------------------------------------------------------- -import Control.Applicative ((<$>)) -import Control.Monad (replicateM, liftM) -import Data.Binary (Binary (..)) -import Data.Default (def) -import Data.Typeable (Typeable) -import qualified Text.CSL as CSL -import Text.CSL.Pandoc (processCites) -import Text.Pandoc (Pandoc, ReaderOptions (..)) - --------------------------------------------------------------------------------- +import Control.Monad (liftM, replicateM) +import Data.Binary (Binary (..)) +import Data.Default (def) +import Data.Typeable (Typeable) import Hakyll.Core.Compiler import Hakyll.Core.Identifier import Hakyll.Core.Item import Hakyll.Core.Writable import Hakyll.Web.Pandoc import Hakyll.Web.Pandoc.Binary () +import qualified Text.CSL as CSL +import Text.CSL.Pandoc (processCites) +import Text.Pandoc (Pandoc, ReaderOptions (..)) -------------------------------------------------------------------------------- diff --git a/src/Hakyll/Web/Tags.hs b/src/Hakyll/Web/Tags.hs index 0887856..b5b44fc 100644 --- a/src/Hakyll/Web/Tags.hs +++ b/src/Hakyll/Web/Tags.hs @@ -63,13 +63,12 @@ module Hakyll.Web.Tags -------------------------------------------------------------------------------- import Control.Arrow ((&&&)) -import Control.Monad (foldM, forM, forM_) +import Control.Monad (foldM, forM, forM_, mplus) import Data.Char (toLower) import Data.List (intercalate, intersperse, sortBy) import qualified Data.Map as M import Data.Maybe (catMaybes, fromMaybe) -import Data.Monoid (mconcat) import Data.Ord (comparing) import qualified Data.Set as S import System.FilePath (takeBaseName, takeDirectory) @@ -88,8 +87,8 @@ import Hakyll.Core.Item import Hakyll.Core.Metadata import Hakyll.Core.Rules import Hakyll.Core.Util.String -import Hakyll.Web.Template.Context import Hakyll.Web.Html +import Hakyll.Web.Template.Context -------------------------------------------------------------------------------- @@ -103,11 +102,14 @@ data Tags = Tags -------------------------------------------------------------------------------- -- | Obtain tags from a page in the default way: parse them from the @tags@ --- metadata field. +-- metadata field. This can either be a list or a comma-separated string. getTags :: MonadMetadata m => Identifier -> m [String] getTags identifier = do metadata <- getMetadata identifier - return $ maybe [] (map trim . splitAll ",") $ M.lookup "tags" metadata + return $ fromMaybe [] $ + (lookupStringList "tags" metadata) `mplus` + (map trim . splitAll "," <$> lookupString "tags" metadata) + -------------------------------------------------------------------------------- -- | Obtain categories from a page. diff --git a/src/Hakyll/Web/Template.hs b/src/Hakyll/Web/Template.hs index 194949d..65c4ac9 100644 --- a/src/Hakyll/Web/Template.hs +++ b/src/Hakyll/Web/Template.hs @@ -54,7 +54,7 @@ -- The @for@ macro is used for enumerating 'Context' elements that are -- lists, i.e. constructed using the 'listField' function. Assume that -- in a context we have an element @listField \"key\" c itms@. Then --- the snippet +-- the snippet -- -- > $for(key)$ -- > $x$ @@ -70,21 +70,21 @@ -- -- > listField "things" (field "thing" (return . itemBody)) -- > (sequence [makeItem "fruits", makeItem "vegetables"]) --- +-- -- and a template -- -- > I like -- > $for(things)$ --- > fresh $thing$$sep$, and +-- > fresh $thing$$sep$, and -- > $endfor$ -- -- the resulting page would look like -- -- > <p> -- > I like --- > --- > fresh fruits, and --- > +-- > +-- > fresh fruits, and +-- > -- > fresh vegetables -- > </p> -- @@ -129,9 +129,8 @@ module Hakyll.Web.Template -------------------------------------------------------------------------------- import Control.Monad (liftM) -import Control.Monad.Error (MonadError (..)) +import Control.Monad.Except (MonadError (..)) import Data.List (intercalate) -import Data.Monoid (mappend) import Prelude hiding (id) diff --git a/src/Hakyll/Web/Template/Context.hs b/src/Hakyll/Web/Template/Context.hs index 28e2ec5..b6c7994 100644 --- a/src/Hakyll/Web/Template/Context.hs +++ b/src/Hakyll/Web/Template/Context.hs @@ -32,18 +32,13 @@ module Hakyll.Web.Template.Context -------------------------------------------------------------------------------- -import Control.Applicative (Alternative (..), pure, (<$>)) +import Control.Applicative (Alternative (..)) import Control.Monad (msum) import Data.List (intercalate) -import qualified Data.Map as M -import Data.Monoid (Monoid (..)) import Data.Time.Clock (UTCTime (..)) import Data.Time.Format (formatTime) import qualified Data.Time.Format as TF import Data.Time.Locale.Compat (TimeLocale, defaultTimeLocale) -import System.FilePath (splitDirectories, takeBaseName) - --------------------------------------------------------------------------------- import Hakyll.Core.Compiler import Hakyll.Core.Compiler.Internal import Hakyll.Core.Identifier @@ -52,6 +47,7 @@ import Hakyll.Core.Metadata import Hakyll.Core.Provider import Hakyll.Core.Util.String (needlePrefix, splitAll) import Hakyll.Web.Html +import System.FilePath (splitDirectories, takeBaseName) -------------------------------------------------------------------------------- @@ -291,7 +287,7 @@ getItemUTC :: MonadMetadata m -> m UTCTime -- ^ Parsed UTCTime getItemUTC locale id' = do metadata <- getMetadata id' - let tryField k fmt = M.lookup k metadata >>= parseTime' fmt + let tryField k fmt = lookupString k metadata >>= parseTime' fmt paths = splitDirectories $ toFilePath id' maybe empty' return $ msum $ diff --git a/src/Hakyll/Web/Template/Internal.hs b/src/Hakyll/Web/Template/Internal.hs index 2d9de5e..45db2e4 100644 --- a/src/Hakyll/Web/Template/Internal.hs +++ b/src/Hakyll/Web/Template/Internal.hs @@ -12,7 +12,7 @@ module Hakyll.Web.Template.Internal -------------------------------------------------------------------------------- -import Control.Applicative (pure, (<$), (<$>), (<*>), (<|>)) +import Control.Applicative ((<|>)) import Control.Monad (void) import Data.Binary (Binary, get, getWord8, put, putWord8) import Data.Typeable (Typeable) |