From ee413a6352e6fbac146bdf34f470e480d69640fe Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 12 Oct 2022 09:10:39 +0800 Subject: [PATCH 1/4] =?UTF-8?q?:sparkles:=20=E5=A2=9E=E5=8A=A0=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E4=BB=A3=E7=A0=81=20js/css=20=E7=89=87=E6=AE=B5=20htt?= =?UTF-8?q?ps://github.com/siyuan-note/siyuan/issues/6143?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/conf.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 8c2997e07..af83ea920 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -667,20 +667,20 @@ func loadSnippets() { Snippets = []*conf.Snippet{} confPath := filepath.Join(util.DataDir, "snippets/conf.json") - var data []byte - var err error - - if gulu.File.IsExist(confPath) { - data, err = filelock.ReadFile(confPath) - if nil != err { - logging.LogErrorf("load js snippets failed: %s", err) - } else { - if err = gulu.JSON.UnmarshalJSON(data, &Snippets); nil != err { - logging.LogErrorf("unmarshal js snippets failed: %s", err) - } else { - logging.LogInfof("loaded js snippets [%d]", len(Snippets)) - } - } + if !gulu.File.IsExist(confPath) { + return } + + data, err := filelock.ReadFile(confPath) + if nil != err { + logging.LogErrorf("load js snippets failed: %s", err) + return + } + + if err = gulu.JSON.UnmarshalJSON(data, &Snippets); nil != err { + logging.LogErrorf("unmarshal js snippets failed: %s", err) + return + } + logging.LogInfof("loaded js snippets [%d]", len(Snippets)) return } From 5aa57649743031c372b2156c15ba7a7394f04b4f Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 12 Oct 2022 09:13:40 +0800 Subject: [PATCH 2/4] =?UTF-8?q?:sparkles:=20=E5=A2=9E=E5=8A=A0=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E4=BB=A3=E7=A0=81=20js/css=20=E7=89=87=E6=AE=B5=20htt?= =?UTF-8?q?ps://github.com/siyuan-note/siyuan/issues/6143?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/snippet.go | 3 ++- kernel/model/conf.go | 11 ++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kernel/api/snippet.go b/kernel/api/snippet.go index 315a1b39e..7b52eedd3 100644 --- a/kernel/api/snippet.go +++ b/kernel/api/snippet.go @@ -42,8 +42,9 @@ func getSnippet(c *gin.Context) { enabled = false } + confSnippets := model.LoadSnippets() var snippets []*conf.Snippet - for _, s := range model.Snippets { + for _, s := range confSnippets { if ("all" == typ || s.Type == typ) && (2 == enabledArg || s.Enabled == enabled) { snippets = append(snippets, s) } diff --git a/kernel/model/conf.go b/kernel/model/conf.go index af83ea920..b353689f1 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -285,7 +285,6 @@ func InitConf() { } util.SetNetworkProxy(Conf.System.NetworkProxy.String()) - loadSnippets() } var langs = map[string]map[int]string{} @@ -661,10 +660,8 @@ func clearWorkspaceTemp() { logging.LogInfof("cleared workspace temp") } -var Snippets []*conf.Snippet // js/css 代码片段配置 - -func loadSnippets() { - Snippets = []*conf.Snippet{} +func LoadSnippets() (ret []*conf.Snippet) { + ret = []*conf.Snippet{} confPath := filepath.Join(util.DataDir, "snippets/conf.json") if !gulu.File.IsExist(confPath) { @@ -677,10 +674,10 @@ func loadSnippets() { return } - if err = gulu.JSON.UnmarshalJSON(data, &Snippets); nil != err { + if err = gulu.JSON.UnmarshalJSON(data, &ret); nil != err { logging.LogErrorf("unmarshal js snippets failed: %s", err) return } - logging.LogInfof("loaded js snippets [%d]", len(Snippets)) + logging.LogInfof("loaded js snippets [%d]", len(ret)) return } From 3c4af0fc85fd18990451b31d6c72cdec02b9b708 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 12 Oct 2022 09:15:06 +0800 Subject: [PATCH 3/4] =?UTF-8?q?:sparkles:=20=E5=A2=9E=E5=8A=A0=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E4=BB=A3=E7=A0=81=20js/css=20=E7=89=87=E6=AE=B5=20htt?= =?UTF-8?q?ps://github.com/siyuan-note/siyuan/issues/6143?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/snippet.go | 8 +++++++- kernel/model/conf.go | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/kernel/api/snippet.go b/kernel/api/snippet.go index 7b52eedd3..b6e197a72 100644 --- a/kernel/api/snippet.go +++ b/kernel/api/snippet.go @@ -42,7 +42,13 @@ func getSnippet(c *gin.Context) { enabled = false } - confSnippets := model.LoadSnippets() + confSnippets, err := model.LoadSnippets() + if nil != err { + ret.Code = -1 + ret.Msg = "load snippets failed: " + err.Error() + return + } + var snippets []*conf.Snippet for _, s := range confSnippets { if ("all" == typ || s.Type == typ) && (2 == enabledArg || s.Enabled == enabled) { diff --git a/kernel/model/conf.go b/kernel/model/conf.go index b353689f1..8fbf365ca 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -660,9 +660,13 @@ func clearWorkspaceTemp() { logging.LogInfof("cleared workspace temp") } -func LoadSnippets() (ret []*conf.Snippet) { - ret = []*conf.Snippet{} +var loadSnippetsLock = sync.Mutex{} +func LoadSnippets() (ret []*conf.Snippet, err error) { + loadSnippetsLock.Lock() + defer loadSnippetsLock.Unlock() + + ret = []*conf.Snippet{} confPath := filepath.Join(util.DataDir, "snippets/conf.json") if !gulu.File.IsExist(confPath) { return From a92cef6ddeea00edf51068e1e073bb4afc03bf0e Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 12 Oct 2022 09:20:26 +0800 Subject: [PATCH 4/4] =?UTF-8?q?:art:=20=E5=B8=A6=E5=AD=90=E7=BA=A7?= =?UTF-8?q?=E5=8D=87=E9=99=8D=E7=BA=A7=E6=A0=87=E9=A2=98=E5=B1=82=E7=BA=A7?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=88=97=E8=A1=A8=E5=9D=97=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=A0=87=E9=A2=98=20Fix=20https://github.com/siyuan-note/siyua?= =?UTF-8?q?n/issues/6157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/block.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/model/block.go b/kernel/model/block.go index 9a85e6a8e..10f15d495 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -296,9 +296,8 @@ func GetHeadingLevelTransaction(id string, level int) (transaction *Transaction, children = append(children, node) children = append(children, treenode.HeadingChildren(node)...) for _, c := range children { - if ast.NodeHeading == c.Type { - childrenHeadings = append(childrenHeadings, c) - } + ccH := c.ChildrenByType(ast.NodeHeading) + childrenHeadings = append(childrenHeadings, ccH...) } transaction = &Transaction{}