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

This commit is contained in:
Vanessa 2023-02-04 10:50:32 +08:00
commit 3ea7cd520f
3 changed files with 19 additions and 9 deletions

View file

@ -155,6 +155,9 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
}
}
refreshUpdated(defNode)
refreshUpdated(refNode)
refPivot := treenode.NewParagraph()
refNode.InsertBefore(refPivot)
@ -215,13 +218,11 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
}
refPivot.Unlink()
treenode.IndexBlockTree(refTree)
if err = writeJSONQueue(refTree); nil != err {
if err = indexWriteJSONQueue(refTree); nil != err {
return
}
if !sameTree {
treenode.IndexBlockTree(defTree)
if err = writeJSONQueue(defTree); nil != err {
if err = indexWriteJSONQueue(defTree); nil != err {
return
}
}

View file

@ -94,8 +94,10 @@ func GetBlockRefText(id string) string {
}
func getNodeRefText(node *ast.Node) string {
if name := node.IALAttr("name"); "" != name {
return name
if ret := node.IALAttr("name"); "" != ret {
ret = strings.TrimSpace(ret)
ret = util.EscapeHTML(ret)
return ret
}
switch node.Type {

View file

@ -270,7 +270,7 @@ func IndexBlockTree(tree *parse.Tree) {
slice.m.Unlock()
if nil != bt {
if bt.Updated != n.IALAttr("updated") {
if bt.Updated != n.IALAttr("updated") || bt.Path != tree.Path || bt.BoxID != tree.Box || bt.HPath != tree.HPath {
children := ChildBlockNodes(n) // 需要考虑子块,因为一些操作(比如移动块)后需要同时更新子块
changedNodes = append(changedNodes, children...)
}
@ -305,9 +305,13 @@ func updateBtSlice(n *ast.Node, tree *parse.Tree) {
slice.m.Unlock()
}
func InitBlockTree(force bool) {
start := time.Now()
var blockTreeLock = sync.Mutex{}
func InitBlockTree(force bool) {
blockTreeLock.Lock()
defer blockTreeLock.Unlock()
start := time.Now()
if force {
err := os.RemoveAll(util.BlockTreePath)
if nil != err {
@ -387,6 +391,9 @@ func SaveBlockTreeJob() {
}
func SaveBlockTree(force bool) {
blockTreeLock.Lock()
defer blockTreeLock.Unlock()
start := time.Now()
os.MkdirAll(util.BlockTreePath, 0755)