Parcourir la source

Merge remote-tracking branch 'origin/dev' into dev

Vanessa il y a 2 ans
Parent
commit
80ff759d90
4 fichiers modifiés avec 64 ajouts et 0 suppressions
  1. 22 0
      API.md
  2. 22 0
      API_zh_CN.md
  3. 1 0
      kernel/api/router.go
  4. 19 0
      kernel/api/template.go

+ 22 - 0
API.md

@@ -35,6 +35,7 @@
     * [Execute SQL query](#Execute-SQL-query)
 * [Templates](#Templates)
     * [Render a template](#Render-a-template)
+    * [Render Sprig](#Render-Sprig)
 * [File](#File)
     * [Get file](#Get-file)
     * [Put file](#Put-file)
@@ -831,6 +832,27 @@ View API token in <kbd>Settings - About</kbd>, request header: `Authorization: T
   }
   ```
 
+### 渲染 Sprig
+
+* `/api/template/renderSprig`
+* Parameters
+
+  ```json
+  {
+    "template": "/daily note/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}"
+  }
+  ```
+  * `template`: template content
+* Return value
+
+  ```json
+  {
+    "code": 0,
+    "msg": "",
+    "data": "/daily note/2023/03/2023-03-24"
+  }
+  ```
+
 ## File
 
 ### Get file

+ 22 - 0
API_zh_CN.md

@@ -35,6 +35,7 @@
     * [执行 SQL 查询](#执行-SQL-查询)
 * [模板](#模板)
     * [渲染模板](#渲染模板)
+    * [渲染 Sprig](#渲染-Sprig)
 * [文件](#文件)
     * [获取文件](#获取文件)
     * [写入文件](#写入文件)
@@ -824,6 +825,27 @@
   }
   ```
 
+### 渲染 Sprig
+
+* `/api/template/renderSprig`
+* 参数
+
+  ```json
+  {
+    "template": "/daily note/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}"
+  }
+  ```
+  * `template`:模板内容
+* 返回值
+
+  ```json
+  {
+    "code": 0,
+    "msg": "",
+    "data": "/daily note/2023/03/2023-03-24"
+  }
+  ```
+
 ## 文件
 
 ### 获取文件

+ 1 - 0
kernel/api/router.go

@@ -248,6 +248,7 @@ func ServeAPI(ginServer *gin.Engine) {
 
 	ginServer.Handle("POST", "/api/template/render", model.CheckAuth, renderTemplate)
 	ginServer.Handle("POST", "/api/template/docSaveAsTemplate", model.CheckAuth, model.CheckReadonly, docSaveAsTemplate)
+	ginServer.Handle("POST", "/api/template/renderSprig", model.CheckAuth, model.CheckReadonly, renderSprig)
 
 	ginServer.Handle("POST", "/api/transactions", model.CheckAuth, model.CheckReadonly, performTransactions)
 

+ 19 - 0
kernel/api/template.go

@@ -25,6 +25,25 @@ import (
 	"github.com/siyuan-note/siyuan/kernel/util"
 )
 
+func renderSprig(c *gin.Context) {
+	ret := gulu.Ret.NewResult()
+	defer c.JSON(http.StatusOK, ret)
+
+	arg, ok := util.JsonArg(c, ret)
+	if !ok {
+		return
+	}
+
+	template := arg["template"].(string)
+	content, err := model.RenderGoTemplate(template)
+	if nil != err {
+		ret.Code = -1
+		ret.Msg = util.EscapeHTML(err.Error())
+		return
+	}
+	ret.Data = content
+}
+
 func docSaveAsTemplate(c *gin.Context) {
 	ret := gulu.Ret.NewResult()
 	defer c.JSON(http.StatusOK, ret)