make the tagging work properly
This commit is contained in:
parent
4026a2e245
commit
4c0efd5c0e
|
@ -84,6 +84,15 @@ h6 {
|
|||
font-weight: 300;
|
||||
}
|
||||
|
||||
.sidebox ol {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.sidebox ul {
|
||||
padding-left: 0em;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
/* layout */
|
||||
|
||||
header {
|
||||
|
|
16
site.hs
16
site.hs
|
@ -10,7 +10,7 @@ import qualified Data.Aeson.KeyMap as KM
|
|||
import qualified Data.ByteString.Lazy as B
|
||||
import Data.Digest.Pure.SHA (sha256, showDigest)
|
||||
import Data.Foldable (traverse_)
|
||||
import Data.List (inits, nub)
|
||||
import Data.List (inits, nub, sort)
|
||||
import Data.List.Extra (groupSort)
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.Set as S
|
||||
|
@ -157,6 +157,18 @@ addGlobalMeta (Y.Object m) = do
|
|||
r <- fromString <$> use urlBase
|
||||
pure . Y.Object $ KM.insert "root" r m
|
||||
|
||||
-- | Add page-specific information to the metadata. In this instance, this just
|
||||
-- expands the tags for rendering. Eventually would be nice to have the timestamps
|
||||
-- and possibly other info sourced right here.
|
||||
addPageMeta :: PageInfo -> Y.Value -> Site Y.Value
|
||||
addPageMeta pi (Y.Object m) = do
|
||||
htagMeta <-
|
||||
traverse makeHTagMeta . sort $ pi ^.. pageMeta . key "tags" . values .
|
||||
_String .
|
||||
to T.unpack .
|
||||
to splitDirectories
|
||||
pure . Y.Object $ KM.insert "htags" (Y.array htagMeta) m
|
||||
|
||||
-- | Render a page using the current template.
|
||||
installPage :: FilePath -> PageInfo -> Site ()
|
||||
installPage mount pi = do
|
||||
|
@ -169,7 +181,7 @@ installPage mount pi = do
|
|||
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
|
||||
meta <- addGlobalMeta meta >>= addPageMeta pi
|
||||
io $ do
|
||||
putStrLn $ "P -> " ++ file
|
||||
makeDirectories file
|
||||
|
|
|
@ -23,17 +23,17 @@
|
|||
<div class="flex-sidefill-l"></div>
|
||||
<div class="content-holder">
|
||||
<div class="sidebox">
|
||||
{{?htags}}
|
||||
<div class="sidebar-header">
|
||||
Page categories
|
||||
</div>
|
||||
<div class="sidebar-values">
|
||||
a → b → c
|
||||
</div>
|
||||
<div class="sidebar-header">
|
||||
Last modification
|
||||
</div>
|
||||
<div class="sidebar-values">
|
||||
January 2023
|
||||
<ul>
|
||||
{{#htags}}
|
||||
<li>{{#.}}<a href="{{href}}">{{^tag}}all{{/tag}}{{?tag}} » {{tag}}{{/tag}}{{/.}}</a></li>
|
||||
{{/htags}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/htags}}
|
||||
</div>
|
||||
<div class="content width-content">
|
||||
|
|
|
@ -16,19 +16,19 @@
|
|||
{{^htag}}All cards{{/htag}}
|
||||
</h1>
|
||||
{{?subtags}}<h2>Sub-categories</h2>
|
||||
<ul class="cards-subcategories">
|
||||
{{#subtags}}
|
||||
<li><a href="{{href}}">{{#tags}} » {{.}} {{/tags}}</a></li>
|
||||
{{/subtags}}
|
||||
</ul>
|
||||
<ul class="cards-subcategories">
|
||||
{{#subtags}}
|
||||
<li><a href="{{href}}">{{#tags}} » {{.}} {{/tags}}</a></li>
|
||||
{{/subtags}}
|
||||
</ul>
|
||||
{{/subtags}}
|
||||
{{?pages}}
|
||||
<h2>Cards</h2>
|
||||
<ul class="cards-list">
|
||||
{{#pages}}
|
||||
<li><a href="{{href}}">{{meta.title}}</a></li>
|
||||
{{/pages}}
|
||||
</ul>
|
||||
<h2>Cards</h2>
|
||||
<ul class="cards-list">
|
||||
{{#pages}}
|
||||
<li><a href="{{href}}">{{meta.title}}</a></li>
|
||||
{{/pages}}
|
||||
</ul>
|
||||
{{/pages}}
|
||||
{{> footer.html}}
|
||||
</body>
|
||||
|
|
Loading…
Reference in a new issue