diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-30 16:55:03 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-30 16:55:03 +0200 |
| commit | 29dcf9acb98d1f4ebde3156ce7021b3b4e5d679c (patch) | |
| tree | 09ed13c62b26f72144a8b07819377a3d2c62b71b /mardown/lexer.go | |
| parent | 34d16f28f2d85bc1762e65a73d426de4ac8c30ed (diff) | |
feat(markdown): support external ref and test
Diffstat (limited to 'mardown/lexer.go')
| -rw-r--r-- | mardown/lexer.go | 15 |
1 files changed, 15 insertions, 0 deletions
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 } |
