From 0a5f821f78425d97c0797803e57aa2c2d6f982da Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 10 Feb 2025 13:46:50 +0800 Subject: [PATCH] category_index: Add a repo index for each category --- handle_category_index.go | 34 ++++++++++++++++++++++++++++++++++ main.go | 1 + templates/category_index.html | 20 ++++++++++++++++++++ diff --git a/handle_category_index.go b/handle_category_index.go new file mode 100644 index 0000000000000000000000000000000000000000..407d0e735717744187820759196958ebc10dbdf7 --- /dev/null +++ b/handle_category_index.go @@ -0,0 +1,34 @@ +package main + +import ( + "net/http" + "path/filepath" + "os" + "strings" +) + +func handle_category_index(w http.ResponseWriter, r *http.Request) { + data := make(map[string]any) + project_name := r.PathValue("project_name") + data["category_name"] = project_name + entries, err := os.ReadDir(filepath.Join(config.Git.Root, project_name)) + if err != nil { + _, _ = w.Write([]byte("Error listing repos: " + err.Error())) + return + } + + repos := []string{} + for _, entry := range entries { + this_name := entry.Name() + if strings.HasSuffix(this_name, ".git") { + repos = append(repos, strings.TrimSuffix(this_name, ".git")) + } + } + data["repos"] = repos + + err = templates.ExecuteTemplate(w, "category_index", data) + if err != nil { + _, _ = w.Write([]byte("Error rendering template: " + err.Error())) + return + } +} diff --git a/main.go b/main.go index 8f9482d4ff546ef2f8c54152224a360b729cd666..b144b5286700820fcc949178db5ee0172cf93ab2 100644 --- a/main.go +++ b/main.go @@ -32,6 +32,7 @@ clog.Fatal(1, "Serving static: "+err.Error()) } http.HandleFunc("/{$}", handle_index) + http.HandleFunc("/{project_name}/{$}", handle_category_index) http.HandleFunc("/{project_name}/repos/{repo_name}/{$}", handle_repo_index) http.HandleFunc("/{project_name}/repos/{repo_name}/tree/{ref}/{rest...}", handle_repo_tree) diff --git a/templates/category_index.html b/templates/category_index.html new file mode 100644 index 0000000000000000000000000000000000000000..1ae0c6477b3521a54f164bbc0bdc821bbc8c7f40 --- /dev/null +++ b/templates/category_index.html @@ -0,0 +1,20 @@ +{{- define "category_index" -}} + + + + +{{ .category_name }} + + +
+ +
+ + +{{- end -}} -- 2.48.1