mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
feat: implement switchable task list node
This commit is contained in:
@ -49,7 +49,6 @@ func ParseBlock(tokens []*tokenizer.Token) ([]ast.Node, error) {
|
||||
func ParseBlockWithParsers(tokens []*tokenizer.Token, blockParsers []BlockParser) ([]ast.Node, error) {
|
||||
nodes := []ast.Node{}
|
||||
var prevNode ast.Node
|
||||
var skipNextLineBreakFlag bool
|
||||
for len(tokens) > 0 {
|
||||
for _, blockParser := range blockParsers {
|
||||
size, matched := blockParser.Match(tokens)
|
||||
@ -59,21 +58,12 @@ func ParseBlockWithParsers(tokens []*tokenizer.Token, blockParsers []BlockParser
|
||||
return nil, errors.New("parse error")
|
||||
}
|
||||
|
||||
if node.Type() == ast.LineBreakNode && skipNextLineBreakFlag {
|
||||
if prevNode != nil && ast.IsBlockNode(prevNode) {
|
||||
tokens = tokens[size:]
|
||||
skipNextLineBreakFlag = false
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
tokens = tokens[size:]
|
||||
if prevNode != nil {
|
||||
prevNode.SetNextSibling(node)
|
||||
node.SetPrevSibling(prevNode)
|
||||
}
|
||||
prevNode = node
|
||||
skipNextLineBreakFlag = true
|
||||
nodes = append(nodes, node)
|
||||
break
|
||||
}
|
||||
|
Reference in New Issue
Block a user