diff --git a/kernel/sql/database.go b/kernel/sql/database.go index 17ef87d43..8b13e3c44 100644 --- a/kernel/sql/database.go +++ b/kernel/sql/database.go @@ -798,15 +798,14 @@ func buildBlockFromNode(n *ast.Node, tree *parse.Tree) (block *Block, attributes length = utf8.RuneCountInString(fcontent) } else if n.IsContainerBlock() { markdown = treenode.ExportNodeStdMd(n, luteEngine) - if !treenode.IsNodeOCRed(n) { - util.PushNodeOCRQueue(n.ID) + util.PushNodeOCRQueue(n) } content = treenode.NodeStaticContent(n, nil, true, indexAssetPath) - fc := treenode.FirstLeafBlock(n) + fc := treenode.FirstLeafBlock(n) if !treenode.IsNodeOCRed(fc) { - util.PushNodeOCRQueue(fc.ID) + util.PushNodeOCRQueue(fc) } fcontent = treenode.NodeStaticContent(fc, nil, true, false) @@ -818,11 +817,9 @@ func buildBlockFromNode(n *ast.Node, tree *parse.Tree) (block *Block, attributes length = utf8.RuneCountInString(fcontent) } else { markdown = treenode.ExportNodeStdMd(n, luteEngine) - if !treenode.IsNodeOCRed(n) { - util.PushNodeOCRQueue(n.ID) + util.PushNodeOCRQueue(n) } - content = treenode.NodeStaticContent(n, nil, true, indexAssetPath) parentID = n.Parent.ID diff --git a/kernel/treenode/node.go b/kernel/treenode/node.go index 691717d52..1e07f7d86 100644 --- a/kernel/treenode/node.go +++ b/kernel/treenode/node.go @@ -138,7 +138,7 @@ func ExportNodeStdMd(node *ast.Node, luteEngine *lute.Lute) string { func IsNodeOCRed(node *ast.Node) (ret bool) { if !util.TesseractEnabled || nil == node { - return + return true } ret = true diff --git a/kernel/util/tesseract.go b/kernel/util/tesseract.go index d9a5015c3..90443cc29 100644 --- a/kernel/util/tesseract.go +++ b/kernel/util/tesseract.go @@ -30,6 +30,7 @@ import ( "time" "github.com/88250/gulu" + "github.com/88250/lute/ast" "github.com/88250/lute/html" "github.com/dustin/go-humanize" "github.com/siyuan-note/logging" @@ -279,8 +280,12 @@ var ( NodeOCRQueueLock = sync.Mutex{} ) -func PushNodeOCRQueue(id string) { +func PushNodeOCRQueue(n *ast.Node) { + if nil == n { + return + } + NodeOCRQueueLock.Lock() defer NodeOCRQueueLock.Unlock() - NodeOCRQueue = append(NodeOCRQueue, id) + NodeOCRQueue = append(NodeOCRQueue, n.ID) }