This commit is contained in:
Daniel 2024-04-06 10:50:25 +08:00
parent 435a53cb49
commit 9c61d2a36f
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
4 changed files with 12 additions and 6 deletions

View file

@ -50,6 +50,11 @@ type Editor struct {
BackmentionExpandCount int `json:"backmentionExpandCount"` // 反链提及默认展开数量
}
const (
MinDynamicLoadBlocks = 48
MaxDynamicLoadBlocks = 1024
)
func NewEditor() *Editor {
return &Editor{
FontSize: 16,

View file

@ -242,11 +242,11 @@ func InitConf() {
if 1 > Conf.Editor.HistoryRetentionDays {
Conf.Editor.HistoryRetentionDays = 30
}
if 48 > Conf.Editor.DynamicLoadBlocks {
Conf.Editor.DynamicLoadBlocks = 48
if conf.MinDynamicLoadBlocks > Conf.Editor.DynamicLoadBlocks {
Conf.Editor.DynamicLoadBlocks = conf.MinDynamicLoadBlocks
}
if 1024 < Conf.Editor.DynamicLoadBlocks {
Conf.Editor.DynamicLoadBlocks = 1024
if conf.MaxDynamicLoadBlocks < Conf.Editor.DynamicLoadBlocks {
Conf.Editor.DynamicLoadBlocks = conf.MaxDynamicLoadBlocks
}
if 0 > Conf.Editor.BacklinkExpandCount {
Conf.Editor.BacklinkExpandCount = 0

View file

@ -42,6 +42,7 @@ import (
"github.com/siyuan-note/riff"
"github.com/siyuan-note/siyuan/kernel/av"
"github.com/siyuan-note/siyuan/kernel/cache"
"github.com/siyuan-note/siyuan/kernel/conf"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/search"
"github.com/siyuan-note/siyuan/kernel/sql"
@ -665,7 +666,7 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s
childCount += treenode.CountBlockNodes(n)
}
if childCount > Conf.Editor.DynamicLoadBlocks {
if childCount > Conf.Editor.DynamicLoadBlocks && blockCount > conf.MinDynamicLoadBlocks {
scroll = true
return ast.WalkStop
}

View file

@ -342,7 +342,7 @@ func FirstLeafBlock(node *ast.Node) (ret *ast.Node) {
func CountBlockNodes(node *ast.Node) (ret int) {
ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus {
if !entering || !n.IsBlock() || ast.NodeList == n.Type || ast.NodeBlockquote == n.Type || ast.NodeSuperBlock == n.Type {
if !entering || !n.IsBlock() || ast.NodeList == n.Type || ast.NodeListItem == n.Type || ast.NodeBlockquote == n.Type || ast.NodeSuperBlock == n.Type {
return ast.WalkContinue
}