🎨 块引新建文档存放位置 支持模板变量 https://github.com/siyuan-note/siyuan/issues/4693

This commit is contained in:
Liang Ding 2022-12-12 10:18:22 +08:00
parent ee6c39744f
commit 533590cd05
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
4 changed files with 35 additions and 4 deletions

View file

@ -557,7 +557,7 @@ func getDocNameTemplate(c *gin.Context) {
nameTemplate = model.Conf.FileTree.CreateDocNameTemplate
}
name, err := model.RenderCreateDocNameTemplate(nameTemplate)
name, err := model.RenderGoTemplate(nameTemplate)
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
@ -568,6 +568,36 @@ func getDocNameTemplate(c *gin.Context) {
}
}
func getRefCreateSavePath(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
notebook := arg["notebook"].(string)
box := model.Conf.Box(notebook)
refCreateSavePath := model.Conf.FileTree.RefCreateSavePath
if nil != box {
refCreateSavePath = box.GetConf().RefCreateSavePath
}
if "" == refCreateSavePath {
refCreateSavePath = model.Conf.FileTree.RefCreateSavePath
}
p, err := model.RenderGoTemplate(refCreateSavePath)
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
ret.Data = map[string]interface{}{
"path": p,
}
}
func changeSort(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -85,6 +85,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/filetree/listDocsByPath", model.CheckAuth, listDocsByPath)
ginServer.Handle("POST", "/api/filetree/getDoc", model.CheckAuth, getDoc)
ginServer.Handle("POST", "/api/filetree/getDocNameTemplate", model.CheckAuth, getDocNameTemplate)
ginServer.Handle("POST", "/api/filetree/getRefCreateSavePath", model.CheckAuth, getRefCreateSavePath)
ginServer.Handle("POST", "/api/filetree/changeSort", model.CheckAuth, changeSort)
ginServer.Handle("POST", "/api/filetree/lockFile", model.CheckAuth, lockFile)
ginServer.Handle("POST", "/api/filetree/createDocWithMd", model.CheckAuth, model.CheckReadonly, createDocWithMd)

View file

@ -1335,7 +1335,7 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) {
return
}
hPath, err := RenderCreateDocNameTemplate(boxConf.DailyNoteSavePath)
hPath, err := RenderGoTemplate(boxConf.DailyNoteSavePath)
if nil != err {
return
}

View file

@ -41,8 +41,8 @@ import (
"github.com/siyuan-note/siyuan/kernel/sql"
)
func RenderCreateDocNameTemplate(nameTemplate string) (ret string, err error) {
tpl, err := template.New("").Funcs(sprig.TxtFuncMap()).Parse(nameTemplate)
func RenderGoTemplate(templateContent string) (ret string, err error) {
tpl, err := template.New("").Funcs(sprig.TxtFuncMap()).Parse(templateContent)
if nil != err {
return "", errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
}