From 29dcf9acb98d1f4ebde3156ce7021b3b4e5d679c Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 30 Sep 2025 16:55:03 +0200 Subject: feat(markdown): support external ref and test --- mardown/lexer.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'mardown/lexer.go') diff --git a/mardown/lexer.go b/mardown/lexer.go index a7b364d..42519e7 100644 --- a/mardown/lexer.go +++ b/mardown/lexer.go @@ -12,6 +12,8 @@ const ( lexerHeader lexerType = "header" lexerQuote lexerType = "quote" + lexerExternal lexerType = "external" + lexerLiteral lexerType = "literal" ) @@ -38,6 +40,14 @@ func (l *lexers) Finished() bool { return l.current+1 >= len(l.lexers) } +func (l *lexers) String() string { + s := "Lexers[" + for _, l := range l.lexers { + s += l.String() + " " + } + return s + "]" +} + func lex(s string) *lexers { lxs := &lexers{current: -1} var lexs []lexer @@ -63,10 +73,15 @@ func lex(s string) *lexers { fn(c, lexerHeader) case '>': fn(c, lexerQuote) + case '[', ']', '(', ')', '!': + fn(c, lexerExternal) default: fn(c, lexerLiteral) } } + if len(previous) > 0 { + lexs = append(lexs, lexer{Type: currentType, Value: previous}) + } lxs.lexers = lexs return lxs } -- cgit v1.2.3