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

This commit is contained in:
Vanessa 2022-10-18 11:51:30 +08:00
commit ae98a6dba5
2 changed files with 19 additions and 8 deletions

View File

@ -64,23 +64,33 @@ func LoadTree(boxID, p string, luteEngine *lute.Lute) (ret *parse.Tree, err erro
hPathBuilder := bytes.Buffer{} hPathBuilder := bytes.Buffer{}
hPathBuilder.WriteString("/") hPathBuilder.WriteString("/")
for i, _ := range parts { for i, _ := range parts {
var parentPath string var parentAbsPath string
if 0 < i { if 0 < i {
parentPath = strings.Join(parts[:i+1], "/") parentAbsPath = strings.Join(parts[:i+1], "/")
} else { } else {
parentPath = parts[0] parentAbsPath = parts[0]
} }
parentPath += ".sy" parentAbsPath += ".sy"
parentPath = filepath.Join(util.DataDir, boxID, parentPath) parentPath := parentAbsPath
parentData, readErr := filelock.ReadFile(parentPath) parentAbsPath = filepath.Join(util.DataDir, boxID, parentAbsPath)
parentData, readErr := filelock.ReadFile(parentAbsPath)
if nil != readErr { if nil != readErr {
logging.LogWarnf("read parent tree data [%s] failed: %s", parentPath, readErr) if os.IsNotExist(readErr) {
parentTree := treenode.NewTree(boxID, parentPath, hPathBuilder.String()+"Untitled", "Untitled")
if writeErr := WriteTree(parentTree); nil != writeErr {
logging.LogErrorf("rebuild parent tree [%s] failed: %s", parentAbsPath, writeErr)
} else {
logging.LogInfof("rebuilt parent tree [%s]", parentAbsPath)
}
} else {
logging.LogWarnf("read parent tree data [%s] failed: %s", parentAbsPath, readErr)
}
hPathBuilder.WriteString("Untitled/") hPathBuilder.WriteString("Untitled/")
continue continue
} }
parentTree, parseErr := parse.ParseJSONWithoutFix(parentData, luteEngine.ParseOptions) parentTree, parseErr := parse.ParseJSONWithoutFix(parentData, luteEngine.ParseOptions)
if nil != parseErr { if nil != parseErr {
logging.LogWarnf("parse parent tree [%s] failed: %s", parentPath, parseErr) logging.LogWarnf("parse parent tree [%s] failed: %s", parentAbsPath, parseErr)
hPathBuilder.WriteString("Untitled/") hPathBuilder.WriteString("Untitled/")
continue continue
} }

View File

@ -76,6 +76,7 @@ func NewTree(boxID, p, hp, title string) *parse.Tree {
ret.Box = boxID ret.Box = boxID
ret.Path = p ret.Path = p
ret.HPath = hp ret.HPath = hp
ret.Root.Spec = "1"
newPara := &ast.Node{Type: ast.NodeParagraph, ID: ast.NewNodeID()} newPara := &ast.Node{Type: ast.NodeParagraph, ID: ast.NewNodeID()}
newPara.SetIALAttr("id", newPara.ID) newPara.SetIALAttr("id", newPara.ID)
newPara.SetIALAttr("updated", util.TimeFromID(newPara.ID)) newPara.SetIALAttr("updated", util.TimeFromID(newPara.ID))