From ab802968caf6d2de9c2e2981bdd3791a2057885d Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 23:51:22 +0200 Subject: [PATCH] chore: add custom placeholder and fine tune calepin-toml --- {legacy_docs => site}/CNAME | 0 site/assets/yggdrasil.ico | Bin 0 -> 14242 bytes site/assets/yggdrasil.svg | 43 ++++++++++ site/calepin.toml | 115 ++++++++++++++------------ site/medias/books.typ | 6 -- site/medias/books/le_grand_cahier.typ | 11 +++ site/medias/films.typ | 6 -- site/medias/films/h2g2.typ | 10 +++ site/medias/index.typ | 40 ++++++++- site/medias/plex.typ | 12 +++ site/medias/series.typ | 6 -- site/medias/series/the_expanse.typ | 17 ++++ site/tags.typ | 23 ++++++ 13 files changed, 216 insertions(+), 73 deletions(-) rename {legacy_docs => site}/CNAME (100%) create mode 100644 site/assets/yggdrasil.ico create mode 100644 site/assets/yggdrasil.svg delete mode 100644 site/medias/books.typ create mode 100644 site/medias/books/le_grand_cahier.typ delete mode 100644 site/medias/films.typ create mode 100644 site/medias/films/h2g2.typ create mode 100644 site/medias/plex.typ delete mode 100644 site/medias/series.typ create mode 100644 site/medias/series/the_expanse.typ create mode 100644 site/tags.typ diff --git a/legacy_docs/CNAME b/site/CNAME similarity index 100% rename from legacy_docs/CNAME rename to site/CNAME diff --git a/site/assets/yggdrasil.ico b/site/assets/yggdrasil.ico new file mode 100644 index 0000000000000000000000000000000000000000..6c33aea5ee7222b62dc981b7a95819e43ea5b035 GIT binary patch literal 14242 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 + + + diff --git a/site/calepin.toml b/site/calepin.toml index 80c3fcb..15a4265 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -3,80 +3,89 @@ description = "Personal knowledge base." base-url = "https://yggdrasil.kb28.ch" theme = "calepin" pdf = false +minify = true +search = "pagefind" +logo = "assets/yggdrasil.svg" +favicon = "assets/yggdrasil.ico" + +[robots] +enabled = false + +[pages] +include = ["tags.typ"] +exclude = ["drafts/**"] [static] -include = ["assets/**"] +include = [ + "assets/**", + "CNAME" +] +exclude = ["drafts/**"] -[[menus.main]] -target = "home/index.typ" -label = "Home" +[menus] +main = [ + { label = "Home", target = "home/index.typ" }, + { label = "IT", target = "it/index.typ" }, + { label = "OT", target = "ot/index.typ" }, + { label = "Security", target = "security/index.typ" }, + { label = "Medias", target = "medias/index.typ" }, +] +social = [ + { label = "{icon:simple-icons:gitea}", target = "https://git.kb28.ch/Klagarge/Yggdrasil", aria-label = "Gitea" }, +] -[[menus.main]] -target = "it/index.typ" -label = "IT" -[[menus.main]] -target = "ot/index.typ" -label = "OT" - -[[menus.main]] -target = "security/index.typ" -label = "Security" - -[[menus.main]] -target = "medias/index.typ" -label = "Medias" +[footer] +item = [ + { label = "© 2026" }, + { label = "@Klagarge", target = "https://git.kb28.ch/Klagarge" }, + { label = "@Fastium", target = "https://github.com/Fastium" }, +] [sidebar] fold = true [[sidebar.section]] title = "Home" +item = [ + { target = "home/index.typ" }, + { glob = "home/*" } +] - [[sidebar.section.item]] - target = "home/index.typ" - - [[sidebar.section.item]] - target = "home/cooking.typ" - - [[sidebar.section.item]] - target = "home/washing-clothes.typ" - - [[sidebar.section.item]] - target = "home/gardening.typ" [[sidebar.section]] title = "IT" - - [[sidebar.section.item]] - target = "it/index.typ" +item = [ + { target = "it/index.typ" }, + { glob = "it/*" } +] [[sidebar.section]] title = "OT" - - [[sidebar.section.item]] - target = "ot/index.typ" +item = [ + { target = "ot/index.typ" }, + { glob = "ot/*" } +] [[sidebar.section]] title = "Security" - - [[sidebar.section.item]] - target = "security/index.typ" - - [[sidebar.section.item]] - target = "security/ssh.typ" +item = [ + { target = "security/index.typ" }, + { glob = "security/*" } +] [[sidebar.section]] title = "Medias" - - [[sidebar.section.item]] - target = "medias/index.typ" - - [[sidebar.section.item]] - target = "medias/films.typ" - - [[sidebar.section.item]] - target = "medias/series.typ" - - [[sidebar.section.item]] - target = "medias/books.typ" +target = "medias/index.typ" +item = [ + # { glob = "medias/films/*.typ" }, + # { glob = "medias/series/*.typ" }, + # { glob = "medias/books/*.typ" }, + { target = "medias/index.typ" }, + { glob = "medias/*.typ" }, +] +section = [ + { title = "Films", item = [{ glob = "medias/films/*.typ" }] }, + { title = "Series", item = [{ glob = "medias/series/*.typ" }] }, + { title = "Books", item = [{ glob = "medias/books/*.typ" }] }, +] diff --git a/site/medias/books.typ b/site/medias/books.typ deleted file mode 100644 index 0b798e5..0000000 --- a/site/medias/books.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Books]) -#metadata((title: "Books", translation_key: "medias-books")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/books/le_grand_cahier.typ b/site/medias/books/le_grand_cahier.typ new file mode 100644 index 0000000..82dd99f --- /dev/null +++ b/site/medias/books/le_grand_cahier.typ @@ -0,0 +1,11 @@ +#set document(title: [Le Grand Cahier]) +#metadata(( + translation_key: "le_grand_cahier", + date: "2026-10-10", + author: "Rémi Heredero", + pdf: true +)) + +#title() + +This book is awesome! diff --git a/site/medias/films.typ b/site/medias/films.typ deleted file mode 100644 index a124b6d..0000000 --- a/site/medias/films.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Films]) -#metadata((title: "Films", translation_key: "medias-films")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/films/h2g2.typ b/site/medias/films/h2g2.typ new file mode 100644 index 0000000..1d5e06d --- /dev/null +++ b/site/medias/films/h2g2.typ @@ -0,0 +1,10 @@ +#set document(title: [H2G2]) +#metadata(( + translation_key: "h2g2", + date: "2026-10-10", + author: "Rémi Heredero", + pdf: true +)) + +#title() +One of my favourites films! diff --git a/site/medias/index.typ b/site/medias/index.typ index 29f2c7c..7a28e38 100644 --- a/site/medias/index.typ +++ b/site/medias/index.typ @@ -1,7 +1,43 @@ #set document(title: [Medias]) -#metadata((title: "Overview", translation_key: "medias-index")) +#metadata(( + title: "Overview", + translation_key: "medias-overview", + date: "2026-10-10", + tags: ("medias", "films", "series", "books"), + author: "Rémi Heredero", + summary: "My very opinionned ideas about somes films, series and books", + draft: false, + pdf: false +)) #title() -Placeholder page for the medias category: films, series, books. +Placeholder page for the medias category. The real content comes later. + +#import "@preview/calepin:0.1.0" as calepin +#show: calepin.document + +== Films +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/films/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] + +== Series +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/series/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] + +== Books +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/books/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] diff --git a/site/medias/plex.typ b/site/medias/plex.typ new file mode 100644 index 0000000..a21479c --- /dev/null +++ b/site/medias/plex.typ @@ -0,0 +1,12 @@ +#set document(title: [Plex]) +#metadata(( + translation_key: "plex", + date: "2026-10-10", + author: "Rémi Heredero", + summary: "Plex is a media server", + pdf: true +)) + +#title() + +I think I'll switch to Jellyfin not in so long time diff --git a/site/medias/series.typ b/site/medias/series.typ deleted file mode 100644 index e673963..0000000 --- a/site/medias/series.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Series]) -#metadata((title: "Series", translation_key: "medias-series")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/series/the_expanse.typ b/site/medias/series/the_expanse.typ new file mode 100644 index 0000000..140cb33 --- /dev/null +++ b/site/medias/series/the_expanse.typ @@ -0,0 +1,17 @@ +#set document(title: [The Expanse]) +#metadata(( + translation_key: "the_expanse", + date: "2026-10-10", + author: "Rémi Heredero", + summary: " - S01: 9/10 + - S02: 9/10 + - S03: 8/10 + - S04: 8/10 + - S05: 8/10 + - S06: 8/10", + pdf: true +)) + +#title() + +I love hard science! diff --git a/site/tags.typ b/site/tags.typ new file mode 100644 index 0000000..26d2015 --- /dev/null +++ b/site/tags.typ @@ -0,0 +1,23 @@ +#import "/.calepin/calepin.typ" as calepin +#show: calepin.document + +#let taxonomy(field) = { + let pages = calepin.pages() + .filter(page => page.meta.at(field, default: ()) != ()) + let terms = pages + .map(page => page.meta.at(field)) + .flatten() + .dedup() + .sorted(key: term => lower(term)) + + for term in terms { + heading(term, level: 2) + for page in pages.filter( + page => term in page.meta.at(field) + ) [ + - #link(page.href)[#page.title] + ] + } +} + +#taxonomy("tags")