fix: golangci-lint 零告警通过 (57→0) + gofumpt/goimports 全量格式化
## CI 修复 (P0/P1) P0 — 编译阻塞: - interfaces.go: postUseCase ISP 接口移除不用的 Create/Update/Delete P1 — 必须修复: - ST1000: 为 13 个包添加包注释 (common/config/model/service/...) - ST1005: redis_store.go 全部错误消息改为小写开头 - errcheck (19处): defer Close()→闭包忽略, notifier.Create→_=, r.Run→检查error - errorlint (9处): switch-on-error→errors.Is 链, ==→errors.Is - ST1020/ST1022: 导出符号注释以符号名开头 P2 — 安全评审: - gosec (12处): G203/G301/G304/G306 添加 nolint 注释并附理由 P3 — 清理: - unused: 移除 hasUnicode/energyStore/current/energyAdminUseCase - gofumpt + goimports 全量格式化 (35+ 文件)
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
// Package theme 负责多主题模板的加载、渲染和静态内容管理。
|
||||
package theme
|
||||
|
||||
import (
|
||||
@ -21,13 +22,13 @@ type TemplateRoot struct {
|
||||
// 模板名 = prefix + 相对于 root.Dir 的相对路径
|
||||
func LoadTemplates(roots ...TemplateRoot) (*template.Template, error) {
|
||||
funcMap := template.FuncMap{
|
||||
"add": func(a, b int) int { return a + b },
|
||||
"subtract": func(a, b int) int { return a - b },
|
||||
"add": func(a, b int) int { return a + b },
|
||||
"subtract": func(a, b int) int { return a - b },
|
||||
"formatTTL": formatTTL,
|
||||
"formatCount": formatCount,
|
||||
"str": str,
|
||||
"assetV": common.AssetV,
|
||||
"safeHTML": func(s string) template.HTML { return template.HTML(s) },
|
||||
"safeHTML": func(s string) template.HTML { return template.HTML(s) }, //nolint:gosec // 模板函数,由调用方保证内容安全
|
||||
"declarationLabel": func(declaration string) string {
|
||||
return model.DeclarationLabels[declaration]
|
||||
},
|
||||
@ -62,7 +63,7 @@ func LoadTemplates(roots ...TemplateRoot) (*template.Template, error) {
|
||||
if info.IsDir() || filepath.Ext(path) != ".html" {
|
||||
return nil
|
||||
}
|
||||
content, err := os.ReadFile(path)
|
||||
content, err := os.ReadFile(path) //nolint:gosec // path 来自 filepath.Walk 遍历,非用户输入
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -81,11 +82,11 @@ func LoadTemplates(roots ...TemplateRoot) (*template.Template, error) {
|
||||
// LoadContent 读取主题内容文件(准则等),返回不转义的 template.HTML。
|
||||
// 后期改为查数据库时,只需修改此函数实现,调用方不变。
|
||||
func LoadContent(path string) (template.HTML, error) {
|
||||
content, err := os.ReadFile(path)
|
||||
content, err := os.ReadFile(path) //nolint:gosec // path 为内部主题文件路径
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return template.HTML(content), nil
|
||||
return template.HTML(content), nil //nolint:gosec // 主题内容由管理员维护,属信任输入
|
||||
}
|
||||
|
||||
// formatTTL 将剩余分钟数格式化为人类可读的时间(如 "23 小时"、"3 天"、"15 分钟")
|
||||
|
||||
Reference in New Issue
Block a user