From 64182e1ac8b4ca94649eef784f0f711a2041a4d7 Mon Sep 17 00:00:00 2001 From: dragon Date: Wed, 16 Apr 2025 11:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A8=A1=E6=9D=BF=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/core/domain.go | 14 +------------- pkg/core/meta.go | 41 +++++++++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/pkg/core/domain.go b/pkg/core/domain.go index 8d71f11..615d515 100644 --- a/pkg/core/domain.go +++ b/pkg/core/domain.go @@ -6,8 +6,6 @@ import ( "regexp" "strings" - "code.d7z.net/d7z-project/gitea-pages/pkg/renders" - "code.d7z.net/d7z-project/gitea-pages/pkg/utils" "github.com/pkg/errors" @@ -45,17 +43,6 @@ func (m *PageDomainContent) CacheKey() string { return fmt.Sprintf("%s/%s/%s/%s", m.Owner, m.Repo, m.CommitID, m.Path) } -func (m *PageDomainContent) TryRender(path ...string) renders.Render { - for _, s := range path { - for _, compiler := range m.rendersL { - if compiler.regex.Match(s) { - return compiler.Render - } - } - } - return nil -} - func (p *PageDomain) ParseDomainMeta(domain, path, branch string) (*PageDomainContent, error) { if branch == "" { branch = p.defaultBranch @@ -105,6 +92,7 @@ func (p *PageDomain) ReturnMeta(owner string, repo string, branch string, path [ zap.L().Warn("别名绑定失败", zap.Error(err)) } } + return rel, nil } else { zap.L().Debug("查询错误", zap.Error(err)) diff --git a/pkg/core/meta.go b/pkg/core/meta.go index 335ed01..b9a281e 100644 --- a/pkg/core/meta.go +++ b/pkg/core/meta.go @@ -39,13 +39,13 @@ type renderCompiler struct { } type PageMetaContent struct { - CommitID string `json:"id"` // 提交 COMMIT ID - IsPage bool `json:"pg"` // 是否为 Page - Domain string `json:"domain"` // 匹配的域名 - HistoryRouteMode bool `json:"historyRouteMode"` // 路由模式 - CustomNotFound bool `json:"404"` // 注册了自定义 404 页面 - LastModified time.Time `json:"up"` // 上次更新时间 - Renders map[string]string `json:"renders"` // 配置的渲染器 + CommitID string `json:"id"` // 提交 COMMIT ID + IsPage bool `json:"pg"` // 是否为 Page + Domain string `json:"domain"` // 匹配的域名 + HistoryRouteMode bool `json:"historyRouteMode"` // 路由模式 + CustomNotFound bool `json:"404"` // 注册了自定义 404 页面 + LastModified time.Time `json:"up"` // 上次更新时间 + Renders map[string][]string `json:"renders"` // 配置的渲染器 rendersL []*renderCompiler } @@ -53,15 +53,28 @@ type PageMetaContent struct { func (m *PageMetaContent) From(data string) error { err := json.Unmarshal([]byte(data), m) clear(m.rendersL) - for key, g := range m.Renders { - m.rendersL = append(m.rendersL, &renderCompiler{ - regex: glob.MustCompile(g), - Render: renders.GetRender(key), - }) + for key, gs := range m.Renders { + for _, g := range gs { + m.rendersL = append(m.rendersL, &renderCompiler{ + regex: glob.MustCompile(g), + Render: renders.GetRender(key), + }) + } } return err } +func (m *PageMetaContent) TryRender(path ...string) renders.Render { + for _, s := range path { + for _, compiler := range m.rendersL { + if compiler.regex.Match(s) { + return compiler.Render + } + } + } + return nil +} + func (m *PageMetaContent) String() string { marshal, _ := json.Marshal(m) return string(marshal) @@ -74,7 +87,7 @@ func NewServerMeta(client *http.Client, backend Backend, config utils.Config, tt func (s *ServerMeta) GetMeta(baseDomain, owner, repo, branch string) (*PageMetaContent, error) { rel := &PageMetaContent{ IsPage: false, - Renders: make(map[string]string), + Renders: make(map[string][]string), } if repos, err := s.Repos(owner); err != nil { return nil, err @@ -154,7 +167,7 @@ func (s *ServerMeta) GetMeta(baseDomain, owner, repo, branch string) (*PageMetaC if found { if r := renders.GetRender(before); r != nil { if g, err := glob.Compile(after); err == nil { - rel.Renders[before] = after + rel.Renders[before] = append(rel.Renders[before], after) rel.rendersL = append(rel.rendersL, &renderCompiler{ regex: g, Render: r,