Browse Source

:art: 支持列出和切换最近打开的文档 https://github.com/siyuan-note/siyuan/issues/3293

Liang Ding 2 years ago
parent
commit
72419c9075
2 changed files with 14 additions and 0 deletions
  1. 2 0
      kernel/model/file.go
  2. 12 0
      kernel/model/storage.go

+ 2 - 0
kernel/model/file.go

@@ -659,6 +659,8 @@ func GetDoc(startID, endID, id string, index int, keyword string, mode int, size
 
 	luteEngine.RenderOptions.NodeIndexStart = index
 	dom = luteEngine.Tree2BlockDOM(subTree, luteEngine.RenderOptions)
+
+	SetRecentDocByTree(tree)
 	return
 }
 

+ 12 - 0
kernel/model/storage.go

@@ -17,6 +17,7 @@
 package model
 
 import (
+	"github.com/88250/lute/parse"
 	"os"
 	"path/filepath"
 	"sync"
@@ -62,6 +63,17 @@ func RemoveRecentDoc(ids []string) {
 	return
 }
 
+func SetRecentDocByTree(tree *parse.Tree) {
+	recentDoc := &RecentDoc{
+		RootID:     tree.Root.ID,
+		Icon:       tree.Root.IALAttr("icon"),
+		Title:      tree.Root.IALAttr("title"),
+		ScrollAttr: tree.Root.IALAttr("scroll"),
+	}
+
+	SetRecentDoc(recentDoc)
+}
+
 func SetRecentDoc(doc *RecentDoc) (err error) {
 	recentDocLock.Lock()
 	defer recentDocLock.Unlock()