tags colapse

This commit is contained in:
Arnas Udovic 2025-03-15 20:17:12 +02:00
parent ca57b910de
commit 3302fa52cf
4 changed files with 42 additions and 4 deletions

32
main.go
View file

@ -159,6 +159,8 @@ func process(_ context.Context, w gemini.ResponseWriter, r *gemini.Request) {
renderAbout(w)
case regexp.MustCompile(`^/s/?$`).MatchString(r.URL.Path):
renderSearch(w, r, client)
case regexp.MustCompile(`^/t/?$`).MatchString(r.URL.Path):
renderTags(w, client)
case regexp.MustCompile(`^/f/?$`).MatchString(r.URL.Path):
renderAllFiles(w, client)
case regexp.MustCompile(`^/f/([\p{L}\d_+.]+/)+[\d\w]+/index.gmi$`).MatchString(r.URL.Path):
@ -271,6 +273,36 @@ func renderIndex(w gemini.ResponseWriter, client TreeManagerClient) {
}
}
func renderTags(w gemini.ResponseWriter, client TreeManagerClient) {
path := ""
tr := TreeRequest{Path: &path, Filter: getLangFilters()}
tree, err := client.GetSummery(context.Background(), &tr)
if err != nil {
w.WriteHeader(gemini.StatusTemporaryFailure, "Internal server error")
return
}
w.SetMediaType("text/gemini")
tpl := pongo2.Must(pongo2.FromFile("templates/tags.gmi"))
page, err := tpl.Execute(
pongo2.Context{
"tree": tree,
"lang": defaultLang,
},
)
if err != nil {
log.Fatalf("template failed: %v", err)
return
}
_, err = w.Write([]byte(page))
if err != nil {
w.WriteHeader(gemini.StatusTemporaryFailure, "Internal server error")
return
}
}
func renderFeed(w gemini.ResponseWriter, r *gemini.Request, client TreeManagerClient) {
path := ""
tr := TreeRequest{Path: &path, Filter: getLangFilters()}

View file

@ -11,8 +11,7 @@ Welcome to my capsule in Gemini space. {{ logo() }}
{% for cat, count in tree.Categories %}
{{ category_url(cat, cat, count) }} {% endfor %}
{% for tag, count in tree.Tags %}
{{ tag_url(tag, count) }} {% endfor %}
=> /t 🏷 Tags ({{ tree.Tags|length }})
{% if lastFiles %}### Last texts
{% for file in lastFiles %}{{ text_url(file) }}{% endfor %}{% endif %}

View file

@ -11,8 +11,7 @@ Sveikė atvīkėn i mona kapsolė Gemini ertie. {{ logo() }}
{% for cat, count in tree.Categories %}
{{ category_url(cat, cat, count) }} {% endfor %}
{% for tag, count in tree.Tags %}
{{ tag_url(tag, count) }} {% endfor %}
=> /t 🏷 Žīmas ({{ tree.Tags|length }})
{% if lastFiles %}### Paskotėnē īrašā

8
templates/tags.gmi Normal file
View file

@ -0,0 +1,8 @@
{% import "macros.tpl" tag_url, home %}
# {% if lang == "sgs" %}Žīmas{% else %}Tags{% endif %}
{% for tag, count in tree.Tags %}
{{ tag_url(tag, count) }} {% endfor %}
{{ home(lang) }}