Files

42 lines
1.6 KiB
Go

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},
})
}
}