diff options
author | 2024-03-25 18:32:24 +0100 | |
---|---|---|
committer | 2024-03-25 17:32:24 +0000 | |
commit | 8953f57d887c060c3b58f83c38d2010d27a45ef3 (patch) | |
tree | 05f8b1157a86afaa3ed0d6d0b87c9d0d37030362 /internal/web/thread.go | |
parent | [feature] Add healthcheck endpoints `/livez` and `/readyz` (#2783) (diff) | |
download | gotosocial-8953f57d887c060c3b58f83c38d2010d27a45ef3.tar.xz |
[feature] User-selectable preset CSS themes for accounts (#2777)
* [feature] User-selectable preset themes
* docs, more theme stuff
* lint, tests
* fix css name
* correct some little issues
* add another theme
* fix poll background
* okay last theme i swear
* make retrieval of apimodel themes more conventional
* preallocate stylesheet slices
Diffstat (limited to 'internal/web/thread.go')
-rw-r--r-- | internal/web/thread.go | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/internal/web/thread.go b/internal/web/thread.go index 4dcd1d221..ffec565e6 100644 --- a/internal/web/thread.go +++ b/internal/web/thread.go @@ -138,16 +138,39 @@ func (m *Module) threadGETHandler(c *gin.Context) { return } + // Prepare stylesheets for thread. + stylesheets := make([]string, 0, 5) + + // Basic thread stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + }..., + ) + + // User-selected theme if set. + if theme := targetAccount.Theme; theme != "" { + stylesheets = append( + stylesheets, + themesPathPrefix+"/"+theme, + ) + } + + // Custom CSS for this user last in cascade. + stylesheets = append( + stylesheets, + "/@"+targetAccount.Username+"/custom.css", + ) + page := apiutil.WebPage{ - Template: "thread.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithStatus(status), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, - // Custom CSS for this user last in cascade. - "/@" + targetUsername + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "thread.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithStatus(status), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "status": status, "context": context, |