summaryrefslogtreecommitdiff
path: root/main.go
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go33
1 files changed, 12 insertions, 21 deletions
diff --git a/main.go b/main.go
index c85a304..6a36f59 100644
--- a/main.go
+++ b/main.go
@@ -93,8 +93,7 @@ func main() {
app.Use(redirect.New(redirect.Config{
Rules: map[string]string{
- "/ru": "/",
- "/en": "/",
+ "/blog": "/",
},
StatusCode: 301,
}))
@@ -112,7 +111,7 @@ func main() {
return c.Type("html").Send(content)
})
- app.Get("/:lang/blog", func(c *fiber.Ctx) error {
+ app.Get("/blog/:lang", func(c *fiber.Ctx) error {
lang := c.Params("lang")
if !slices.Contains(availableLanguages, lang) {
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
@@ -146,26 +145,19 @@ func main() {
pages = []*b2.BlogPage{}
}
- tagsMap := make(map[string]int)
+ tagsSet := make(map[string]struct{})
for _, page := range pages {
slog.Debug("enlist page for catalogue", slog.Any("page", page), slog.String("endpoint", "/"))
for _, tag := range page.Metadata.Tags {
- tagsMap[tag]++
+ tagsSet[tag] = struct{}{}
}
}
- type Tag struct {
- Name string `json:"Name" yaml:"name"`
- Count int `json:"Count" yaml:"count"`
+ tagsArray := make([]string, 0, len(tagsSet))
+ for tag := range tagsSet {
+ tagsArray = append(tagsArray, tag)
}
-
- 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)
- })
+ slices.Sort(tagsArray)
content, err := tm.Render("blog-catalogue", fiber.Map{
"QuerySort": querySort,
@@ -177,7 +169,7 @@ func main() {
"Title": localization[lang].BlogSearch.Header,
})
if err != nil {
- slog.Warn("failed to generate page", slog.String("page", "/"+lang+"/blog"), slog.String("error", err.Error()))
+ slog.Warn("failed to generate page", slog.String("page", "/blog/"+lang), slog.String("error", err.Error()))
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
return c.Status(fiber.ErrInternalServerError.Code).SendString("failed to generate page")
}
@@ -185,7 +177,7 @@ func main() {
return c.Type("html").Status(status).Send(content)
})
- app.Get("/:lang/blog/:title", func(c *fiber.Ctx) error {
+ app.Get("/blog/:lang/:title", func(c *fiber.Ctx) error {
lang := c.Params("lang")
if !slices.Contains(availableLanguages, lang) {
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
@@ -219,7 +211,7 @@ func main() {
"Lang": lang,
})
if err != nil {
- slog.Warn("failed to generate page", slog.String("page", "/"+lang+"/blog/"+c.Params("title")), slog.String("error", err.Error()))
+ slog.Warn("failed to generate page", slog.String("page", "/blog/"+lang+c.Params("title")), slog.String("error", err.Error()))
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
return c.Status(fiber.ErrInternalServerError.Code).SendString("failed to generate page")
}
@@ -263,7 +255,6 @@ func main() {
if len(tags) == 0 || slices.Contains(tags, tag) {
pageMeta = append(pageMeta, map[string]string{
"Link": page.Link,
- "ArticleLink": "/" + lang + "/blog/" + page.FileName,
"Title": page.Metadata.Title,
"PublishedTime": page.Metadata.PublishedTime.Format("2006-01-02 15:04:05 -0700"),
"ActionDate": page.Metadata.ActionDate,
@@ -303,7 +294,7 @@ func main() {
"L": localization[lang],
})
if err != nil {
- slog.Warn("failed to generate div", slog.String("page", "/"+lang+"/blog"), slog.String("error", err.Error()))
+ slog.Warn("failed to generate div", slog.String("page", "/blog/"+lang), slog.String("error", err.Error()))
c.Set(fiber.HeaderContentType, fiber.MIMETextPlainCharsetUTF8)
return c.Status(fiber.ErrInternalServerError.Code).SendString("failed to generate div")
}