浏览代码

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

Vanessa 2 年之前
父节点
当前提交
99331ce331
共有 5 个文件被更改,包括 16 次插入7 次删除
  1. 1 0
      app/src/util/onGetConfig.ts
  2. 5 1
      kernel/api/export.go
  3. 9 1
      kernel/model/export.go
  4. 1 1
      kernel/model/export_merge.go
  5. 0 4
      kernel/model/path.go

+ 1 - 0
app/src/util/onGetConfig.ts

@@ -391,6 +391,7 @@ const initWindow = () => {
                         destroyPrintWindow();
                         fetchPost("/api/export/addPDFOutline", {
                             id: ipcData.rootId,
+                            merge: ipcData.mergeSubdocs,
                             path: pdfFilePath
                         }, () => {
                             afterExport(pdfFilePath, msgId);

+ 5 - 1
kernel/api/export.go

@@ -290,7 +290,11 @@ func addPDFOutline(c *gin.Context) {
 
 	id := arg["id"].(string)
 	path := arg["path"].(string)
-	err := model.AddPDFOutline(id, path)
+	merge := false
+	if nil != arg["merge"] {
+		merge = arg["merge"].(bool)
+	}
+	err := model.AddPDFOutline(id, path, merge)
 	if nil != err {
 		ret.Code = -1
 		ret.Msg = err.Error()

+ 9 - 1
kernel/model/export.go

@@ -489,7 +489,7 @@ func processIFrame(tree *parse.Tree) {
 	}
 }
 
-func AddPDFOutline(id, p string) (err error) {
+func AddPDFOutline(id, p string, merge bool) (err error) {
 	inFile := p
 	links, err := api.ListToCLinks(inFile)
 	if nil != err {
@@ -527,6 +527,14 @@ func AddPDFOutline(id, p string) (err error) {
 	if nil == tree {
 		return
 	}
+	if merge {
+		var mergeErr error
+		tree, mergeErr = mergeSubDocs(tree)
+		if nil != mergeErr {
+			logging.LogErrorf("merge sub docs failed: %s", mergeErr)
+			return
+		}
+	}
 
 	var headings []*ast.Node
 	ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus {

+ 1 - 1
kernel/model/export_merge.go

@@ -84,7 +84,7 @@ func loadTreeNodes(box string, p string, level int) (ret []*ast.Node, err error)
 		hLevel = 6
 	}
 
-	heading := &ast.Node{Type: ast.NodeHeading, HeadingLevel: hLevel}
+	heading := &ast.Node{ID: tree.Root.ID, Type: ast.NodeHeading, HeadingLevel: hLevel}
 	heading.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(tree.Root.IALAttr("title"))})
 	tree.Root.PrependChild(heading)
 	for c := tree.Root.FirstChild; nil != c; c = c.Next {

+ 0 - 4
kernel/model/path.go

@@ -24,7 +24,6 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/88250/gulu"
 	"github.com/88250/lute/ast"
 	"github.com/siyuan-note/logging"
 	"github.com/siyuan-note/siyuan/kernel/search"
@@ -35,9 +34,6 @@ import (
 
 func createDocsByHPath(boxID, hPath, content string) (id string, existed bool, err error) {
 	hPath = strings.TrimSuffix(hPath, ".sy")
-	if existed = nil != treenode.GetBlockTreeRootByHPath(boxID, hPath); existed {
-		hPath += "-" + gulu.Rand.String(7)
-	}
 	pathBuilder := bytes.Buffer{}
 	pathBuilder.WriteString("/")
 	hPathBuilder := bytes.Buffer{}