From 7b16c45c8e282ee8b56137158e582d8b32fe45c4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 20 Dec 2023 21:02:22 +0800 Subject: [PATCH] :bug: The doc title image index failed when using notebook-level assets https://github.com/siyuan-note/siyuan/issues/9936 --- kernel/sql/asset.go | 13 ++++++++----- kernel/sql/database.go | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/kernel/sql/asset.go b/kernel/sql/asset.go index 28f23ff34..332dfd850 100644 --- a/kernel/sql/asset.go +++ b/kernel/sql/asset.go @@ -62,7 +62,7 @@ func docTagSpans(n *ast.Node) (ret []*Span) { return } -func docTitleImgAsset(root *ast.Node) *Asset { +func docTitleImgAsset(root *ast.Node, boxLocalPath, docDirLocalPath string) *Asset { if p := treenode.GetDocTitleImgPath(root); "" != p { if !util.IsAssetLinkDest([]byte(p)) { return nil @@ -70,11 +70,14 @@ func docTitleImgAsset(root *ast.Node) *Asset { var hash string var err error - absPath := filepath.Join(util.DataDir, p) - if hash, err = util.GetEtag(absPath); nil != err { - logging.LogErrorf("read asset [%s] data failed: %s", absPath, err) - return nil + if lp := assetLocalPath(p, boxLocalPath, docDirLocalPath); "" != lp { + hash, err = util.GetEtag(lp) + if nil != err { + logging.LogErrorf("calc asset [%s] hash failed: %s", lp, err) + return nil + } } + name, _ := util.LastID(p) asset := &Asset{ ID: ast.NewNodeID(), diff --git a/kernel/sql/database.go b/kernel/sql/database.go index 8b13e3c44..0880506e0 100644 --- a/kernel/sql/database.go +++ b/kernel/sql/database.go @@ -683,7 +683,7 @@ func buildSpanFromNode(n *ast.Node, tree *parse.Tree, rootID, boxID, p string) ( walkStatus = ast.WalkSkipChildren return case ast.NodeDocument: - if asset := docTitleImgAsset(n); nil != asset { + if asset := docTitleImgAsset(n, boxLocalPath, docDirLocalPath); nil != asset { assets = append(assets, asset) } if tags := docTagSpans(n); 0 < len(tags) {