Add topics for Gists (#413)

هذا الالتزام موجود في:
Thomas Miceli
2025-01-24 14:39:42 +01:00
ملتزم من قبل GitHub
الأصل 8369cbf2f0
التزام f5b8881d35
25 ملفات معدلة مع 278 إضافات و59 حذوفات

عرض الملف

@@ -405,3 +405,11 @@ func gistNewPushSoftInit(next Handler) Handler {
return next(ctx)
}
}
func setAllGistsMode(mode string) Middleware {
return func(next Handler) Handler {
return func(ctx *context.Context) error {
ctx.SetData("mode", mode)
return next(ctx)
}
}
}

عرض الملف

@@ -179,6 +179,16 @@ func (s *Server) setFuncMap() {
_, err := url.ParseRequestURI(s)
return err == nil
},
"topicsToStr": func(topics []db.GistTopic) string {
str := ""
for i, topic := range topics {
if i > 0 {
str += " "
}
str += topic.Topic
}
return str
},
}
t := template.Must(template.New("t").Funcs(fm).ParseFS(templates.Files, "*/*.html"))

عرض الملف

@@ -90,17 +90,19 @@ func (s *Server) registerRoutes() {
r.Any("/init/*", git.GitHttp, gistNewPushSoftInit)
}
r.GET("/all", gist.AllGists, checkRequireLogin)
r.GET("/all", gist.AllGists, checkRequireLogin, setAllGistsMode("all"))
if index.Enabled() {
r.GET("/search", gist.Search, checkRequireLogin)
} else {
r.GET("/search", gist.AllGists, checkRequireLogin)
r.GET("/search", gist.AllGists, checkRequireLogin, setAllGistsMode("search"))
}
r.GET("/:user", gist.AllGists, checkRequireLogin)
r.GET("/:user/liked", gist.AllGists, checkRequireLogin)
r.GET("/:user/forked", gist.AllGists, checkRequireLogin)
r.GET("/:user", gist.AllGists, checkRequireLogin, setAllGistsMode("fromUser"))
r.GET("/:user/liked", gist.AllGists, checkRequireLogin, setAllGistsMode("liked"))
r.GET("/:user/forked", gist.AllGists, checkRequireLogin, setAllGistsMode("forked"))
r.GET("/topics/:topic", gist.AllGists, checkRequireLogin, setAllGistsMode("topics"))
sC := r.SubGroup("/:user/:gistname")
{