global metadata
This commit is contained in:
parent
0ab1096409
commit
8cb15d3960
15
site.hs
15
site.hs
|
@ -151,6 +151,12 @@ checkedSubstitute t v = do
|
||||||
--null es `unless` error "template substitution problems"
|
--null es `unless` error "template substitution problems"
|
||||||
pure txt
|
pure txt
|
||||||
|
|
||||||
|
-- | Add global information to page metadata for rendering (at this point just the url base)
|
||||||
|
addGlobalMeta :: Y.Value -> Site Y.Value
|
||||||
|
addGlobalMeta (Y.Object m) = do
|
||||||
|
r <- fromString <$> use urlBase
|
||||||
|
pure . Y.Object $ KM.insert "root" r m
|
||||||
|
|
||||||
-- | Render a page using the current template.
|
-- | Render a page using the current template.
|
||||||
installPage :: FilePath -> PageInfo -> Site ()
|
installPage :: FilePath -> PageInfo -> Site ()
|
||||||
installPage mount pi = do
|
installPage mount pi = do
|
||||||
|
@ -160,12 +166,13 @@ installPage mount pi = do
|
||||||
fixedUrlDoc <-
|
fixedUrlDoc <-
|
||||||
walkURLs (processLink $ pi ^. pagePath . to takeDirectory) $ pi ^. pageDoc
|
walkURLs (processLink $ pi ^. pagePath . to takeDirectory) $ pi ^. pageDoc
|
||||||
checkTarget file
|
checkTarget file
|
||||||
|
body <- io . runIOorExplode $ writeHtml5String htmlWriteOpts fixedUrlDoc
|
||||||
|
let Y.Object meta' = pi ^. pageMeta
|
||||||
|
meta = Y.Object $ KM.insert "body" (Y.String body) meta'
|
||||||
|
meta <- addGlobalMeta meta
|
||||||
io $ do
|
io $ do
|
||||||
putStrLn $ "P -> " ++ file
|
putStrLn $ "P -> " ++ file
|
||||||
makeDirectories file
|
makeDirectories file
|
||||||
body <- runIOorExplode $ writeHtml5String htmlWriteOpts fixedUrlDoc
|
|
||||||
let Y.Object meta' = pi ^. pageMeta
|
|
||||||
meta = Y.Object $ KM.insert "body" (Y.String body) meta'
|
|
||||||
checkedSubstitute templ meta >>= TIO.writeFile file
|
checkedSubstitute templ meta >>= TIO.writeFile file
|
||||||
installPageRedirects mount pi
|
installPageRedirects mount pi
|
||||||
|
|
||||||
|
@ -301,7 +308,7 @@ makeTagMeta tag = do
|
||||||
htagMeta <- makeHTagMeta tag
|
htagMeta <- makeHTagMeta tag
|
||||||
subtagsMeta <- Y.array <$> traverse makeHTagLinkMeta subtags
|
subtagsMeta <- Y.array <$> traverse makeHTagLinkMeta subtags
|
||||||
pagesMeta <- Y.array <$> traverse makePageLinkMeta taggedPages
|
pagesMeta <- Y.array <$> traverse makePageLinkMeta taggedPages
|
||||||
pure $
|
addGlobalMeta $
|
||||||
Y.object
|
Y.object
|
||||||
[("htag", htagMeta), ("subtags", subtagsMeta), ("pages", pagesMeta)]
|
[("htag", htagMeta), ("subtags", subtagsMeta), ("pages", pagesMeta)]
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,6 @@
|
||||||
All cards {{#htag}} » {{tag}}{{/htag}}
|
All cards {{#htag}} » {{tag}}{{/htag}}
|
||||||
{{/htag}}
|
{{/htag}}
|
||||||
</title>
|
</title>
|
||||||
<link rel="stylesheet" href="{{root}}/style.css" />
|
<link rel="stylesheet" href="{{root}}style.css" />
|
||||||
<link rel="stylesheet" href="{{root}}/fonts.css" />
|
<link rel="stylesheet" href="{{root}}fonts.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
Loading…
Reference in a new issue