使用了AI重构项目,并完善了一部分后台问题

This commit is contained in:
2026-08-05 04:47:11 +08:00
parent 146b6b1e6c
commit ac740c24fd
35 changed files with 2876 additions and 980 deletions
+22 -39
View File
@@ -8,51 +8,34 @@ import (
"github.com/gin-gonic/gin"
)
// GetFrontendConfig 获取前端配置(用于index.html等)
// GetFrontendConfig returns only public head, runtime and tracker settings.
func GetFrontendConfig(db *database.Database) gin.HandlerFunc {
return func(c *gin.Context) {
ctx := c.Request.Context()
config, err := db.Client.SiteConfig.Get(ctx, 1)
settings, err := db.LoadSiteSettings(c.Request.Context())
if err != nil {
// 如果不存在,返回默认值
c.JSON(http.StatusOK, gin.H{
"title": "个人主页",
"keywords": "个人主页,Vue3",
"description": "一个基于Vue3的个人主页",
"favicon": "/favicon.ico",
"umamiScript": "",
"umamiWebsiteId": "",
"iconLibrary": "//lib.baomitu.com/font-awesome/6.5.0/css/all.min.css",
"fontLibrary": "",
})
c.JSON(http.StatusInternalServerError, gin.H{"error": "加载前端配置失败"})
return
}
pageTitle := config.PageTitle
if pageTitle == "" {
pageTitle = "个人主页"
}
favicon := config.Favicon
if favicon == "" {
favicon = "/favicon.ico"
}
iconLibrary := config.IconLibrary
if iconLibrary == "" {
iconLibrary = "//lib.baomitu.com/font-awesome/6.5.0/css/all.min.css"
}
// 确保返回完整的配置信息,包括站点名称和URL
c.JSON(http.StatusOK, gin.H{
"title": pageTitle,
"siteName": config.SiteName,
"siteURL": config.SiteURL,
"keywords": config.SiteKeywords,
"description": config.SiteDescription,
"favicon": favicon,
"umamiScript": config.UmamiScript,
"umamiWebsiteId": config.UmamiWebsiteID,
"iconLibrary": iconLibrary,
"fontLibrary": config.FontLibrary,
"title": settings.PageTitle,
"siteName": settings.SiteName,
"siteURL": settings.SiteURL,
"keywords": settings.SiteKeywords,
"description": settings.SiteDescription,
"favicon": settings.Favicon,
"iconLibrary": settings.IconLibrary,
"fontLibrary": settings.FontLibrary,
"analyticsProvider": settings.AnalyticsProvider,
"umamiScript": settings.UmamiScript,
"umamiScriptUrl": settings.UmamiScript,
"umamiWebsiteId": settings.UmamiWebsiteID,
"umamiDomains": settings.UmamiDomains,
"umamiDoNotTrack": settings.UmamiDoNotTrack,
"umamiExcludeSearch": settings.UmamiExcludeSearch,
"umamiExcludeHash": settings.UmamiExcludeHash,
"umamiPerformance": settings.UmamiPerformance,
"umamiTag": settings.UmamiTag,
"umamiTrackerOptions": gin.H{"domains": settings.UmamiDomains, "doNotTrack": settings.UmamiDoNotTrack, "excludeSearch": settings.UmamiExcludeSearch, "excludeHash": settings.UmamiExcludeHash, "performance": settings.UmamiPerformance, "tag": settings.UmamiTag},
})
}
}