diff --git a/kernel/model/import.go b/kernel/model/import.go index 63e8575a2..d6009cb2d 100644 --- a/kernel/model/import.go +++ b/kernel/model/import.go @@ -360,6 +360,25 @@ func ImportSY(zipPath, boxID, toPath string) (err error) { logging.LogErrorf("remove temp storage av dir failed: %s", removeErr) } + // 清理一些冗余的数据 + avDir := filepath.Join(util.DataDir, "storage", "av") + for _, tree := range trees { + ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus { + if !entering { + return ast.WalkContinue + } + + ial := parse.IAL2Map(n.KramdownIAL) + avIDs := strings.Split(ial[av.NodeAttrNameAvs], ",") + for _, avID := range avIDs { + if !filelock.IsExist(filepath.Join(avDir, avID+".json")) { + n.RemoveIALAttr(av.NodeAttrNameAvs) + } + } + return ast.WalkContinue + }) + } + // 写回 .sy for _, tree := range trees { util.PushEndlessProgress(Conf.language(73) + " " + fmt.Sprintf(Conf.language(70), tree.Root.IALAttr("title")))