From 71e0772682cfda49abb412403c8ec1d0e239fb76 Mon Sep 17 00:00:00 2001 From: Raymonzut Date: Wed, 27 Dec 2023 15:25:38 +0100 Subject: [PATCH] Group posts by year --- client/gen.exs | 26 ++++++++++++++++-------- client/public/assets/styling/general.css | 6 ++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/client/gen.exs b/client/gen.exs index e0c0072..8b2facb 100644 --- a/client/gen.exs +++ b/client/gen.exs @@ -63,6 +63,13 @@ constructLocalPath = fn p -> dateFolder.(p) <> normalize_title.(Map.get(p, :titl post_contents = post_contents_org |> Enum.map(fn postMap -> Map.merge(postMap, %{localpath: (constructLocalPath.(postMap))}) end) +date_sort = fn post -> + date = Map.get(post, :date) + month = Enum.find_index(months, &(&1 == String.slice(date, 8..10))) + day = elem(Integer.parse(String.slice(date, 5..6)), 0) + 32 * month + day +end + index_file = post_contents |> Enum.sort_by( @@ -71,15 +78,18 @@ index_file = |> Integer.parse()) ) |> Enum.reverse() - # Group by month - |> Enum.group_by(fn m -> Map.get(m, :date) |> String.slice(8..15) end) - |> Enum.sort_by(fn {d, _c} -> ((length months) * elem(Integer.parse(String.slice(d, 4..7)), 0)) + Enum.find_index(months, &(&1 == String.slice(d, 0..2))) end) + # Group by year + |> Enum.group_by(fn m -> Map.get(m, :date) |> String.slice(12..15) end) + |> Enum.sort_by(fn {d, _c} -> Integer.parse(d) end) |> Enum.reverse() - |> Enum.map(fn {month, posts} -> "\n

" <> month <> "

\n" <> (posts |> - Enum.map(fn post -> "

" <> (Map.get(post, :date) |> String.slice(0..6)) <> - " - Map.get(post, :localpath) <> ".html\">" <> Map.get(post, :title) <> "

" - end) |> Enum.join("\n")) end) - |> Enum.join("\n") + |> Enum.map(fn {year, posts} -> "\n

" <> year <> "

\n") |> (fn v -> %{index: v} end).() |> fill_template_pretemplated.(index_template).() diff --git a/client/public/assets/styling/general.css b/client/public/assets/styling/general.css index cc63fef..02780a0 100644 --- a/client/public/assets/styling/general.css +++ b/client/public/assets/styling/general.css @@ -47,11 +47,9 @@ h1 { font-size: 2.0em; } -h2 { - font-size: 1.25em; -} - .post-link { + font-family: monospace; + font-size: 1.25em; margin: auto 0; }