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.WriteString("/")
for i, _ := range parts {
var parentPath string
var parentAbsPath string
if 0 < i {
parentPath = strings.Join(parts[:i+1], "/")
parentAbsPath = strings.Join(parts[:i+1], "/")
} else {
parentPath = parts[0]
parentAbsPath = parts[0]
}
parentPath += ".sy"
parentPath = filepath.Join(util.DataDir, boxID, parentPath)
parentData, readErr := filelock.ReadFile(parentPath)
parentAbsPath += ".sy"
parentPath := parentAbsPath
parentAbsPath = filepath.Join(util.DataDir, boxID, parentAbsPath)
parentData, readErr := filelock.ReadFile(parentAbsPath)
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/")
continue
}
parentTree, parseErr := parse.ParseJSONWithoutFix(parentData, luteEngine.ParseOptions)
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/")
continue
}

View file

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