Procházet zdrojové kódy

:art: 导出 PDF 和 Word 时支持覆盖已有文件 https://github.com/siyuan-note/siyuan/issues/5309

Liang Ding před 3 roky
rodič
revize
958ddf147c
2 změnil soubory, kde provedl 5 přidání a 4 odebrání
  1. 2 1
      kernel/api/export.go
  2. 3 3
      kernel/model/export.go

+ 2 - 1
kernel/api/export.go

@@ -135,7 +135,8 @@ func exportDocx(c *gin.Context) {
 
 	id := arg["id"].(string)
 	savePath := arg["savePath"].(string)
-	err := model.ExportDocx(id, savePath)
+	removeAssets := arg["removeAssets"].(bool)
+	err := model.ExportDocx(id, savePath, removeAssets)
 	if nil != err {
 		ret.Code = 1
 		ret.Msg = err.Error()

+ 3 - 3
kernel/model/export.go

@@ -155,7 +155,7 @@ func Preview(id string) string {
 	return luteEngine.ProtylePreview(tree, luteEngine.RenderOptions)
 }
 
-func ExportDocx(id, savePath string) (err error) {
+func ExportDocx(id, savePath string, removeAssets bool) (err error) {
 	if !util.IsValidPandocBin(Conf.Export.PandocBin) {
 		return errors.New(Conf.Language(115))
 	}
@@ -184,8 +184,8 @@ func ExportDocx(id, savePath string) (err error) {
 		logging.LogErrorf("export docx failed: %s", err)
 		return errors.New(fmt.Sprintf(Conf.Language(14), err))
 	}
-	tmpAssets := filepath.Join(tmpDir, "assets")
-	if gulu.File.IsDir(tmpAssets) {
+
+	if tmpAssets := filepath.Join(tmpDir, "assets"); !removeAssets && gulu.File.IsDir(tmpAssets) {
 		if err = gulu.File.Copy(tmpAssets, filepath.Join(savePath, "assets")); nil != err {
 			logging.LogErrorf("export docx failed: %s", err)
 			return errors.New(fmt.Sprintf(Conf.Language(14), err))