Pinterest-style visual bookmarking app with: - URL metadata extraction (OG/Twitter meta, oEmbed fallback) - Image caching in Postgres with 480px thumbnails - Multi-tag filtering with Ctrl/Cmd for OR mode - Fuzzy tag suggestions and inline tag editing - Browser console auth() with first-use password setup - Brutalist UI with Commit Mono font and Pico CSS - Light/dark mode via browser preference
23 lines
436 B
Go
23 lines
436 B
Go
package handlers
|
|
|
|
import (
|
|
"encoding/json"
|
|
"html/template"
|
|
"strings"
|
|
|
|
"git.soup.land/soup/lookbook/internal/static"
|
|
)
|
|
|
|
var TemplateFuncs = template.FuncMap{
|
|
"staticURL": static.VersionedPath,
|
|
"json": jsonTemplate,
|
|
}
|
|
|
|
func jsonTemplate(v any) template.JS {
|
|
payload, err := json.Marshal(v)
|
|
if err != nil {
|
|
return template.JS("null")
|
|
}
|
|
safe := strings.ReplaceAll(string(payload), "</", "<\\/")
|
|
return template.JS(safe)
|
|
}
|