chore: add line break node

This commit is contained in:
Steven
2023-12-12 23:38:43 +08:00
parent aa3632e2ac
commit dd83782522
4 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package parser
import (
"github.com/usememos/memos/plugin/gomark/ast"
"github.com/usememos/memos/plugin/gomark/parser/tokenizer"
)
type LineBreakParser struct{}
var defaultLineBreakParser = &LineBreakParser{}
func NewLineBreakParser() *LineBreakParser {
return defaultLineBreakParser
}
func (*LineBreakParser) Match(tokens []*tokenizer.Token) (int, bool) {
if len(tokens) == 0 {
return 0, false
}
if tokens[0].Type != tokenizer.Newline {
return 0, false
}
return 1, true
}
func (p *LineBreakParser) Parse(tokens []*tokenizer.Token) ast.Node {
size, ok := p.Match(tokens)
if size == 0 || !ok {
return nil
}
return ast.NewLineBreak()
}