Files
go_blog/controllers/themes.go
2025-05-27 19:01:05 +08:00

40 lines
816 B
Go

package controllers
import (
"go_blog/themes"
"os"
"github.com/gin-gonic/gin"
)
// ListThemes 获取可用主题列表
func ListThemes(c *gin.Context) {
// 从主题管理器获取当前主题
tm, exists := c.Get("ThemeManager")
if !exists {
c.JSON(500, gin.H{"error": "主题管理器未找到"})
return
}
themeManager := tm.(*themes.ThemeManager)
// 读取 web/themes 目录下的所有主题文件夹
themesDir := "web/themes"
entries, err := os.ReadDir(themesDir)
if err != nil {
c.JSON(500, gin.H{"error": "读取主题目录失败: " + err.Error()})
return
}
var themeList []string
for _, entry := range entries {
if entry.IsDir() {
themeList = append(themeList, entry.Name())
}
}
c.JSON(200, gin.H{
"current": themeManager.CurrentTheme(),
"themes": themeList,
})
}