Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -121,7 +121,7 @@ func main() { querySort := c.Query("sort") if querySort == "" { - querySort = "titleAsc" + querySort = "publicationDateDesc" } encodedQuery := c.Request().URI().QueryString() @@ -146,19 +146,26 @@ func main() { pages = []*b2.BlogPage{} } - tagsSet := make(map[string]struct{}) + tagsMap := make(map[string]int) for _, page := range pages { - slog.Debug("enlist page for catalogue", slog.Any("page", page), slog.String("endpoint", "/")) + slog.Debug("enlist page for catalogue", slog.Any("page", page), slog.String("endpoint", "/"+lang+"/blog")) for _, tag := range page.Metadata.Tags { - tagsSet[tag] = struct{}{} + tagsMap[tag]++ } } - tagsArray := make([]string, 0, len(tagsSet)) - for tag := range tagsSet { - tagsArray = append(tagsArray, tag) + type Tag struct { + Name string `json:"Name" yaml:"name"` + Count int `json:"Count" yaml:"count"` } - slices.Sort(tagsArray) + + tagsArray := make([]Tag, 0, len(tagsMap)) + for tag, count := range tagsMap { + tagsArray = append(tagsArray, Tag{tag, count}) + } + slices.SortFunc(tagsArray, func(a Tag, b Tag) int { + return strings.Compare(a.Name, b.Name) + }) content, err := tm.Render("blog-catalogue", fiber.Map{ "QuerySort": querySort, @@ -280,12 +287,12 @@ func main() { case "actionDateDesc": return strings.Compare(b["ActionDate"], a["ActionDate"]) case "publicationDateAsc": - publishedTimeA, _ := time.Parse(time.RFC3339, a["PublishedTime"]) - publishedTimeB, _ := time.Parse(time.RFC3339, b["PublishedTime"]) + publishedTimeA, _ := time.Parse("2006-01-02 15:04:05 -0700", a["PublishedTime"]) + publishedTimeB, _ := time.Parse("2006-01-02 15:04:05 -0700", b["PublishedTime"]) return publishedTimeA.Compare(publishedTimeB) case "publicationDateDesc": - publishedTimeA, _ := time.Parse(time.RFC3339, a["PublishedTime"]) - publishedTimeB, _ := time.Parse(time.RFC3339, b["PublishedTime"]) + publishedTimeA, _ := time.Parse("2006-01-02 15:04:05 -0700", a["PublishedTime"]) + publishedTimeB, _ := time.Parse("2006-01-02 15:04:05 -0700", b["PublishedTime"]) return publishedTimeB.Compare(publishedTimeA) } return 0 |