diff --git a/site.hs b/site.hs
index c756cf6..95a2f9f 100644
--- a/site.hs
+++ b/site.hs
@@ -151,6 +151,12 @@ checkedSubstitute t v = do
--null es `unless` error "template substitution problems"
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.
installPage :: FilePath -> PageInfo -> Site ()
installPage mount pi = do
@@ -160,12 +166,13 @@ installPage mount pi = do
fixedUrlDoc <-
walkURLs (processLink $ pi ^. pagePath . to takeDirectory) $ pi ^. pageDoc
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
putStrLn $ "P -> " ++ 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
installPageRedirects mount pi
@@ -301,7 +308,7 @@ makeTagMeta tag = do
htagMeta <- makeHTagMeta tag
subtagsMeta <- Y.array <$> traverse makeHTagLinkMeta subtags
pagesMeta <- Y.array <$> traverse makePageLinkMeta taggedPages
- pure $
+ addGlobalMeta $
Y.object
[("htag", htagMeta), ("subtags", subtagsMeta), ("pages", pagesMeta)]
diff --git a/templates/head.html b/templates/head.html
index 7244cbe..bd85177 100644
--- a/templates/head.html
+++ b/templates/head.html
@@ -7,6 +7,6 @@
All cards {{#htag}} ยป {{tag}}{{/htag}}
{{/htag}}
-
-
+
+