From da5f467a5e78735ba62c59af02fb4bf503cd5374 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 27 Aug 2022 22:21:59 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=8F=90=E4=BE=9B=E9=87=8D=E5=BB=BA?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=96=87=E6=A1=A3=E7=B4=A2=E5=BC=95=E7=9A=84?= =?UTF-8?q?=20API=20https://github.com/siyuan-note/siyuan/issues/5719?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/filetree.go | 19 +++++++++++++++++++ kernel/api/router.go | 1 + kernel/model/box.go | 13 +++++++++++++ 3 files changed, 33 insertions(+) diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 9aefe207e..18be6e444 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -32,6 +32,25 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func reindexTree(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.ReindexTree(path) + if nil != err { + ret.Code = -1 + ret.Msg = err.Error() + ret.Data = map[string]interface{}{"closeTimeout": 5000} + return + } +} + func refreshFiletree(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) diff --git a/kernel/api/router.go b/kernel/api/router.go index 3c416a6f9..5e3f24e94 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -88,6 +88,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/filetree/heading2Doc", model.CheckAuth, model.CheckReadonly, heading2Doc) ginServer.Handle("POST", "/api/filetree/li2Doc", model.CheckAuth, model.CheckReadonly, li2Doc) ginServer.Handle("POST", "/api/filetree/refreshFiletree", model.CheckAuth, model.CheckReadonly, refreshFiletree) + ginServer.Handle("POST", "/api/filetree/reindexTree", model.CheckAuth, model.CheckReadonly, reindexTree) ginServer.Handle("POST", "/api/format/autoSpace", model.CheckAuth, model.CheckReadonly, autoSpace) ginServer.Handle("POST", "/api/format/netImg2LocalAssets", model.CheckAuth, model.CheckReadonly, netImg2LocalAssets) diff --git a/kernel/model/box.go b/kernel/model/box.go index 59c2d5209..ec77001cc 100644 --- a/kernel/model/box.go +++ b/kernel/model/box.go @@ -449,6 +449,19 @@ func parseKTree(kramdown []byte) (ret *parse.Tree) { return } +func ReindexTree(path string) (err error) { + luteEngine := NewLute() + tree, err := loadTree(path, luteEngine) + if nil != err { + return + } + + treenode.ReindexBlockTree(tree) + sql.UpsertTreeQueue(tree) + sql.WaitForWritingDatabase() + return +} + func RefreshFileTree() { WaitForWritingFiles()