From 800dec29df2f33f0fea790fea006870e5d00ba1f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 27 Sep 2024 00:05:48 +0800 Subject: [PATCH] :art: Improve doc convert to heading https://github.com/siyuan-note/siyuan/issues/12607 --- kernel/model/heading.go | 11 ++++++++++- kernel/model/tree.go | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/model/heading.go b/kernel/model/heading.go index 53102b358..ca5e418ff 100644 --- a/kernel/model/heading.go +++ b/kernel/model/heading.go @@ -118,6 +118,10 @@ func (tx *Transaction) doUnfoldHeading(operation *Operation) (ret *TxErr) { } func Doc2Heading(srcID, targetID string, after bool) (srcTreeBox, srcTreePath string, err error) { + if !ast.IsNodeIDPattern(srcID) || !ast.IsNodeIDPattern(targetID) { + return + } + srcTree, _ := LoadTreeByBlockID(srcID) if nil == srcTree { err = ErrBlockNotFound @@ -136,9 +140,14 @@ func Doc2Heading(srcID, targetID string, after bool) (srcTreeBox, srcTreePath st } } + if nil == treenode.GetBlockTree(targetID) { + // 目标块不存在时忽略处理 + return + } + targetTree, _ := LoadTreeByBlockID(targetID) if nil == targetTree { - err = ErrBlockNotFound + // 目标块不存在时忽略处理 return } diff --git a/kernel/model/tree.go b/kernel/model/tree.go index 98ee9f81d..eb89117e6 100644 --- a/kernel/model/tree.go +++ b/kernel/model/tree.go @@ -203,8 +203,8 @@ func LoadTreeByBlockIDWithReindex(id string) (ret *parse.Tree, err error) { } func LoadTreeByBlockID(id string) (ret *parse.Tree, err error) { - if "" == id { - logging.LogErrorf("block id is empty") + if !ast.IsNodeIDPattern(id) { + logging.LogErrorf("block id is invalid [id=%s]", id) return nil, ErrTreeNotFound }