From f024eff35dc37035d680a7277d75b1356770557f Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Tue, 13 Oct 2026 19:25:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=B1=E4=BA=AB=E9=A1=B5=E9=9D=A2=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ofdgo_resource.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ofdgo_resource.go b/ofdgo_resource.go index 2bf38f5..cd56fee 100644 --- a/ofdgo_resource.go +++ b/ofdgo_resource.go @@ -41,7 +41,7 @@ type ResourceInfo struct { References []ResourceReference `json:"references"` } -// ResourceReference 记录资源引用所在的XML及字段,Page为零基页码,非页面文件为-1 +// ResourceReference 记录资源引用所在的XML及字段,Page为零基页码,非页面或多实例文件为-1 // Object为最近的图元标识,模板、注解、图案和复合资源通过File区分,不推断其页面实例数 type ResourceReference struct { File string `json:"file"` @@ -136,7 +136,15 @@ func (r *Reader) resourceCatalog(ctx context.Context) (*resourceCatalog, error) return nil, err } for i, page := range doc.Pages.Page { - pages[cleanPackagePath(r.ResPath(page.BaseLoc))] = i + name := cleanPackagePath(r.ResPath(page.BaseLoc)) + if _, exists := pages[name]; exists { + pages[name] = -1 + } else { + pages[name] = i + } + } + for _, page := range doc.CommonData.TemplatePage { + pages[cleanPackagePath(r.ResPath(page.BaseLoc))] = -1 } refs := make(map[string][]ResourceReference) for _, name := range slices.Sorted(maps.Keys(scan.files)) {