🎨 Supports exporting a code block as a file https://github.com/siyuan-note/siyuan/pull/16774

Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2026-01-07 15:32:35 +08:00
parent 7221367334
commit 58bb751cd4
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 68 additions and 0 deletions

View file

@ -37,6 +37,29 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func exportCodeBlock(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
id := arg["id"].(string)
filePath, err := model.ExportCodeBlock(id)
if err != nil {
ret.Code = 1
ret.Msg = err.Error()
ret.Data = map[string]interface{}{"closeTimeout": 7000}
return
}
ret.Data = map[string]interface{}{
"path": filePath,
}
}
func exportAttributeView(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -340,6 +340,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/export/exportRTF", model.CheckAuth, model.CheckAdminRole, exportRTF)
ginServer.Handle("POST", "/api/export/exportEPUB", model.CheckAuth, model.CheckAdminRole, exportEPUB)
ginServer.Handle("POST", "/api/export/exportAttributeView", model.CheckAuth, model.CheckAdminRole, exportAttributeView)
ginServer.Handle("POST", "/api/export/exportCodeBlock", model.CheckAuth, model.CheckAdminRole, exportCodeBlock)
ginServer.Handle("POST", "/api/import/importStdMd", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, importStdMd)
ginServer.Handle("POST", "/api/import/importZipMd", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, importZipMd)