feat(资源管理): 修复共享页面资源定位
build.yaml / build (push) Successful in 50s

This commit is contained in:
xiaoqidun committed 2026-10-13 19:25:12 +08:00
1 parent 6f9bebae26
commit f024eff35d
1 file changed
+10 -2
+10 -2
View File
@@ -41,7 +41,7 @@ type ResourceInfo struct {
References []ResourceReference `json:"references"` References []ResourceReference `json:"references"`
} }
// ResourceReference 记录资源引用所在的XML及字段,Page为零基页码,非页面文件为-1 // ResourceReference 记录资源引用所在的XML及字段,Page为零基页码,非页面或多实例文件为-1
// Object为最近的图元标识,模板、注解、图案和复合资源通过File区分,不推断其页面实例数 // Object为最近的图元标识,模板、注解、图案和复合资源通过File区分,不推断其页面实例数
type ResourceReference struct { type ResourceReference struct {
File string `json:"file"` File string `json:"file"`
@@ -136,7 +136,15 @@ func (r *Reader) resourceCatalog(ctx context.Context) (*resourceCatalog, error)
return nil, err return nil, err
} }
for i, page := range doc.Pages.Page { 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) refs := make(map[string][]ResourceReference)
for _, name := range slices.Sorted(maps.Keys(scan.files)) { for _, name := range slices.Sorted(maps.Keys(scan.files)) {