1234567891011121314151617181920212223242526272829303132333435363738 |
- package parser
- import "github.com/usememos/memos/plugin/gomark/parser/tokenizer"
- type CodeParser struct {
- Content string
- }
- func NewCodeParser() *CodeParser {
- return &CodeParser{}
- }
- func (*CodeParser) Match(tokens []*tokenizer.Token) *CodeParser {
- if len(tokens) < 3 {
- return nil
- }
- if tokens[0].Type != tokenizer.Backtick {
- return nil
- }
- content, matched := "", false
- for _, token := range tokens[1:] {
- if token.Type == tokenizer.Newline {
- return nil
- }
- if token.Type == tokenizer.Backtick {
- matched = true
- break
- }
- content += token.Value
- }
- if !matched || len(content) == 0 {
- return nil
- }
- return &CodeParser{
- Content: content,
- }
- }
|