package api import ( "net/http" "home-vue-go/internal/database" "github.com/gin-gonic/gin" ) // GetFrontendConfig returns only public head, runtime and tracker settings. func GetFrontendConfig(db *database.Database) gin.HandlerFunc { return func(c *gin.Context) { settings, err := db.LoadSiteSettings(c.Request.Context()) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "加载前端配置失败"}) return } c.JSON(http.StatusOK, gin.H{ "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}, }) } }