From 984615fbc156701da7cd401c0f4b58707a7a24c5 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Mar 2023 19:29:36 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=AF=E6=8C=81=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=86=85=E5=88=A0=E9=99=A4=E6=A8=A1=E6=9D=BF=20https://github.?= =?UTF-8?q?com/siyuan-note/siyuan/issues/7746?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/router.go | 1 + kernel/api/search.go | 18 ++++++++++++++++++ kernel/model/template.go | 11 ++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/kernel/api/router.go b/kernel/api/router.go index fe82071cc..1c64a7601 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -135,6 +135,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/search/searchTag", model.CheckAuth, searchTag) ginServer.Handle("POST", "/api/search/searchTemplate", model.CheckAuth, searchTemplate) + ginServer.Handle("POST", "/api/search/removeTemplate", model.CheckAuth, removeTemplate) ginServer.Handle("POST", "/api/search/searchWidget", model.CheckAuth, searchWidget) ginServer.Handle("POST", "/api/search/searchRefBlock", model.CheckAuth, searchRefBlock) ginServer.Handle("POST", "/api/search/searchEmbedBlock", model.CheckAuth, searchEmbedBlock) diff --git a/kernel/api/search.go b/kernel/api/search.go index 6fdaeedc6..31a5877c7 100644 --- a/kernel/api/search.go +++ b/kernel/api/search.go @@ -108,6 +108,24 @@ func searchWidget(c *gin.Context) { } } +func removeTemplate(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + arg, ok := util.JsonArg(c, ret) + if !ok { + return + } + + path := arg["path"].(string) + err := model.RemoveTemplate(path) + if nil != err { + ret.Code = -1 + ret.Msg = err.Error() + return + } +} + func searchTemplate(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) diff --git a/kernel/model/template.go b/kernel/model/template.go index 73d546d55..fb3d348b1 100644 --- a/kernel/model/template.go +++ b/kernel/model/template.go @@ -34,6 +34,7 @@ import ( "github.com/88250/lute/render" sprig "github.com/Masterminds/sprig/v3" "github.com/araddon/dateparse" + "github.com/siyuan-note/filelock" "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/search" "github.com/siyuan-note/siyuan/kernel/sql" @@ -57,6 +58,14 @@ func RenderGoTemplate(templateContent string) (ret string, err error) { return } +func RemoveTemplate(p string) (err error) { + err = filelock.Remove(p) + if nil != err { + logging.LogErrorf("remove template failed: %s", err) + } + return +} + func SearchTemplate(keyword string) (ret []*Block) { ret = []*Block{} @@ -145,7 +154,7 @@ func DocSaveAsTemplate(id string, overwrite bool) (code int, err error) { } } - err = os.WriteFile(savePath, md, 0644) + err = filelock.WriteFile(savePath, md) return }