mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00:12 +01:00
🎨 Subdocuments created by the database are not displayed in the doc tree https://github.com/siyuan-note/siyuan/issues/9091
This commit is contained in:
parent
830c8b55cf
commit
756d1ed4c0
3 changed files with 24 additions and 13 deletions
|
|
@ -481,6 +481,12 @@ func createDocWithMd(c *gin.Context) {
|
||||||
parentID = parentIDArg.(string)
|
parentID = parentIDArg.(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showInDocTree := true
|
||||||
|
showInDocTreeArg := arg["showInDocTree"]
|
||||||
|
if nil != showInDocTreeArg {
|
||||||
|
showInDocTree = showInDocTreeArg.(bool)
|
||||||
|
}
|
||||||
|
|
||||||
hPath := arg["path"].(string)
|
hPath := arg["path"].(string)
|
||||||
markdown := arg["markdown"].(string)
|
markdown := arg["markdown"].(string)
|
||||||
|
|
||||||
|
|
@ -496,7 +502,7 @@ func createDocWithMd(c *gin.Context) {
|
||||||
hPath = "/" + hPath
|
hPath = "/" + hPath
|
||||||
}
|
}
|
||||||
|
|
||||||
id, err := model.CreateWithMarkdown(notebook, hPath, markdown, parentID)
|
id, err := model.CreateWithMarkdown(notebook, hPath, markdown, parentID, showInDocTree)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
ret.Code = -1
|
ret.Code = -1
|
||||||
ret.Msg = err.Error()
|
ret.Msg = err.Error()
|
||||||
|
|
|
||||||
|
|
@ -285,12 +285,12 @@ func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount
|
||||||
}
|
}
|
||||||
|
|
||||||
parentDocPath := strings.TrimSuffix(file.path, "/") + ".sy"
|
parentDocPath := strings.TrimSuffix(file.path, "/") + ".sy"
|
||||||
subDocFile := box.Stat(parentDocPath)
|
parentDocFile := box.Stat(parentDocPath)
|
||||||
if nil == subDocFile {
|
if nil == parentDocFile {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if ial := box.docIAL(parentDocPath); nil != ial {
|
if ial := box.docIAL(parentDocPath); nil != ial {
|
||||||
doc := box.docFromFileInfo(subDocFile, ial)
|
doc := box.docFromFileInfo(parentDocFile, ial)
|
||||||
subFiles, err := os.ReadDir(filepath.Join(boxLocalPath, file.path))
|
subFiles, err := os.ReadDir(filepath.Join(boxLocalPath, file.path))
|
||||||
if nil == err {
|
if nil == err {
|
||||||
for _, subFile := range subFiles {
|
for _, subFile := range subFiles {
|
||||||
|
|
@ -313,6 +313,7 @@ func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount
|
||||||
docs = append(docs, doc)
|
docs = append(docs, doc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -992,7 +993,7 @@ func CreateDocByMd(boxID, p, title, md string, sorts []string) (tree *parse.Tree
|
||||||
|
|
||||||
luteEngine := util.NewLute()
|
luteEngine := util.NewLute()
|
||||||
dom := luteEngine.Md2BlockDOM(md, false)
|
dom := luteEngine.Md2BlockDOM(md, false)
|
||||||
tree, err = createDoc(box.ID, p, title, dom)
|
tree, err = createDoc(box.ID, p, title, dom, true)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -1001,7 +1002,7 @@ func CreateDocByMd(boxID, p, title, md string, sorts []string) (tree *parse.Tree
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateWithMarkdown(boxID, hPath, md, parentID string) (id string, err error) {
|
func CreateWithMarkdown(boxID, hPath, md, parentID string, showInDocTree bool) (id string, err error) {
|
||||||
box := Conf.Box(boxID)
|
box := Conf.Box(boxID)
|
||||||
if nil == box {
|
if nil == box {
|
||||||
err = errors.New(Conf.Language(0))
|
err = errors.New(Conf.Language(0))
|
||||||
|
|
@ -1011,7 +1012,7 @@ func CreateWithMarkdown(boxID, hPath, md, parentID string) (id string, err error
|
||||||
WaitForWritingFiles()
|
WaitForWritingFiles()
|
||||||
luteEngine := util.NewLute()
|
luteEngine := util.NewLute()
|
||||||
dom := luteEngine.Md2BlockDOM(md, false)
|
dom := luteEngine.Md2BlockDOM(md, false)
|
||||||
id, _, err = createDocsByHPath(box.ID, hPath, dom, parentID)
|
id, _, err = createDocsByHPath(box.ID, hPath, dom, parentID, showInDocTree)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1414,7 +1415,7 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
id, existed, err := createDocsByHPath(box.ID, hPath, "", "")
|
id, existed, err := createDocsByHPath(box.ID, hPath, "", "", true)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -1459,7 +1460,7 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDoc(boxID, p, title, dom string) (tree *parse.Tree, err error) {
|
func createDoc(boxID, p, title, dom string, showInDocTree bool) (tree *parse.Tree, err error) {
|
||||||
title = gulu.Str.RemoveInvisible(title)
|
title = gulu.Str.RemoveInvisible(title)
|
||||||
if 512 < utf8.RuneCountInString(title) {
|
if 512 < utf8.RuneCountInString(title) {
|
||||||
// 限制笔记本名和文档名最大长度为 `512` https://github.com/siyuan-note/siyuan/issues/6299
|
// 限制笔记本名和文档名最大长度为 `512` https://github.com/siyuan-note/siyuan/issues/6299
|
||||||
|
|
@ -1531,6 +1532,10 @@ func createDoc(boxID, p, title, dom string) (tree *parse.Tree, err error) {
|
||||||
tree.Root.AppendChild(treenode.NewParagraph())
|
tree.Root.AppendChild(treenode.NewParagraph())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !showInDocTree {
|
||||||
|
tree.Root.SetIALAttr("custom-hidden", "true")
|
||||||
|
}
|
||||||
|
|
||||||
transaction := &Transaction{DoOperations: []*Operation{{Action: "create", Data: tree}}}
|
transaction := &Transaction{DoOperations: []*Operation{{Action: "create", Data: tree}}}
|
||||||
PerformTransactions(&[]*Transaction{transaction})
|
PerformTransactions(&[]*Transaction{transaction})
|
||||||
WaitForWritingFiles()
|
WaitForWritingFiles()
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ import (
|
||||||
"github.com/siyuan-note/siyuan/kernel/util"
|
"github.com/siyuan-note/siyuan/kernel/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func createDocsByHPath(boxID, hPath, content, parentID string) (id string, existed bool, err error) {
|
func createDocsByHPath(boxID, hPath, content, parentID string, showInDocTree bool) (id string, existed bool, err error) {
|
||||||
hPath = strings.TrimSuffix(hPath, ".sy")
|
hPath = strings.TrimSuffix(hPath, ".sy")
|
||||||
pathBuilder := bytes.Buffer{}
|
pathBuilder := bytes.Buffer{}
|
||||||
pathBuilder.WriteString("/")
|
pathBuilder.WriteString("/")
|
||||||
|
|
@ -51,7 +51,7 @@ func createDocsByHPath(boxID, hPath, content, parentID string) (id string, exist
|
||||||
// 如果父文档存在且 ID 一致,则直接在父文档下创建
|
// 如果父文档存在且 ID 一致,则直接在父文档下创建
|
||||||
id = ast.NewNodeID()
|
id = ast.NewNodeID()
|
||||||
p := strings.TrimSuffix(preferredParent.Path, ".sy") + "/" + id + ".sy"
|
p := strings.TrimSuffix(preferredParent.Path, ".sy") + "/" + id + ".sy"
|
||||||
if _, err = createDoc(boxID, p, name, content); nil != err {
|
if _, err = createDoc(boxID, p, name, content, showInDocTree); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -68,11 +68,11 @@ func createDocsByHPath(boxID, hPath, content, parentID string) (id string, exist
|
||||||
pathBuilder.WriteString(id)
|
pathBuilder.WriteString(id)
|
||||||
docP := pathBuilder.String() + ".sy"
|
docP := pathBuilder.String() + ".sy"
|
||||||
if isNotLast {
|
if isNotLast {
|
||||||
if _, err = createDoc(boxID, docP, part, ""); nil != err {
|
if _, err = createDoc(boxID, docP, part, "", showInDocTree); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if _, err = createDoc(boxID, docP, part, content); nil != err {
|
if _, err = createDoc(boxID, docP, part, content, showInDocTree); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue