🎨 支持通过界面设置代码片段 https://github.com/siyuan-note/siyuan/issues/6357

This commit is contained in:
Liang Ding 2022-10-27 20:03:02 +08:00
parent 8f942aa631
commit dd30521f72
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
2 changed files with 19 additions and 33 deletions

View file

@ -23,6 +23,7 @@ import (
"strings"
"github.com/88250/gulu"
"github.com/88250/lute/ast"
"github.com/gin-gonic/gin"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/conf"
@ -98,22 +99,29 @@ func setSnippet(c *gin.Context) {
return
}
id := gulu.Rand.String(12)
idArg := arg["id"]
if nil != idArg {
id = idArg.(string)
snippetsArg := arg["snippets"].([]interface{})
var snippets []*conf.Snippet
for _, s := range snippetsArg {
m := s.(map[string]interface{})
snippet := &conf.Snippet{
ID: m["id"].(string),
Name: m["name"].(string),
Type: m["type"].(string),
Content: m["content"].(string),
Enabled: m["enabled"].(bool),
}
name := arg["name"].(string)
typ := arg["type"].(string)
content := arg["content"].(string)
enabled := arg["enabled"].(bool)
snippet, err := model.SetSnippet(id, name, typ, content, enabled)
if "" == snippet.ID {
snippet.ID = ast.NewNodeID()
}
snippets = append(snippets, snippet)
}
err := model.SetSnippet(snippets)
if nil != err {
ret.Code = -1
ret.Msg = "set snippet failed: " + err.Error()
return
}
ret.Data = snippet
}
func removeSnippet(c *gin.Context) {

View file

@ -50,32 +50,10 @@ func RemoveSnippet(id string) (ret *conf.Snippet, err error) {
return
}
func SetSnippet(id, name, typ, content string, enabled bool) (ret *conf.Snippet, err error) {
func SetSnippet(snippets []*conf.Snippet) (err error) {
snippetsLock.Lock()
defer snippetsLock.Unlock()
snippets, err := loadSnippets()
if nil != err {
return
}
isUpdate := false
for _, s := range snippets {
if s.ID == id {
s.Name = name
s.Type = typ
s.Content = content
s.Enabled = enabled
ret = s
isUpdate = true
break
}
}
if !isUpdate {
ret = &conf.Snippet{ID: id, Name: name, Type: typ, Content: content, Enabled: enabled}
snippets = append(snippets, ret)
}
err = writeSnippetsConf(snippets)
return
}