summaryrefslogtreecommitdiff
path: root/internal/web
diff options
context:
space:
mode:
Diffstat (limited to 'internal/web')
-rw-r--r--internal/web/profile.go42
-rw-r--r--internal/web/thread.go41
-rw-r--r--internal/web/web.go1
3 files changed, 66 insertions, 18 deletions
diff --git a/internal/web/profile.go b/internal/web/profile.go
index b629c98b9..a4809a72d 100644
--- a/internal/web/profile.go
+++ b/internal/web/profile.go
@@ -140,16 +140,40 @@ func (m *Module) profileGETHandler(c *gin.Context) {
return
}
+ // Prepare stylesheets for profile.
+ stylesheets := make([]string, 0, 6)
+
+ // Basic profile stylesheets.
+ stylesheets = append(
+ stylesheets,
+ []string{
+ cssFA,
+ cssStatus,
+ cssThread,
+ cssProfile,
+ }...,
+ )
+
+ // 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: "profile.tmpl",
- Instance: instance,
- OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount),
- Stylesheets: []string{
- cssFA, cssStatus, cssThread, cssProfile,
- // Custom CSS for this user last in cascade.
- "/@" + targetAccount.Username + "/custom.css",
- },
- Javascript: []string{jsFrontend},
+ Template: "profile.tmpl",
+ Instance: instance,
+ OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount),
+ Stylesheets: stylesheets,
+ Javascript: []string{jsFrontend},
Extra: map[string]any{
"account": targetAccount,
"rssFeed": rssFeed,
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,
diff --git a/internal/web/web.go b/internal/web/web.go
index 5e57d08c6..19df63332 100644
--- a/internal/web/web.go
+++ b/internal/web/web.go
@@ -44,6 +44,7 @@ const (
rssFeedPath = profileGroupPath + "/feed.rss"
assetsPathPrefix = "/assets"
distPathPrefix = assetsPathPrefix + "/dist"
+ themesPathPrefix = assetsPathPrefix + "/themes"
settingsPathPrefix = "/settings"
settingsPanelGlob = settingsPathPrefix + "/*panel"
userPanelPath = settingsPathPrefix + "/user"