From 0658c85b2ea164e1a9f799fa5a25fc3ce37a1303 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 9 Feb 2025 11:19:26 +0800 Subject: [PATCH 1/3] :art: Improve export preview https://github.com/siyuan-note/siyuan/issues/13857 --- kernel/model/conf.go | 2 +- kernel/model/export.go | 4 ++-- kernel/model/file.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 86d76d4ab..9e40090a3 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -709,7 +709,7 @@ func NewLute() (ret *lute.Lute) { return } -func EnableLuteInlineSyntax(luteEngine *lute.Lute) { +func enableLuteInlineSyntax(luteEngine *lute.Lute) { luteEngine.SetInlineAsterisk(true) luteEngine.SetInlineUnderscore(true) luteEngine.SetSup(true) diff --git a/kernel/model/export.go b/kernel/model/export.go index edbe0dc7e..6faf3bed8 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -576,11 +576,11 @@ func Preview(id string) (retStdHTML string) { tree, _ := LoadTreeByBlockID(id) tree = exportTree(tree, false, false, true, blockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode, - Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker, + "#", "#", // 这里固定使用 # 包裹标签,否则无法正确解析标签 https://github.com/siyuan-note/siyuan/issues/13857 Conf.Export.BlockRefTextLeft, Conf.Export.BlockRefTextRight, Conf.Export.AddTitle, true, true, &map[string]*parse.Tree{}) luteEngine := NewLute() - EnableLuteInlineSyntax(luteEngine) + enableLuteInlineSyntax(luteEngine) luteEngine.SetFootnotes(true) addBlockIALNodes(tree, false) md := treenode.FormatNode(tree.Root, luteEngine) diff --git a/kernel/model/file.go b/kernel/model/file.go index 2a36e2f41..f73f2e184 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -1036,7 +1036,7 @@ func CreateWithMarkdown(tags, boxID, hPath, md, parentID, id string, withMath bo luteEngine.SetHTMLTag2TextMark(true) if strings.HasPrefix(clippingHref, "https://ld246.com/article/") || strings.HasPrefix(clippingHref, "https://liuyun.io/article/") { // 改进链滴剪藏 https://github.com/siyuan-note/siyuan/issues/13117 - EnableLuteInlineSyntax(luteEngine) + enableLuteInlineSyntax(luteEngine) } dom := luteEngine.Md2BlockDOM(md, false) retID, err = createDocsByHPath(box.ID, hPath, dom, parentID, id) From 4824feaa2fb7be200652c825113cbb2a462edaf5 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 9 Feb 2025 11:33:43 +0800 Subject: [PATCH 2/3] :art: Improve create doc event push --- kernel/api/filetree.go | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 8aa3e06b5..38989ce93 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -231,24 +231,12 @@ func heading2Doc(c *gin.Context) { } model.FlushTxQueue() - luteEngine := util.NewLute() - tree, err := filesys.LoadTree(targetNotebook, targetPath, luteEngine) - if err != nil { - ret.Code = -1 - ret.Msg = err.Error() - return - } - name := path.Base(targetPath) box := model.Conf.Box(targetNotebook) - files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt := util.NewCmdResult("heading2doc", 0, util.PushModeBroadcast) evt.Data = map[string]interface{}{ "box": box, "path": targetPath, - "files": files, - "name": name, - "id": tree.Root.ID, "srcRootBlockID": srcRootBlockID, } evt.Callback = arg["callback"] @@ -283,24 +271,12 @@ func li2Doc(c *gin.Context) { } model.FlushTxQueue() - luteEngine := util.NewLute() - tree, err := filesys.LoadTree(targetNotebook, targetPath, luteEngine) - if err != nil { - ret.Code = -1 - ret.Msg = err.Error() - return - } - name := path.Base(targetPath) box := model.Conf.Box(targetNotebook) - files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt := util.NewCmdResult("li2doc", 0, util.PushModeBroadcast) evt.Data = map[string]interface{}{ "box": box, "path": targetPath, - "files": files, - "name": name, - "id": tree.Root.ID, "srcRootBlockID": srcRootBlockID, } evt.Callback = arg["callback"] @@ -679,7 +655,7 @@ func duplicateDoc(c *gin.Context) { notebook := tree.Box box := model.Conf.Box(notebook) model.DuplicateDoc(tree) - pushCreate(box, tree.Path, tree.ID, arg) + pushCreate(box, tree.Path, arg) ret.Data = map[string]interface{}{ "id": tree.Root.ID, @@ -720,7 +696,7 @@ func createDoc(c *gin.Context) { model.FlushTxQueue() box := model.Conf.Box(notebook) - pushCreate(box, p, tree.Root.ID, arg) + pushCreate(box, p, arg) ret.Data = map[string]interface{}{ "id": tree.Root.ID, @@ -856,7 +832,7 @@ func createDocWithMd(c *gin.Context) { box := model.Conf.Box(notebook) b, _ := model.GetBlock(id, nil) p := b.Path - pushCreate(box, p, id, arg) + pushCreate(box, p, arg) } func getDocCreateSavePath(c *gin.Context) { @@ -1164,16 +1140,11 @@ func getDoc(c *gin.Context) { } } -func pushCreate(box *model.Box, p, treeID string, arg map[string]interface{}) { +func pushCreate(box *model.Box, p string, arg map[string]interface{}) { evt := util.NewCmdResult("create", 0, util.PushModeBroadcast) - name := path.Base(p) - files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt.Data = map[string]interface{}{ - "box": box, - "path": p, - "files": files, - "name": name, - "id": treeID, + "box": box, + "path": p, } evt.Callback = arg["callback"] util.PushEvent(evt) From 947dbc478706d41cc4da011ccb4de0480c3dcf95 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 9 Feb 2025 11:42:02 +0800 Subject: [PATCH 3/3] :art: Improve refreshing of doc tree when creating doc https://github.com/siyuan-note/siyuan/issues/12109 --- kernel/api/filetree.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 38989ce93..45d809246 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -695,8 +695,16 @@ func createDoc(c *gin.Context) { } model.FlushTxQueue() - box := model.Conf.Box(notebook) - pushCreate(box, p, arg) + + pushCreateEvt := true + pushCreateEvtArg := arg["pushCreateEvt"] + if nil != pushCreateEvtArg { + pushCreateEvt = pushCreateEvtArg.(bool) + } + if pushCreateEvt { + box := model.Conf.Box(notebook) + pushCreate(box, p, arg) + } ret.Data = map[string]interface{}{ "id": tree.Root.ID, @@ -829,10 +837,17 @@ func createDocWithMd(c *gin.Context) { ret.Data = id model.FlushTxQueue() - box := model.Conf.Box(notebook) - b, _ := model.GetBlock(id, nil) - p := b.Path - pushCreate(box, p, arg) + + pushCreateEvt := true + pushCreateEvtArg := arg["pushCreateEvt"] + if nil != pushCreateEvtArg { + pushCreateEvt = pushCreateEvtArg.(bool) + } + if pushCreateEvt { + box := model.Conf.Box(notebook) + b, _ := model.GetBlock(id, nil) + pushCreate(box, b.Path, arg) + } } func getDocCreateSavePath(c *gin.Context) {