From 57a3188f4c79c7fb4bcfb657c035b7ba0de409e3 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 4 Feb 2023 10:30:55 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E5=9D=97?= =?UTF-8?q?=E6=A0=91=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/block.go | 9 +++++---- kernel/treenode/blocktree.go | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel/model/block.go b/kernel/model/block.go index b9b51f668..c48e11dcb 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -155,6 +155,9 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) { } } + refreshUpdated(defNode) + refreshUpdated(refNode) + refPivot := treenode.NewParagraph() refNode.InsertBefore(refPivot) @@ -215,13 +218,11 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) { } refPivot.Unlink() - treenode.IndexBlockTree(refTree) - if err = writeJSONQueue(refTree); nil != err { + if err = indexWriteJSONQueue(refTree); nil != err { return } if !sameTree { - treenode.IndexBlockTree(defTree) - if err = writeJSONQueue(defTree); nil != err { + if err = indexWriteJSONQueue(defTree); nil != err { return } } diff --git a/kernel/treenode/blocktree.go b/kernel/treenode/blocktree.go index bb5e2f1c9..cc8128e9a 100644 --- a/kernel/treenode/blocktree.go +++ b/kernel/treenode/blocktree.go @@ -270,7 +270,7 @@ func IndexBlockTree(tree *parse.Tree) { slice.m.Unlock() if nil != bt { - if bt.Updated != n.IALAttr("updated") { + if bt.Updated != n.IALAttr("updated") || bt.Path != tree.Path || bt.BoxID != tree.Box || bt.HPath != tree.HPath { children := ChildBlockNodes(n) // 需要考虑子块,因为一些操作(比如移动块)后需要同时更新子块 changedNodes = append(changedNodes, children...) } From 8c6b10a02bc09f33ad4e2c560afed1a070a92c49 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 4 Feb 2023 10:33:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E5=9D=97?= =?UTF-8?q?=E6=A0=91=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/treenode/blocktree.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel/treenode/blocktree.go b/kernel/treenode/blocktree.go index cc8128e9a..fdfeaf112 100644 --- a/kernel/treenode/blocktree.go +++ b/kernel/treenode/blocktree.go @@ -305,9 +305,13 @@ func updateBtSlice(n *ast.Node, tree *parse.Tree) { slice.m.Unlock() } -func InitBlockTree(force bool) { - start := time.Now() +var blockTreeLock = sync.Mutex{} +func InitBlockTree(force bool) { + blockTreeLock.Lock() + defer blockTreeLock.Unlock() + + start := time.Now() if force { err := os.RemoveAll(util.BlockTreePath) if nil != err { @@ -387,6 +391,9 @@ func SaveBlockTreeJob() { } func SaveBlockTree(force bool) { + blockTreeLock.Lock() + defer blockTreeLock.Unlock() + start := time.Now() os.MkdirAll(util.BlockTreePath, 0755) From ea45e7ccb385f477714d2d21a97b1174bece4310 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 4 Feb 2023 10:48:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?:bug:=20=E5=AD=98=E5=9C=A8=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E7=9A=84=E5=9D=97=E5=A4=8D=E5=88=B6=E4=B8=BA=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E6=9C=AA=E8=BD=AC=E4=B9=89=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=96=87=E6=9C=AC=20Fix=20https://github.com/siyuan-note/siyua?= =?UTF-8?q?n/issues/7254?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/blockinfo.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/model/blockinfo.go b/kernel/model/blockinfo.go index ea5b9bcee..11aa9627e 100644 --- a/kernel/model/blockinfo.go +++ b/kernel/model/blockinfo.go @@ -94,8 +94,10 @@ func GetBlockRefText(id string) string { } func getNodeRefText(node *ast.Node) string { - if name := node.IALAttr("name"); "" != name { - return name + if ret := node.IALAttr("name"); "" != ret { + ret = strings.TrimSpace(ret) + ret = util.EscapeHTML(ret) + return ret } switch node.Type {