From ee7ab26fcd665e8b06b1837a4618264e2b1ebc15 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 29 Mar 2023 19:38:03 +0800 Subject: [PATCH 1/5] :bug: After the document is transferred to the heading, occurs two copies of the reference block Fix https://github.com/siyuan-note/siyuan/issues/7819 --- kernel/model/heading.go | 4 ++++ kernel/sql/block_ref.go | 10 ++++++++++ kernel/sql/queue.go | 18 +++++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/kernel/model/heading.go b/kernel/model/heading.go index dd35e82d7..d2437fdde 100644 --- a/kernel/model/heading.go +++ b/kernel/model/heading.go @@ -134,6 +134,10 @@ func Doc2Heading(srcID, targetID string, after bool) (srcTreeBox, srcTreePath st return } + // 移动前先删除引用 https://github.com/siyuan-note/siyuan/issues/7819 + sql.DeleteRefsTreeQueue(srcTree) + sql.DeleteRefsTreeQueue(targetTree) + if ast.NodeListItem == pivot.Type { pivot = pivot.LastChild } diff --git a/kernel/sql/block_ref.go b/kernel/sql/block_ref.go index c89e1fe6f..7da900fe4 100644 --- a/kernel/sql/block_ref.go +++ b/kernel/sql/block_ref.go @@ -47,3 +47,13 @@ func upsertRefs(tx *sql.Tx, tree *parse.Tree) (err error) { err = insertRefs(tx, tree) return } + +func deleteRefs(tx *sql.Tx, tree *parse.Tree) (err error) { + if err = deleteRefsByPath(tx, tree.Box, tree.Path); nil != err { + return + } + if err = deleteFileAnnotationRefsByPath(tx, tree.Box, tree.Path); nil != err { + return + } + return +} diff --git a/kernel/sql/queue.go b/kernel/sql/queue.go index d4b289746..34d6e2deb 100644 --- a/kernel/sql/queue.go +++ b/kernel/sql/queue.go @@ -44,7 +44,7 @@ type dbQueueOperation struct { action string // upsert/delete/delete_id/rename/rename_sub_tree/delete_box/delete_box_refs/insert_refs/index/delete_ids/update_block_content/delete_assets indexPath string // index - upsertTree *parse.Tree // upsert/insert_refs + upsertTree *parse.Tree // upsert/insert_refs/update_refs/delete_refs removeTreeBox, removeTreePath string // delete removeTreeIDBox, removeTreeID string // delete_id removeTreeIDs []string // delete_ids @@ -182,6 +182,8 @@ func execOp(op *dbQueueOperation, tx *sql.Tx, context map[string]interface{}) (e err = insertRefs(tx, op.upsertTree) case "update_refs": err = upsertRefs(tx, op.upsertTree) + case "delete_refs": + err = deleteRefs(tx, op.upsertTree) case "update_block_content": err = updateBlockContent(tx, op.block) case "delete_assets": @@ -220,6 +222,20 @@ func UpdateBlockContentQueue(block *Block) { operationQueue = append(operationQueue, newOp) } +func DeleteRefsTreeQueue(tree *parse.Tree) { + dbQueueLock.Lock() + defer dbQueueLock.Unlock() + + newOp := &dbQueueOperation{upsertTree: tree, inQueueTime: time.Now(), action: "delete_refs"} + for i, op := range operationQueue { + if "delete_refs" == op.action && op.upsertTree.ID == tree.ID { + operationQueue[i] = newOp + return + } + } + operationQueue = append(operationQueue, newOp) +} + func UpdateRefsTreeQueue(tree *parse.Tree) { dbQueueLock.Lock() defer dbQueueLock.Unlock() From 1d5aaad43f120f9bbc0aa80760da0df7ca8c56f0 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 29 Mar 2023 19:50:29 +0800 Subject: [PATCH 2/5] :bug: Parsing YFM incorrectly when exporting widget block attribute `data-export-md` Fix https://github.com/siyuan-note/siyuan/issues/7824 --- kernel/model/export.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/export.go b/kernel/model/export.go index 51d2f5c81..852850c6d 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -1797,7 +1797,7 @@ func exportTree(tree *parse.Tree, wysiwyg, expandKaTexMacros, keepFold bool, if "" != exportMdVal { luteEngine0 := util.NewLute() luteEngine0.SetYamlFrontMatter(true) // 挂件导出属性 `data-export-md` 支持 YFM https://github.com/siyuan-note/siyuan/issues/7752 - exportMdTree := parse.Parse("", []byte(exportMdVal), luteEngine.ParseOptions) + exportMdTree := parse.Parse("", []byte(exportMdVal), luteEngine0.ParseOptions) var insertNodes []*ast.Node for c := exportMdTree.Root.FirstChild; nil != c; c = c.Next { if ast.NodeKramdownBlockIAL != c.Type { From e10f7e6bc07d317a692e7ac18b59e40b4968010e Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 29 Mar 2023 19:54:20 +0800 Subject: [PATCH 3/5] :octocat: Update CI --- scripts/parse-changelog.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/parse-changelog.py b/scripts/parse-changelog.py index 65965a81a..ce5dc4d57 100644 --- a/scripts/parse-changelog.py +++ b/scripts/parse-changelog.py @@ -6,13 +6,13 @@ from collections import defaultdict import github docmap = { - "Feature": "引入特性", - "Enhancement": "改进功能", - "Bug": "修复缺陷", - "Document": "文档相关", - "Refactor": "开发重构", - "Abolishment": "移除功能", - "Development": "开发相关", + "Feature": "Feature", + "Enhancement": "Enhancement", + "Bug": "Bug", + "Document": "Document", + "Refactor": "Refactor", + "Abolishment": "Abolishment", + "Development": "Development", } From 5d94424dc758863af8971bfe4bf83982dd61d5bc Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 30 Mar 2023 09:55:24 +0800 Subject: [PATCH 4/5] :arrow_up: Upgrade kernel deps --- kernel/go.mod | 2 +- kernel/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 54aec5a64..9aeec296d 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -6,7 +6,7 @@ require ( github.com/88250/clipboard v0.1.5 github.com/88250/css v0.1.2 github.com/88250/gulu v1.2.3-0.20230321113152-38c4a3d73c37 - github.com/88250/lute v1.7.6-0.20230329103341-8b07be5ce46e + github.com/88250/lute v1.7.6-0.20230330013439-8760e9c073db github.com/88250/pdfcpu v0.3.14-0.20230224021324-e51076eb6390 github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 github.com/ClarkThan/ahocorasick v0.0.0-20230220142845-f237b6348b3e diff --git a/kernel/go.sum b/kernel/go.sum index f7b1ddf68..77da33b9e 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -8,8 +8,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/88250/gulu v1.2.3-0.20230321113152-38c4a3d73c37 h1:7ZMvlXDbH2sqaxowoAFcLjcdRN7ncVE0U1S2ukpUgac= github.com/88250/gulu v1.2.3-0.20230321113152-38c4a3d73c37/go.mod h1:pTWnjt+6qUqNnP9xltswsJxgCBVu3C7eW09u48LWX0k= -github.com/88250/lute v1.7.6-0.20230329103341-8b07be5ce46e h1:deOjwckXrB39xDvToqxBtSspBmaQ1oKEDi406xnLNOw= -github.com/88250/lute v1.7.6-0.20230329103341-8b07be5ce46e/go.mod h1:+wUqx/1kdFDbWtxn9LYJlaCOAeol2pjSO6w+WJTVQsg= +github.com/88250/lute v1.7.6-0.20230330013439-8760e9c073db h1:VS58OzTzimPqjiw6WQJhs9o22cQpeHyuxml57rqQXkk= +github.com/88250/lute v1.7.6-0.20230330013439-8760e9c073db/go.mod h1:+wUqx/1kdFDbWtxn9LYJlaCOAeol2pjSO6w+WJTVQsg= github.com/88250/pdfcpu v0.3.14-0.20230224021324-e51076eb6390 h1:q2AR33VoQ87WYtvZ4pEvwj5gZkv22HK/yMlPWwF1oyc= github.com/88250/pdfcpu v0.3.14-0.20230224021324-e51076eb6390/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4= github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY= From 6335cdfb060bf72a25ca1ac93f5ec6e3e1d4a521 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 30 Mar 2023 10:09:50 +0800 Subject: [PATCH 5/5] :art: Check update with locale release changelog link --- kernel/model/updater.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/model/updater.go b/kernel/model/updater.go index cae0843e3..7c5767287 100644 --- a/kernel/model/updater.go +++ b/kernel/model/updater.go @@ -255,14 +255,18 @@ func CheckUpdate(showMsg bool) { } ver := result["ver"].(string) - release := result["release"].(string) + releaseLang := result["release"].(string) + if releaseLangArg := result["release_"+Conf.Lang]; nil != releaseLangArg { + releaseLang = releaseLangArg.(string) + } + var msg string var timeout int if isVersionUpToDate(ver) { msg = Conf.Language(10) timeout = 3000 } else { - msg = fmt.Sprintf(Conf.Language(9), ""+release+"") + msg = fmt.Sprintf(Conf.Language(9), ""+releaseLang+"") showMsg = true timeout = 15000 }