From af938cc41d70ae4bc3d5966c687ea43c05cbc3c1 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 10 May 2023 23:07:17 +0800 Subject: [PATCH] :art: Support for exporting OPML Fix https://github.com/siyuan-note/siyuan/issues/8131 --- app/src/menus/commonMenuItem.ts | 13 ++++++++++++- kernel/api/export.go | 17 +++++++++++++++++ kernel/api/router.go | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/src/menus/commonMenuItem.ts b/app/src/menus/commonMenuItem.ts index 037a00aec..0f4491514 100644 --- a/app/src/menus/commonMenuItem.ts +++ b/app/src/menus/commonMenuItem.ts @@ -656,7 +656,7 @@ export const exportMd = (id: string) => { openByMobile(response.data.zip); }); } - },{ + }, { label: "Textile", click: () => { const msgId = showMessage(window.siyuan.languages.exporting, -1); @@ -667,6 +667,17 @@ export const exportMd = (id: string) => { openByMobile(response.data.zip); }); } + }, { + label: "OPML", + click: () => { + const msgId = showMessage(window.siyuan.languages.exporting, -1); + fetchPost("/api/export/exportOPML", { + id, + }, response => { + hideMessage(msgId); + openByMobile(response.data.zip); + }); + } }, ] } diff --git a/kernel/api/export.go b/kernel/api/export.go index 8f5c15f17..260c3aaa8 100644 --- a/kernel/api/export.go +++ b/kernel/api/export.go @@ -31,6 +31,23 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func exportOPML(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) + name, zipPath := model.ExportPandocConvertZip(id, "opml", ".opml") + ret.Data = map[string]interface{}{ + "name": name, + "zip": zipPath, + } +} + func exportTextile(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 9b59d4f8a..11b0f7385 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -248,6 +248,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/export/exportReStructuredText", model.CheckAuth, exportReStructuredText) ginServer.Handle("POST", "/api/export/exportAsciiDoc", model.CheckAuth, exportAsciiDoc) ginServer.Handle("POST", "/api/export/exportTextile", model.CheckAuth, exportTextile) + ginServer.Handle("POST", "/api/export/exportOPML", model.CheckAuth, exportOPML) ginServer.Handle("POST", "/api/import/importStdMd", model.CheckAuth, model.CheckReadonly, importStdMd) ginServer.Handle("POST", "/api/import/importData", model.CheckAuth, model.CheckReadonly, importData)