mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-03 15:28:49 +01:00
🎨 Automatically create notebook conf.json if not found it https://github.com/siyuan-note/siyuan/issues/9647
This commit is contained in:
parent
2299ff1ae7
commit
0658f3bc0e
2 changed files with 29 additions and 16 deletions
|
|
@ -111,32 +111,40 @@ func ListNotebooks() (ret []*Box, err error) {
|
|||
boxConf := conf.NewBoxConf()
|
||||
boxDirPath := filepath.Join(util.DataDir, dir.Name())
|
||||
boxConfPath := filepath.Join(boxDirPath, ".siyuan", "conf.json")
|
||||
if !filelock.IsExist(boxConfPath) {
|
||||
isExistConf := filelock.IsExist(boxConfPath)
|
||||
if !isExistConf {
|
||||
// 数据同步时展开文档树操作可能导致数据丢失 https://github.com/siyuan-note/siyuan/issues/7129
|
||||
logging.LogWarnf("found a corrupted box [%s]", boxDirPath)
|
||||
continue
|
||||
}
|
||||
|
||||
data, readErr := filelock.ReadFile(boxConfPath)
|
||||
if nil != readErr {
|
||||
logging.LogErrorf("read box conf [%s] failed: %s", boxConfPath, readErr)
|
||||
continue
|
||||
}
|
||||
if readErr = gulu.JSON.UnmarshalJSON(data, boxConf); nil != readErr {
|
||||
logging.LogErrorf("parse box conf [%s] failed: %s", boxConfPath, readErr)
|
||||
os.RemoveAll(boxConfPath)
|
||||
continue
|
||||
} else {
|
||||
data, readErr := filelock.ReadFile(boxConfPath)
|
||||
if nil != readErr {
|
||||
logging.LogErrorf("read box conf [%s] failed: %s", boxConfPath, readErr)
|
||||
continue
|
||||
}
|
||||
if readErr = gulu.JSON.UnmarshalJSON(data, boxConf); nil != readErr {
|
||||
logging.LogErrorf("parse box conf [%s] failed: %s", boxConfPath, readErr)
|
||||
os.RemoveAll(boxConfPath)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
id := dir.Name()
|
||||
ret = append(ret, &Box{
|
||||
box := &Box{
|
||||
ID: id,
|
||||
Name: boxConf.Name,
|
||||
Icon: boxConf.Icon,
|
||||
Sort: boxConf.Sort,
|
||||
SortMode: boxConf.SortMode,
|
||||
Closed: boxConf.Closed,
|
||||
})
|
||||
}
|
||||
|
||||
if !isExistConf {
|
||||
// Automatically create notebook conf.json if not found it https://github.com/siyuan-note/siyuan/issues/9647
|
||||
box.SaveConf(boxConf)
|
||||
box.Unindex()
|
||||
logging.LogWarnf("fixed a corrupted box [%s]", boxDirPath)
|
||||
}
|
||||
ret = append(ret, box)
|
||||
}
|
||||
|
||||
switch Conf.FileTree.Sort {
|
||||
|
|
|
|||
|
|
@ -902,7 +902,12 @@ func upgradeUserGuide() {
|
|||
boxConf := conf.NewBoxConf()
|
||||
boxConfPath := filepath.Join(boxDirPath, ".siyuan", "conf.json")
|
||||
if !filelock.IsExist(boxConfPath) {
|
||||
logging.LogWarnf("found a corrupted box [%s]", boxDirPath)
|
||||
logging.LogWarnf("found a corrupted user guide box [%s]", boxDirPath)
|
||||
if removeErr := filelock.Remove(boxDirPath); nil != removeErr {
|
||||
logging.LogErrorf("remove corrupted user guide box [%s] failed: %s", boxDirPath, removeErr)
|
||||
} else {
|
||||
logging.LogInfof("removed corrupted user guide box [%s]", boxDirPath)
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue