diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 8159d614c..86b6988a0 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -96,7 +96,7 @@ func heading2Doc(c *gin.Context) { name := path.Base(targetPath) box := model.Conf.Box(targetNotebook) - files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount) + files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt := util.NewCmdResult("heading2doc", 0, util.PushModeBroadcast) evt.Data = map[string]interface{}{ "box": box, @@ -141,7 +141,7 @@ func li2Doc(c *gin.Context) { name := path.Base(targetPath) box := model.Conf.Box(targetNotebook) - files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount) + files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt := util.NewCmdResult("li2doc", 0, util.PushModeBroadcast) evt.Data = map[string]interface{}{ "box": box, @@ -449,7 +449,7 @@ func createDailyNote(c *gin.Context) { evt.AppId = app name := path.Base(p) - files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount) + files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt.Data = map[string]interface{}{ "box": box, "path": p, @@ -648,8 +648,12 @@ func listDocsByPath(c *gin.Context) { maxListCount = math.MaxInt } } + showHidden := true + if arg["showHidden"] != nil { + showHidden = arg["showHidden"].(bool) + } - files, totals, err := model.ListDocTree(notebook, p, sortMode, flashcard, maxListCount) + files, totals, err := model.ListDocTree(notebook, p, sortMode, flashcard, showHidden, maxListCount) if nil != err { ret.Code = -1 ret.Msg = err.Error() @@ -760,7 +764,7 @@ func getDoc(c *gin.Context) { func pushCreate(box *model.Box, p, treeID string, arg map[string]interface{}) { evt := util.NewCmdResult("create", 0, util.PushModeBroadcast) name := path.Base(p) - files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount) + files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount) evt.Data = map[string]interface{}{ "box": box, "path": p, diff --git a/kernel/model/export_merge.go b/kernel/model/export_merge.go index ba8109ce0..b54a10202 100644 --- a/kernel/model/export_merge.go +++ b/kernel/model/export_merge.go @@ -111,7 +111,7 @@ func loadTreeNodes(box string, p string, level int) (ret []*ast.Node, err error) } func buildBlockChildren(block *Block) (err error) { - files, _, err := ListDocTree(block.Box, block.Path, util.SortModeUnassigned, false, Conf.FileTree.MaxListCount) + files, _, err := ListDocTree(block.Box, block.Path, util.SortModeUnassigned, false, false, Conf.FileTree.MaxListCount) if nil != err { return } diff --git a/kernel/model/file.go b/kernel/model/file.go index 1d63ebbbd..224c15d8e 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -66,6 +66,7 @@ type File struct { HCtime string `json:"hCtime"` Sort int `json:"sort"` SubFileCount int `json:"subFileCount"` + Hidden bool `json:"hidden"` NewFlashcardCount int `json:"newFlashcardCount"` DueFlashcardCount int `json:"dueFlashcardCount"` @@ -231,7 +232,7 @@ type FileInfo struct { isdir bool } -func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount int) (ret []*File, totals int, err error) { +func ListDocTree(boxID, path string, sortMode int, flashcard, showHidden bool, maxListCount int) (ret []*File, totals int, err error) { //os.MkdirAll("pprof", 0755) //cpuProfile, _ := os.Create("pprof/cpu_profile_list_doc_tree") //pprof.StartCPUProfile(cpuProfile) @@ -290,6 +291,10 @@ func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount continue } if ial := box.docIAL(parentDocPath); nil != ial { + if !showHidden && "true" == ial["custom-hidden"] { + continue + } + doc := box.docFromFileInfo(parentDocFile, ial) subFiles, err := os.ReadDir(filepath.Join(boxLocalPath, file.path)) if nil == err { @@ -323,6 +328,10 @@ func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount } if ial := box.docIAL(file.path); nil != ial { + if !showHidden && "true" == ial["custom-hidden"] { + continue + } + doc := box.docFromFileInfo(file, ial) if flashcard { diff --git a/kernel/model/mount.go b/kernel/model/mount.go index 287e05bce..4d69a2780 100644 --- a/kernel/model/mount.go +++ b/kernel/model/mount.go @@ -194,7 +194,7 @@ func Mount(boxID string) (alreadyMount bool, err error) { box.Index() // 缓存根一级的文档树展开 - ListDocTree(box.ID, "/", util.SortModeUnassigned, false, Conf.FileTree.MaxListCount) + ListDocTree(box.ID, "/", util.SortModeUnassigned, false, false, Conf.FileTree.MaxListCount) treenode.SaveBlockTree(false) util.ClearPushProgress(100)