Explorar o código

:art: Support for exporting Org-Mode Fix https://github.com/siyuan-note/siyuan/issues/8136

Liang Ding %!s(int64=2) %!d(string=hai) anos
pai
achega
1e20ccdd72
Modificáronse 3 ficheiros con 29 adicións e 0 borrados
  1. 11 0
      app/src/menus/commonMenuItem.ts
  2. 17 0
      kernel/api/export.go
  3. 1 0
      kernel/api/router.go

+ 11 - 0
app/src/menus/commonMenuItem.ts

@@ -678,6 +678,17 @@ export const exportMd = (id: string) => {
                             openByMobile(response.data.zip);
                         });
                     }
+                }, {
+                    label: "Org-Mode",
+                    click: () => {
+                        const msgId = showMessage(window.siyuan.languages.exporting, -1);
+                        fetchPost("/api/export/exportOrgMode", {
+                            id,
+                        }, response => {
+                            hideMessage(msgId);
+                            openByMobile(response.data.zip);
+                        });
+                    }
                 },
                 ]
             }

+ 17 - 0
kernel/api/export.go

@@ -31,6 +31,23 @@ import (
 	"github.com/siyuan-note/siyuan/kernel/util"
 )
 
+func exportOrgMode(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, "org", ".org")
+	ret.Data = map[string]interface{}{
+		"name": name,
+		"zip":  zipPath,
+	}
+}
+
 func exportOPML(c *gin.Context) {
 	ret := gulu.Ret.NewResult()
 	defer c.JSON(http.StatusOK, ret)

+ 1 - 0
kernel/api/router.go

@@ -249,6 +249,7 @@ func ServeAPI(ginServer *gin.Engine) {
 	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/export/exportOrgMode", model.CheckAuth, exportOrgMode)
 
 	ginServer.Handle("POST", "/api/import/importStdMd", model.CheckAuth, model.CheckReadonly, importStdMd)
 	ginServer.Handle("POST", "/api/import/importData", model.CheckAuth, model.CheckReadonly, importData)