소스 검색

:sparkles: 增加公共代码 js/css 片段 https://github.com/siyuan-note/siyuan/issues/6143

Liang Ding 2 년 전
부모
커밋
3c4af0fc85
2개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 7 1
      kernel/api/snippet.go
  2. 6 2
      kernel/model/conf.go

+ 7 - 1
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) {

+ 6 - 2
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