fix(编辑能力): 修复多版本字体裁剪与资源清理
build.yaml / build (push) Successful in 44s

This commit is contained in:
xiaoqidun committed 2026-10-26 22:12:22 +08:00
1 parent f322daa616
commit 4fee3dfd8e
3 files changed
+81 -21

No files matched your search

+14 -2
View File
@@ -963,7 +963,7 @@ func pruneUnreferencedFiles(ctx context.Context, reader *Reader, candidates ...s
if root == "" {
root = node.Name.Local
}
if classifyOFDNamespace(node.Name.Space) == ofdXMLUnknown || slices.Contains([]string{"CustomTags", "Extensions", "ExtendData", "Data"}, node.Name.Local) {
if classifyOFDNamespace(node.Name.Space) == ofdXMLUnknown || root == "CustomTags" || slices.Contains([]string{"Extensions", "ExtendData", "Data"}, node.Name.Local) {
uncertain = true
return fmt.Errorf("unknown file dependencies in %s", name)
}
@@ -990,7 +990,19 @@ func pruneUnreferencedFiles(ctx context.Context, reader *Reader, candidates ...s
versions[name] = append(versions[name], versionEditLink{node: node, target: target})
}
}
if err := reader.scanDocumentFileReferences(ctx, name, true, add, record, inspect); err != nil {
err := reader.scanDocumentFileReferences(ctx, name, true, add, record, inspect)
if uncertain && (root == "CustomTags" || root == "RichText") {
data, readErr := reader.readFileViewContext(ctx, name)
if readErr != nil {
return readErr
}
refs := &editorResourceRefs{ids: make(map[string]bool), files: make(map[string]bool), fonts: make(map[string]*editorFontUsage)}
if _, safe := refs.scanContext(ctx, bytes.NewReader(data), name); safe {
uncertain = false
err = reader.scanDocumentFileReferences(ctx, name, true, add, record, nil)
}
}
if err != nil {
var syntax *xml.SyntaxError
if uncertain || errors.As(err, &syntax) {
return ctx.Err()