diff options
| -rw-r--r-- | assets/style.css | 9 | ||||
| -rw-r--r-- | site.hs | 16 | ||||
| -rw-r--r-- | templates/header.html | 14 | ||||
| -rw-r--r-- | templates/tag.html | 22 |
4 files changed, 41 insertions, 20 deletions
diff --git a/assets/style.css b/assets/style.css index 87481bd..e5474db 100644 --- a/assets/style.css +++ b/assets/style.css @@ -84,6 +84,15 @@ h6 { font-weight: 300; } +.sidebox ol { + padding-left: 1em; +} + +.sidebox ul { + padding-left: 0em; + list-style-type: none; +} + /* layout */ header { @@ -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 diff --git a/templates/header.html b/templates/header.html index 25d2aba..3e5ac6e 100644 --- a/templates/header.html +++ b/templates/header.html @@ -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"> diff --git a/templates/tag.html b/templates/tag.html index c991ff9..b617996 100644 --- a/templates/tag.html +++ b/templates/tag.html @@ -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> |
