summaryrefslogtreecommitdiffci
path: root/internal/router/handlers/lang-map.go
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
authorGravatar SayaAndy <saya.andy@posteo.com> 2026-03-29 02:05:06 +0700
committerGravatar SayaAndy <saya.andy@posteo.com> 2026-03-29 02:05:06 +0700
commit0a9de353b2456505b0b8214fab4a7c844d31735c (patch)
treeae130f4617bab4b05f13521b1e701cd88f48d69f /internal/router/handlers/lang-map.go
parent610341bc9d59f9724e8e71f663b28df1904cb038 (diff)
downloadweb-0a9de353b2456505b0b8214fab4a7c844d31735c.tar.gz
web-0a9de353b2456505b0b8214fab4a7c844d31735c.zip
fix: add page metadata correctly
feat: link marker fill saturation and brightness in the global map to the publication date
Diffstat (limited to 'internal/router/handlers/lang-map.go')
-rw-r--r--internal/router/handlers/lang-map.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/router/handlers/lang-map.go b/internal/router/handlers/lang-map.go
index dbf1437..7df6104 100644
--- a/internal/router/handlers/lang-map.go
+++ b/internal/router/handlers/lang-map.go
@@ -3,6 +3,7 @@ package handlers
import (
"fmt"
"log/slog"
+ "slices"
"strconv"
"strings"
@@ -41,6 +42,9 @@ func (r *MapHandler) ToValidateLang() router.LangSetting {
func (r *MapHandler) Render(c *fiber.Ctx, supplements *router.Supplements, lang string, templateMap fiber.Map) (statusCode int, err error) {
pages, err := supplements.B2Client.Scan(lang + "/")
+ slices.SortFunc(pages, func(a *b2.BlogPage, b *b2.BlogPage) int {
+ return a.Metadata.PublishedTime.Compare(b.Metadata.PublishedTime)
+ })
status := fiber.StatusOK
if err != nil {
slog.Error("received an error while scanning b2 pages",
@@ -52,6 +56,7 @@ func (r *MapHandler) Render(c *fiber.Ctx, supplements *router.Supplements, lang
}
type MapMarker struct {
+ Index int `json:"Index"`
Title string `json:"Title"`
PageLink string `json:"PageLink"`
Lat float64 `json:"Lat"`
@@ -61,7 +66,7 @@ func (r *MapHandler) Render(c *fiber.Ctx, supplements *router.Supplements, lang
}
mapMarkers := make([]*MapMarker, 0, len(pages))
- for _, page := range pages {
+ for i, page := range pages {
geolocationParts := strings.Split(page.Metadata.Geolocation, " ")
if len(geolocationParts) < 2 {
continue
@@ -78,6 +83,7 @@ func (r *MapHandler) Render(c *fiber.Ctx, supplements *router.Supplements, lang
}
mapMarkers = append(mapMarkers, &MapMarker{
+ Index: i,
Title: page.Metadata.Title,
PageLink: fmt.Sprintf("/%s/blog/%s", lang, page.FileName),
Lat: x,