Implement language as Maybe parameter for contexts.
This commit is contained in:
parent
332541cdfa
commit
b43909cbcc
@ -30,34 +30,60 @@ main = hakyll $ do
|
|||||||
|
|
||||||
match "posts/*" $ do
|
match "posts/*" $ do
|
||||||
route $ setExtension "html"
|
route $ setExtension "html"
|
||||||
compile $ pandocCompiler
|
compile $ do
|
||||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
identifier <- getUnderlying
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
metadata <- getMetadata identifier
|
||||||
>>= relativizeUrls
|
let language = lookupString "language" metadata
|
||||||
|
|
||||||
|
pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/post.html" (postCtx language)
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" (postCtx language)
|
||||||
|
>>= relativizeUrls
|
||||||
|
|
||||||
match "events/*" $ do
|
match "events/*" $ do
|
||||||
route $ setExtension "html"
|
route $ setExtension "html"
|
||||||
compile $ pandocCompiler
|
compile $ do
|
||||||
>>= loadAndApplyTemplate "templates/event.html" postCtx
|
identifier <- getUnderlying
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
metadata <- getMetadata identifier
|
||||||
>>= relativizeUrls
|
let language = lookupString "language" metadata
|
||||||
|
|
||||||
|
pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/event.html" (postCtx language)
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" (postCtx language)
|
||||||
|
>>= relativizeUrls
|
||||||
|
|
||||||
match "pages/en/plamo/**" $ do
|
match "pages/en/plamo/**" $ do
|
||||||
route $ setExtension "html"
|
route $ setExtension "html"
|
||||||
compile $ pandocCompiler
|
compile $ do
|
||||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
identifier <- getUnderlying
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
metadata <- getMetadata identifier
|
||||||
>>= relativizeUrls
|
let language = lookupString "language" metadata
|
||||||
|
|
||||||
|
let dateValue = lookupString "date" metadata
|
||||||
|
modelKitTemplate =
|
||||||
|
if dateValue == Just "1990-01-01"
|
||||||
|
then "templates/model-kit-not-ready.html"
|
||||||
|
else "templates/model-kit.html"
|
||||||
|
|
||||||
|
pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate modelKitTemplate (postCtx language)
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" (postCtx language)
|
||||||
|
>>= relativizeUrls
|
||||||
|
|
||||||
create ["archive.html"] $ do
|
create ["archive.html"] $ do
|
||||||
route idRoute
|
route idRoute
|
||||||
compile $ do
|
compile $ do
|
||||||
|
identifier <- getUnderlying
|
||||||
|
metadata <- getMetadata identifier
|
||||||
|
let language = lookupString "language" metadata
|
||||||
|
let lang = fromMaybe "en" language
|
||||||
|
|
||||||
posts <- recentFirst =<< loadAll "posts/*"
|
posts <- recentFirst =<< loadAll "posts/*"
|
||||||
let archiveCtx =
|
let archiveCtx =
|
||||||
listField "posts" postCtx (return posts) `mappend`
|
listField "posts" (postCtx language) (return posts) <>
|
||||||
constField "title" "Archives" `mappend`
|
constField "title" "Archives" <>
|
||||||
constField "language" "en" `mappend`
|
constField "language" lang <>
|
||||||
langDict "en" <>
|
langDict lang <>
|
||||||
defaultContext
|
defaultContext
|
||||||
|
|
||||||
makeItem ""
|
makeItem ""
|
||||||
@ -73,12 +99,17 @@ main = hakyll $ do
|
|||||||
route idRoute
|
route idRoute
|
||||||
compile $ do
|
compile $ do
|
||||||
ident <- getUnderlying
|
ident <- getUnderlying
|
||||||
language <- getMetadataField' ident "language"
|
|
||||||
kits <- recentFirst =<< loadAll "pages/en/plamo/**"
|
kits <- recentFirst =<< loadAll "pages/en/plamo/**"
|
||||||
|
|
||||||
|
-- language <- getMetadataField' ident "language"
|
||||||
|
identifier <- getUnderlying
|
||||||
|
metadata <- getMetadata identifier
|
||||||
|
let language = lookupString "language" metadata
|
||||||
|
let lang = fromMaybe "en" language
|
||||||
|
|
||||||
let plamoCtx =
|
let plamoCtx =
|
||||||
listField "kits" postCtx (return kits) <>
|
listField "kits" (postCtx language) (return kits) <>
|
||||||
langDict language <>
|
langDict lang <>
|
||||||
defaultContext
|
defaultContext
|
||||||
|
|
||||||
getResourceBody
|
getResourceBody
|
||||||
@ -96,8 +127,13 @@ main = hakyll $ do
|
|||||||
compile $ do
|
compile $ do
|
||||||
posts <- recentFirst =<< loadAll "posts/*"
|
posts <- recentFirst =<< loadAll "posts/*"
|
||||||
now <- unsafeCompiler getCurrentTime
|
now <- unsafeCompiler getCurrentTime
|
||||||
ident <- getUnderlying
|
ident <- getUnderlying
|
||||||
language <- getMetadataField' ident "language"
|
--language <- getMetadataField' ident "language"
|
||||||
|
|
||||||
|
identifier <- getUnderlying
|
||||||
|
metadata <- getMetadata identifier
|
||||||
|
let language = lookupString "language" metadata
|
||||||
|
let lang = fromMaybe "en" language
|
||||||
|
|
||||||
-- Seven days from today.
|
-- Seven days from today.
|
||||||
let cutoff = addUTCTime (7 * 24 * 60 * 60) now
|
let cutoff = addUTCTime (7 * 24 * 60 * 60) now
|
||||||
@ -109,9 +145,9 @@ main = hakyll $ do
|
|||||||
|
|
||||||
let indexCtx =
|
let indexCtx =
|
||||||
-- (<> is the modern version of `mappend`.)
|
-- (<> is the modern version of `mappend`.)
|
||||||
listField "posts" postCtx (return posts) <>
|
listField "posts" (postCtx language) (return posts) <>
|
||||||
listField "events" postCtx (return events) <>
|
listField "events" (postCtx language) (return events) <>
|
||||||
langDict language <>
|
langDict lang <>
|
||||||
defaultContext
|
defaultContext
|
||||||
|
|
||||||
getResourceBody
|
getResourceBody
|
||||||
@ -128,12 +164,14 @@ staticPageContext =
|
|||||||
langDict "en" <>
|
langDict "en" <>
|
||||||
defaultContext
|
defaultContext
|
||||||
|
|
||||||
postCtx :: Context String
|
postCtx :: Maybe String -> Context String
|
||||||
postCtx =
|
postCtx language =
|
||||||
dateField "date" "%e %B %Y" `mappend`
|
let lang = fromMaybe "en" language
|
||||||
constField "language" "en" `mappend`
|
in
|
||||||
langDict "en" <>
|
dateField "date" "%e %B %Y" <>
|
||||||
defaultContext
|
constField "language" lang <>
|
||||||
|
langDict lang <>
|
||||||
|
defaultContext
|
||||||
|
|
||||||
isUpcoming :: UTCTime -> Item a -> Compiler Bool
|
isUpcoming :: UTCTime -> Item a -> Compiler Bool
|
||||||
isUpcoming cutoff item = do
|
isUpcoming cutoff item = do
|
||||||
@ -153,6 +191,8 @@ langDict "nl" =
|
|||||||
constField "title-plamo" "Plamo" <>
|
constField "title-plamo" "Plamo" <>
|
||||||
constField "title-radio" "Radio" <>
|
constField "title-radio" "Radio" <>
|
||||||
constField "title-software" "Software" <>
|
constField "title-software" "Software" <>
|
||||||
|
constField "text-plamo-not-ready" "Deze model-kit heeft nog geen gepubliceerd werk." <>
|
||||||
|
constField "text-plamo-back" "Terug naar plamo kits" <>
|
||||||
mempty
|
mempty
|
||||||
|
|
||||||
langDict "jp" =
|
langDict "jp" =
|
||||||
@ -162,6 +202,8 @@ langDict "jp" =
|
|||||||
constField "title-plamo" "プラモ" <>
|
constField "title-plamo" "プラモ" <>
|
||||||
constField "title-radio" "ラジオ" <>
|
constField "title-radio" "ラジオ" <>
|
||||||
constField "title-software" "ソフトウェア" <>
|
constField "title-software" "ソフトウェア" <>
|
||||||
|
constField "text-plamo-not-ready" "この模型キットには、まだ制作例が公開されていません。" <>
|
||||||
|
constField "text-plamo-back" "プラモデルキットに戻る" <>
|
||||||
mempty
|
mempty
|
||||||
|
|
||||||
langDict "en" =
|
langDict "en" =
|
||||||
@ -171,6 +213,8 @@ langDict "en" =
|
|||||||
constField "title-plamo" "Plamo" <>
|
constField "title-plamo" "Plamo" <>
|
||||||
constField "title-radio" "Radio" <>
|
constField "title-radio" "Radio" <>
|
||||||
constField "title-software" "Software" <>
|
constField "title-software" "Software" <>
|
||||||
|
constField "text-plamo-not-ready" "This model kit has no work published for it yet." <>
|
||||||
|
constField "text-plamo-back" "Back to plamo kits" <>
|
||||||
mempty
|
mempty
|
||||||
|
|
||||||
langDict _ = mempty
|
langDict _ = mempty
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user